Cause all devices to install a new snap

A customer wants all core devices in the field to install a new snap.

Is this possible, and if so how?

(With debian pkgs we could always release a new version of an installed deb and also add a depends on the new package…)

1 Like

Perhaps the snapd-control interface enables this…

If so, do we have an example or further info on how (beyond the snapd interface source)?

1 Like

I’ll let the snapd team answer authoritatively on this, but will say that, yes, the snapd-control interface would give a snap the ability to install other snaps, but it is super-powerful and the snaps that can use it in the public store are restricted. Snaps in a brand store could do this. Restrictions aside, the problem with a snap with snapd-control is that it requires a snap to be installed that is coded to install snaps, etc which would be a pretty high barrier to get right and ultimately I think you’d duplicate refresh/revert ideas in your snap.

OTOH, it seems this is more a function of the gadget snap. The gadget is tied to a model (and therefore, ‘all devices in the field’) and is capable of saying what should be installed.

The snapd team may have other plans for this of course…

thanks Jamie: Would a properly updated gadget snap therefore be a potential mechanism? Perhaps a hook script to install the new snap(s) (or some other method)? (Yes, branded store).

I don’t know the current state of gadget snaps wrt this (I expect the snapd team to comment on its feasibility today or future plans).

Can you clarify one aspect please: all devices of a given kind (at all) or all devices in a given installation (e.g. managed by one customer).

if it’s for all devices of a given model we should support this via model assertion updates, and respecting changes to required snaps header in that, but that is not yet planned or scheduled

1 Like

It’s not entirely clear whether the desired approach is per model or per gadget. The customer has one model and one gadget.

I’d guess a per model approach is best since that assertion defines the required snaps in the system.

Yeah, that really sounds like the feature we planned as model updating.

OK, so not supported yet (other than via snapd-control)? Is there a time frame/road map for this? Cheers (Edit: Sorry I missed the point that it is “not planned or scheduled”.)

Moved to the snapd category and tagged into the backlog so we don’t lose track of it.

The remodeling work happening now does support extending the required snaps of a device.