Classic confinement request for dqlite-utils

  • name: dqlite-utils
  • description: A small utility to monitor dqlite on-disk state
  • snapcraft: here (NOTE: private at time of writing, only visible within Canonical for now)
  • upstream: here (NOTE: private at time of writing, only visible within Canonical for now)
  • upstream-relation: I am the upstream
  • supported-category: debug tools
  • reasoning: Many applications which use dqlite as a backend including lxd and juju are running as system-wide daemons and saving data in their own snap/ folders or in /var/. Without access to this data, the dqlite-utils tool snap is quite useless. The current workaround involves directly calling the dqlite-utils binary from within the snap environment of, for example, the juju crate—this hack is clearly unsatisfactory and only happens to work as the juju base and the system upon which dqlite-utils was compiled happen to be on the same Ubuntu version.

I understand that strict confinement is generally preferred over classic. Yes

I’ve tried the existing interfaces to make the snap to work under strict confinement. Yes

This request has been added to the queue for review by the @reviewers team.

Your description sounds like it might be suitable for a content snap so that it would have a content interface slot to provide access to the tools to other snaps that way, have you considered this possibility?

Ah, I didn’t realise content was a possibility here, thanks for the suggestion, I’ll look into it

Hey @kcza let us know if the content interface solution worked

1 Like

Okay I’ve done some digging and it doesn’t look like the content interface solution serves our needs as:

  • We need to interact with juju which stores its dqlite data under /var/lib/juju and is hence inaccessible via the content interface
  • We need to interact with lxdwhich stores its dqlite data in either /var/lib/lxd or /var/snap/lxd, depending on whether it has been deployed as a snap
  • We need to interact with dqlite deployments which are not snapped, e.g. sunbeam

Is this sufficient grounds for classic confinement?

1 Like

It makes sense. I think that the technical reasons why dqlite-utils requires classic confinement to work are clear and it fits one of the support categories. The publisher is vetted as being part of the canonical.

I am happy to #approve this request. This is now live

1 Like

Excellent, thank you! :smiley: