opencontainers / opencontainers/runc
Ability to know what cgroup subsystems runc supports
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 13.5k
- Forks
- 2.3k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 30
Description
Users have attempted to run a containerized kubelet and have reported issues when running on the following Linux environment (Linux moby 4.9.8-moby #1 SMP Wed Feb 8 09:56:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux) that are related to the presence of the openrc cgroup subsystem (https://wiki.gentoo.org/wiki/OpenRC/CGroups)
The kubelet does cgroup creation via runc, but has an Exists code check that verifies the desired cgroup actually exists. It does this by iterating over each subsystem and ensuring the cgroup exists as expected (see: https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/cm/cgroup_manager_linux.go#L226).
The kubelet can manually filter out this cgroup for now, but it would be nice if runc had a way to return back the list of subsystems it actually supports so additional unsupported subsystems do not cause confusion.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Kubernetes cgroup check in pkg/kubelet/cm/cgroup_manager_linux.go, especially the referenced Exists logic, and trace how runc handles cgroup subsystems. Define how runc should report the supported subsystem list and verify that callers can distinguish unsupported subsystems from created cgroups.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, linux
- Domain
- operating-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100