Seed.yaml documentation

I’m currently working on seeding of snaps in Ubuntu (deb based) images. As part of this process we’re generating a seed.yaml to get the snaps preinstalled.

I can’t find any documentation for this file format, though. @pedronis kindly helped me out on IRC with my specific problem, but I thought I’d make a thread to ask if there is documentation anywhere, or if there isn’t to note that in the hope that it might be created at some point.

there are two points to this:

  • yes, we could write some seedl.yaml documentation
  • but the plan was always for snap prepare to be the one thing writing seed.yaml, maybe we are far along enough in playing with snaps on classic that is time to introduce proper support for classic models in snap prepare

My take away from those two bullet points are that regardless of the chosen path to solve this problem, there should be a documented way on how to get snaps seeded.

So, I wrote up a brief blog post about setting up the snap seeds for curtin/cloud-init. But, I do have a couple questions while looking through snap first_boot source. Is there a mechanism by which I can seed snaps which require classic confinement?

references:

1 Like

On a tip from @pedronis in #snappy freenode channel, classic snaps can be seeded by placing a ‘classic: true’ in the specific snap section in seed.yaml:

Here’s an example seed.yaml where I seeded aws-cli classic snap on a cloud-init deployed system:

snaps:

  • name: aws-cli
    channel: stable
    file: aws-cli_67.snap
    classic: true
  • name: core
    channel: stable
    file: core_3887.snap