The greengrass snap already uses the greengrass-support interface for container workloads. Are you saying this is a new workload for greengrass or is this a bug in the greengrass-support interface? @ijohnson - do you have any context?
The greengrass-support interface (before incoming PR https://github.com/snapcore/snapd/pull/9595) provides support for Greengrass’s containerized lambdas. These are just serverless functions that run on a device instead of the cloud. They only expect certain runtimes to be available (eg java, python, node, etc).
Docker containers give customers access to more complicated applications with dependencies that the Greengrass snap doesn’t have. Non-snap Greengrass offers a “docker connector” which basically lets customer drive Docker containers from the Greengrass Core.
Furthermore, we’re moving towards only supporting non-containerized lambdas, so we don’t want to use any of the container support that the greengrass-support interface offers today for security reasons.
Ah! I wasn’t sure if you were using the docker-support interface (which is quite lenient) in an effort to work around a deficiency in the greengrass-support interface. You actually want to run docker containers. Thanks for clearing this up.
While docker-support is superprivileged, so is greengrass-support (which this snap uses) and this snap now needs to drive docker containers. +1 to allow use of the docker-support interface (ie, installation constraint).
I suspect that we’ll just need the docker plug, not the docker-support plug, right? From my reading of the docs (and some examples on GitHub), docker should be enough to use docker. Correct me if I’m wrong.
@zjoseal - the docker interface allows access to the docker socket as provided by another snap, the docker-support interface allows running dockerd. Based on your last comment, it sounds like you aren’t planning on shipping dockerd. Is that correct?
Based on my updated understanding, I am rescinding my vote for docker-support.
While docker is superprivileged, so is greengrass-support (which this snap uses) and this snap now needs to drive docker containers via the docker plug. +1 to allow use of the docker interface (ie, installation constraint).