Snapd seeded target and how to order after it

Some (classic) snaps need to make sure to run after snapd is fully seeded because they use snaps that are part of the seed.

To support this I have the following strawman:

  1. add new snapd.seeded.service which will only finish if snapd is fully seeded (https://github.com/snapcore/snapd/pull/5124)
  2. allow a whitelisted list of targets for the after/before relation for snap applications. So e.g. after: [external:snapd.seeded.service] (https://github.com/snapcore/snapd/pull/5132). Currently the only external targets snapd.service and snapd.seeded.service are allowed.

Happy to discuss approach and wording - the PRs above are ready but I will tweak according to the outcome of this forum discussion.

2 Likes

The PR #5132 was closed and the last comment says this needs further discussion. Is there any updates about this?

My use case is after the system is fully seeded and the boot process is done then a service in my snap will change a LED to indicate the system status. Because systemctl command or snap get system seed.loaded is not available. So I am looking for a good way to achieve this.