blob: 8bfdcf25821666e7be95192e32def0702c5ad058 [file] [log] [blame]
Lorenz Brund13c1c62022-03-30 19:58:58 +02001From 1564b39d0fbeac776a0d92236a0ca0c7cbdc6c5c Mon Sep 17 00:00:00 2001
2From: Lorenz Brun <lorenz@monogon.tech>
3Date: Mon, 21 Mar 2022 15:21:25 +0100
4Subject: [PATCH 2/2] Adopt to API breakage in runc 1.1.0
5
6---
7 pkg/kubelet/cm/cgroup_manager_linux.go | 11 ++++++-----
8 pkg/kubelet/cm/container_manager_linux.go | 4 ++--
9 pkg/kubelet/cm/qos_container_manager_linux.go | 4 ++--
10 pkg/kubelet/dockershim/cm/container_manager_linux.go | 2 +-
11 .../kuberuntime/kuberuntime_container_linux.go | 4 ++--
12 .../kuberuntime/kuberuntime_container_linux_test.go | 6 +++---
13 6 files changed, 16 insertions(+), 15 deletions(-)
14
15diff --git a/pkg/kubelet/cm/cgroup_manager_linux.go b/pkg/kubelet/cm/cgroup_manager_linux.go
16index 230173690d5..4bd50db5050 100644
17--- a/pkg/kubelet/cm/cgroup_manager_linux.go
18+++ b/pkg/kubelet/cm/cgroup_manager_linux.go
19@@ -27,6 +27,7 @@ import (
20 "sync"
21 "time"
22
23+ "github.com/opencontainers/runc/libcontainer/cgroups"
24 libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups"
25 cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
26 cgroupfs2 "github.com/opencontainers/runc/libcontainer/cgroups/fs2"
27@@ -150,18 +151,18 @@ func (l *libcontainerAdapter) newManager(cgroups *libcontainerconfigs.Cgroup, pa
28 switch l.cgroupManagerType {
29 case libcontainerCgroupfs:
30 if libcontainercgroups.IsCgroup2UnifiedMode() {
31- return cgroupfs2.NewManager(cgroups, paths["memory"], false)
32+ return cgroupfs2.NewManager(cgroups, paths["memory"])
33 }
34- return cgroupfs.NewManager(cgroups, paths, false), nil
35+ return cgroupfs.NewManager(cgroups, paths)
36 case libcontainerSystemd:
37 // this means you asked systemd to manage cgroups, but systemd was not on the host, so all you can do is panic...
38 if !cgroupsystemd.IsRunningSystemd() {
39 panic("systemd cgroup manager not available")
40 }
41 if libcontainercgroups.IsCgroup2UnifiedMode() {
42- return cgroupsystemd.NewUnifiedManager(cgroups, paths["memory"], false), nil
43+ return cgroupsystemd.NewUnifiedManager(cgroups, paths["memory"])
44 }
45- return cgroupsystemd.NewLegacyManager(cgroups, paths), nil
46+ return cgroupsystemd.NewLegacyManager(cgroups, paths)
47 }
48 return nil, fmt.Errorf("invalid cgroup manager configuration")
49 }
50@@ -420,7 +421,7 @@ func (m *cgroupManagerImpl) toResources(resourceConfig *ResourceConfig) *libcont
51 pageSizes.Insert(sizeString)
52 }
53 // for each page size omitted, limit to 0
54- for _, pageSize := range cgroupfs.HugePageSizes {
55+ for _, pageSize := range cgroups.HugePageSizes() {
56 if pageSizes.Has(pageSize) {
57 continue
58 }
59diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go
60index 3892bae081d..4c79f212ab5 100644
61--- a/pkg/kubelet/cm/container_manager_linux.go
62+++ b/pkg/kubelet/cm/container_manager_linux.go
63@@ -401,10 +401,10 @@ func createManager(containerName string) (cgroups.Manager, error) {
64 }
65
66 if cgroups.IsCgroup2UnifiedMode() {
67- return cgroupfs2.NewManager(cg, "", false)
68+ return cgroupfs2.NewManager(cg, "")
69
70 }
71- return cgroupfs.NewManager(cg, nil, false), nil
72+ return cgroupfs.NewManager(cg, nil)
73 }
74
75 type KernelTunableBehavior string
76diff --git a/pkg/kubelet/cm/qos_container_manager_linux.go b/pkg/kubelet/cm/qos_container_manager_linux.go
77index bb79109b141..d0a78db2483 100644
78--- a/pkg/kubelet/cm/qos_container_manager_linux.go
79+++ b/pkg/kubelet/cm/qos_container_manager_linux.go
80@@ -28,8 +28,8 @@ import (
81 "k8s.io/apimachinery/pkg/util/wait"
82
83 units "github.com/docker/go-units"
84+ "github.com/opencontainers/runc/libcontainer/cgroups"
85 libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups"
86- cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
87 v1 "k8s.io/api/core/v1"
88 utilfeature "k8s.io/apiserver/pkg/util/feature"
89 "k8s.io/kubernetes/pkg/api/v1/resource"
90@@ -147,7 +147,7 @@ func (m *qosContainerManagerImpl) Start(getNodeAllocatable func() v1.ResourceLis
91 // setHugePagesUnbounded ensures hugetlb is effectively unbounded
92 func (m *qosContainerManagerImpl) setHugePagesUnbounded(cgroupConfig *CgroupConfig) error {
93 hugePageLimit := map[int64]int64{}
94- for _, pageSize := range cgroupfs.HugePageSizes {
95+ for _, pageSize := range cgroups.HugePageSizes() {
96 pageSizeBytes, err := units.RAMInBytes(pageSize)
97 if err != nil {
98 return err
99diff --git a/pkg/kubelet/dockershim/cm/container_manager_linux.go b/pkg/kubelet/dockershim/cm/container_manager_linux.go
100index 759e27f26c5..93d6c51ac00 100644
101--- a/pkg/kubelet/dockershim/cm/container_manager_linux.go
102+++ b/pkg/kubelet/dockershim/cm/container_manager_linux.go
103@@ -129,7 +129,7 @@ func createCgroupManager(name string) (cgroups.Manager, error) {
104 SkipDevices: true,
105 },
106 }
107- return cgroupfs.NewManager(cg, nil, false), nil
108+ return cgroupfs.NewManager(cg, nil)
109 }
110
111 // getMemoryCapacity returns the memory capacity on the machine in bytes.
112diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go b/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go
113index 6cb9e54729e..fd922f07c7c 100644
114--- a/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go
115+++ b/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go
116@@ -23,8 +23,8 @@ import (
117 "strconv"
118 "time"
119
120+ "github.com/opencontainers/runc/libcontainer/cgroups"
121 libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups"
122- cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
123 v1 "k8s.io/api/core/v1"
124 "k8s.io/apimachinery/pkg/api/resource"
125 utilfeature "k8s.io/apiserver/pkg/util/feature"
126@@ -170,7 +170,7 @@ func GetHugepageLimitsFromResources(resources v1.ResourceRequirements) []*runtim
127 var hugepageLimits []*runtimeapi.HugepageLimit
128
129 // For each page size, limit to 0.
130- for _, pageSize := range cgroupfs.HugePageSizes {
131+ for _, pageSize := range cgroups.HugePageSizes() {
132 hugepageLimits = append(hugepageLimits, &runtimeapi.HugepageLimit{
133 PageSize: pageSize,
134 Limit: uint64(0),
135diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go b/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go
136index 46817e00fb0..f166adc6fe1 100644
137--- a/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go
138+++ b/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go
139@@ -25,7 +25,7 @@ import (
140 "testing"
141
142 "github.com/google/go-cmp/cmp"
143- cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
144+ "github.com/opencontainers/runc/libcontainer/cgroups"
145 "github.com/stretchr/testify/assert"
146 v1 "k8s.io/api/core/v1"
147 "k8s.io/apimachinery/pkg/api/resource"
148@@ -366,7 +366,7 @@ func TestGetHugepageLimitsFromResources(t *testing.T) {
149 var baseHugepage []*runtimeapi.HugepageLimit
150
151 // For each page size, limit to 0.
152- for _, pageSize := range cgroupfs.HugePageSizes {
153+ for _, pageSize := range cgroups.HugePageSizes() {
154 baseHugepage = append(baseHugepage, &runtimeapi.HugepageLimit{
155 PageSize: pageSize,
156 Limit: uint64(0),
157@@ -481,7 +481,7 @@ func TestGetHugepageLimitsFromResources(t *testing.T) {
158 machineHugepageSupport := true
159 for _, hugepageLimit := range test.expected {
160 hugepageSupport := false
161- for _, pageSize := range cgroupfs.HugePageSizes {
162+ for _, pageSize := range cgroups.HugePageSizes() {
163 if pageSize == hugepageLimit.PageSize {
164 hugepageSupport = true
165 break
166--
1672.25.1
168