awslabs / soci-snapshotter

A containerd snapshotter plugin which enables standard OCI images to be lazily loaded without requiring a build-time conversion step.
Apache License 2.0
534 stars 55 forks source link

Support systemd socket activation #1378

Closed Kern-- closed 1 month ago

Kern-- commented 2 months ago

Issue #, if available: Closes #1088

Description of changes: This change adds 2 features: 1) the --address flag of the soci snapshotter supports a network prefix 2) The soci snapshotter can listen on a file descriptor passed by systemd socket activation.

If the user tells soci to listen on a file descriptor, but doesn't use systemd socket activation to launch the process, the snapshotter will fall back to the default address as a unix socket.

The example systemd service file is updated to use systemd activation if possible. There is an example systemd socket file, but no strict dependency from the service file so that users who are always starting SOCI on boot won't get a warning from systemd.

Testing performed: Tested manually and verified that: 1) socket activation works 2) the example systemd unit file works without socket activation 3) setting a custom socket address still works both with and without socket activation.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.