@@ -37,15 +37,14 @@ import (
37
37
admissionapi "k8s.io/pod-security-admission/api"
38
38
39
39
"k8s.io/kubernetes/test/e2e/framework"
40
- e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
41
40
"k8s.io/kubernetes/test/e2e/nodefeature"
42
41
e2enodekubelet "k8s.io/kubernetes/test/e2e_node/kubeletconfig"
43
42
44
43
"github.com/onsi/ginkgo/v2"
45
44
"github.com/onsi/gomega"
46
45
)
47
46
48
- func setDesiredConfiguration (initialConfig * kubeletconfig.KubeletConfiguration ) {
47
+ func setDesiredConfiguration (initialConfig * kubeletconfig.KubeletConfiguration , cgroupManager cm. CgroupManager ) {
49
48
initialConfig .EnforceNodeAllocatable = []string {"pods" , kubeReservedCgroup , systemReservedCgroup }
50
49
initialConfig .SystemReserved = map [string ]string {
51
50
string (v1 .ResourceCPU ): "100m" ,
@@ -62,6 +61,11 @@ func setDesiredConfiguration(initialConfig *kubeletconfig.KubeletConfiguration)
62
61
initialConfig .CgroupsPerQOS = true
63
62
initialConfig .KubeReservedCgroup = kubeReservedCgroup
64
63
initialConfig .SystemReservedCgroup = systemReservedCgroup
64
+
65
+ if initialConfig .CgroupDriver == "systemd" {
66
+ initialConfig .KubeReservedCgroup = cm .NewCgroupName (cm .RootCgroupName , kubeReservedCgroup ).ToSystemd ()
67
+ initialConfig .SystemReservedCgroup = cm .NewCgroupName (cm .RootCgroupName , systemReservedCgroup ).ToSystemd ()
68
+ }
65
69
}
66
70
67
71
var _ = SIGDescribe ("Node Container Manager" , framework .WithSerial (), func () {
@@ -172,15 +176,6 @@ func runTest(ctx context.Context, f *framework.Framework) error {
172
176
return err
173
177
}
174
178
175
- // Test needs to be updated to make it run properly on systemd.
176
- // In its current state it will result in kubelet error since
177
- // kubeReservedCgroup and systemReservedCgroup are not configured
178
- // correctly for systemd.
179
- // See: https://github.com/kubernetes/kubernetes/issues/102394
180
- if oldCfg .CgroupDriver == "systemd" {
181
- e2eskipper .Skipf ("unable to run test when using systemd as cgroup driver" )
182
- }
183
-
184
179
// Create a cgroup manager object for manipulating cgroups.
185
180
cgroupManager := cm .NewCgroupManager (subsystems , oldCfg .CgroupDriver )
186
181
@@ -210,9 +205,10 @@ func runTest(ctx context.Context, f *framework.Framework) error {
210
205
if err := createTemporaryCgroupsForReservation (cgroupManager ); err != nil {
211
206
return err
212
207
}
208
+
213
209
newCfg := oldCfg .DeepCopy ()
214
210
// Change existing kubelet configuration
215
- setDesiredConfiguration (newCfg )
211
+ setDesiredConfiguration (newCfg , cgroupManager )
216
212
// Set the new kubelet configuration.
217
213
// Update the Kubelet configuration.
218
214
ginkgo .By ("Stopping the kubelet" )
@@ -311,7 +307,7 @@ func runTest(ctx context.Context, f *framework.Framework) error {
311
307
312
308
cgroupPath := ""
313
309
if currentConfig .CgroupDriver == "systemd" {
314
- cgroupPath = cm .ParseSystemdToCgroupName ( kubeReservedCgroup ).ToSystemd ()
310
+ cgroupPath = cm .NewCgroupName ( cm . RootCgroupName , kubeReservedCgroup ).ToSystemd ()
315
311
} else {
316
312
cgroupPath = cgroupManager .Name (cm .NewCgroupName (cm .RootCgroupName , kubeReservedCgroup ))
317
313
}
@@ -339,7 +335,7 @@ func runTest(ctx context.Context, f *framework.Framework) error {
339
335
}
340
336
341
337
if currentConfig .CgroupDriver == "systemd" {
342
- cgroupPath = cm .ParseSystemdToCgroupName ( systemReservedCgroup ).ToSystemd ()
338
+ cgroupPath = cm .NewCgroupName ( cm . RootCgroupName , systemReservedCgroup ).ToSystemd ()
343
339
} else {
344
340
cgroupPath = cgroupManager .Name (cm .NewCgroupName (cm .RootCgroupName , systemReservedCgroup ))
345
341
}
0 commit comments