jenkinsci / jenkinsci/docker-workflow-plugin

[JENKINS-47947] CGROUP_MATCHER_PATTERN does not work with Kubernetes >= 1.6

Open
#533 5 comments 0 reactions 0 assignees View on GitHub
component:docker-workflow-plugin enhancement imported-jira-issue priority:major resolution:unresolved
Dominant language
Java
Stars
527
Forks
422
Avg merge
10m
Merged PRs (30d)
1

Description

Since version 1.6 kubernetes is using a custom cgroup format:

Enhance Kubelet QoS:

Pods are placed under a new cgroup hierarchy by default. This feature requires draining and restarting the node as part of upgrades. To opt-out set --cgroups-per-qos=false.

The new cgroup looks something like "x:cpu:/kubepod/qos-level/container_id", here is an example from my kubernetes cluster:

cat /proc/9/cgroup

11:hugetlb:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
10:perf_event:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
9:net_cls,net_prio:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
8:cpuset:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
7:devices:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
6:pids:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
5:memory:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
4:cpu,cpuacct:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
3:freezer:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
2:blkio:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
1:name=systemd:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59

The matcher does not recognize this as a cgroup of running in a container and the docker plugin behaves as if Jenkins is not running in a container, i.e. volume mounts fail.

It would be awesome if the matcher could be improved to recognize this so we do not have to run custom options on the kubelet just for Jenkins.

 

 

---
Originally reported by wduda, imported from: CGROUP_MATCHER_PATTERN does not work with Kubernetes >= 1.6


  • status: Open
  • priority: Major
  • component(s): docker-workflow-plugin
  • label(s): kubernetes
  • resolution: Unresolved
  • votes: 0
  • watchers: 2
  • imported: 2025-12-07

Raw content of original issue

Since version 1.6 kubernetes is using a custom cgroup format:

Enhance Kubelet QoS:
Pods are placed under a new cgroup hierarchy by default. This feature requires draining and restarting the node as part of upgrades. To opt-out set --cgroups-per-qos=false.

The new cgroup looks something like "x:cpu:/kubepod/qos-level/container_id", here is an example from my kubernetes cluster:


cat /proc/9/cgroup

11:hugetlb:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
10:perf_event:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
9:net_cls,net_prio:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
8:cpuset:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
7:devices:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
6:pids:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
5:memory:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
4:cpu,cpuacct:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
3:freezer:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
2:blkio:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59
1:name=systemd:/kubepods/besteffort/pod60070ae4-c63a-11e7-92b3-0adc1ac11520/931fc44a96d53e4acbcbb037e22b7a5f55da235ca9b336105294d4f109cd8c59

The matcher does not recognize this as a cgroup of running in a container and the docker plugin behaves as if Jenkins is not running in a container, i.e. volume mounts fail.

It would be awesome if the matcher could be improved to recognize this so we do not have to run custom options on the kubelet just for Jenkins.

 

 

  • environment: Jenkins 2.73.3, docker-workflow-plugin 1.14, kubernetes 1.7.5

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.