opencontainers / opencontainers/runc

Ability to know what cgroup subsystems runc supports

Open
#1,440 6 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.