bottlerocket-os / bottlerocket-os/bottlerocket

add socket activation support for containerd

Open
#1,251 2 comments 0 reactions 0 assignees View on GitHub
area/core status/icebox type/enhancement
Dominant language
Rust
Stars
9.7k
Forks
586
Avg merge
1d 18h
Merged PRs (30d)
12

Description

**What I'd like:**
Pods and tasks may bind-mount the container runtime socket for various reasons, such as gathering metrics. If containerd is restarted, that socket will no longer be usable, as the underlying file descriptor has been removed and created.

With socket activation, systemd would create the socket and pass the file descriptor into containerd at startup. This decouples the socket's lifetime from the service's, so the socket would continue to be valid even if the service is restarted.

**Any alternatives you've considered:**
Applications that need the socket should be written to fail and restart if the socket stops working.

However, this may not always be straightforward to implement. Applications might keep track of a number of different sockets, or call out to a helper program to handle the query, and might not correctly handle an error that would be seen only rarely.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are identified in the issue. Start by locating the containerd service configuration and how its runtime socket is created, then determine how systemd socket activation would pass that socket through. Done means the socket remains usable for bind-mounted consumers across a containerd restart.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.