AddingAppliances

  • Get information from the product management about the new appliance:
    • How the new appliance image should be called (usually in the format <snap-name>-core18-<platform>)

    • What arches should it be provided for (currently we support amd64, pi arm64, pi armhf)
    • What snaps are required for it to run - usually it's just the appliance snap, but sometimes there are additional ones needed
    • Are there any other specifics to this appliance? Custom channel, track to be used?
  • Create the new appliance model assertion JSON files, one per each supported arch/platform. Please consult existing model JSON files for reference on how the fields should look like. There is an appliances branch on the snapcore/models git repository with all the appliance models so far.

    • When creating an appliance JSON file remember to bump the timestamp at the bottom to the current date
  • Do a test build of the appliances to make sure no error sneaked in. This can be done by substituting the brand-id and authority-id's from ubuntu to your private ones and signing the assertions locally, then using ubuntu-image snap as usual.

  • Commit the new JSON file to the appliances branch on the snapcore/models github repository.

  • Create an RT for IS to sign the model assertion with the ubuntu key, attaching the relevant .json files to the RT.
    • Example request - RT: 127600.
  • Once the model assertion is signed, send it the signed model files to snap-store-admins@lists.canonical.com for upload to the Snap Store.

  • Build the new images by logging into ancientminister, switching to the cdimage user and starting the build of the required appliance image as usual.
    • The ARCHES combination is <BUILD_ARCH>+appliance-<MODEL_NAME>. Basically livecd-rootfs then just builds an ubuntu-core image using the <MODEL_NAME> appliance from the store (under the ubuntu brand). No tinkering needed.

    • Example: DIST=bionic CHANNEL=stable PROPOSED=0 ARCHES="amd64+appliance-rocketchat-core18-amd64 arm64+appliance-rocketchat-core18-pi" for-project ubuntu-appliance cron.daily-live --live

  • For future rebuilds, add the new appliances to etc/default-arches in lp:ubuntu-cdimage (under the ubuntu-appliance project)

  • Once the image build finishes, give the link to the new builds to the CertificationTeam (contact: Chris or Paul)

UbuntuCore/AddingAppliances (last edited 2020-09-04 16:25:23 by sil2100)