Skip to content

Commit 9e1c99c

Browse files
Delete the sysctl runtime admit handler
As of kubernetes#72831, the minimum docker version is 1.13.1. (and the minimum API version is 1.26). The only time the `RuntimeAdmitHandler` returns anything other than accept is when the Docker API version < 1.24. In other words, we can be confident that Docker will always support sysctl. As a result, we can delete this unnecessary and docker-specific code.
1 parent dcd0755 commit 9e1c99c

File tree

8 files changed

+2
-125
lines changed

8 files changed

+2
-125
lines changed

pkg/kubelet/kubelet.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -850,20 +850,13 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
850850
klet.admitHandlers.AddPodAdmitHandler(evictionAdmitHandler)
851851

852852
if utilfeature.DefaultFeatureGate.Enabled(features.Sysctls) {
853-
// add sysctl admission
854-
runtimeSupport, err := sysctl.NewRuntimeAdmitHandler(klet.containerRuntime)
855-
if err != nil {
856-
return nil, err
857-
}
858-
859853
// Safe, whitelisted sysctls can always be used as unsafe sysctls in the spec.
860854
// Hence, we concatenate those two lists.
861855
safeAndUnsafeSysctls := append(sysctlwhitelist.SafeSysctlWhitelist(), allowedUnsafeSysctls...)
862856
sysctlsWhitelist, err := sysctl.NewWhitelist(safeAndUnsafeSysctls)
863857
if err != nil {
864858
return nil, err
865859
}
866-
klet.admitHandlers.AddPodAdmitHandler(runtimeSupport)
867860
klet.admitHandlers.AddPodAdmitHandler(sysctlsWhitelist)
868861
}
869862

pkg/kubelet/sysctl/BUILD

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,12 @@ go_library(
1010
name = "go_default_library",
1111
srcs = [
1212
"namespace.go",
13-
"runtime.go",
1413
"whitelist.go",
1514
],
1615
importpath = "k8s.io/kubernetes/pkg/kubelet/sysctl",
1716
deps = [
1817
"//pkg/apis/core/validation:go_default_library",
1918
"//pkg/apis/policy/validation:go_default_library",
20-
"//pkg/kubelet/container:go_default_library",
2119
"//pkg/kubelet/lifecycle:go_default_library",
2220
],
2321
)

pkg/kubelet/sysctl/runtime.go

Lines changed: 0 additions & 95 deletions
This file was deleted.

test/e2e/common/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ go_library(
4848
"//pkg/kubelet/events:go_default_library",
4949
"//pkg/kubelet/images:go_default_library",
5050
"//pkg/kubelet/runtimeclass/testing:go_default_library",
51-
"//pkg/kubelet/sysctl:go_default_library",
5251
"//staging/src/k8s.io/api/coordination/v1:go_default_library",
5352
"//staging/src/k8s.io/api/core/v1:go_default_library",
5453
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",

test/e2e/common/sysctl.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"k8s.io/api/core/v1"
2121
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2222
"k8s.io/apimachinery/pkg/util/uuid"
23-
"k8s.io/kubernetes/pkg/kubelet/sysctl"
2423
"k8s.io/kubernetes/test/e2e/framework"
2524
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
2625
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
@@ -86,9 +85,6 @@ var _ = framework.KubeDescribe("Sysctls [LinuxOnly] [NodeFeature:Sysctls]", func
8685
// might have already been deleted here.
8786
ev, err := f.PodClient().WaitForErrorEventOrSuccess(pod)
8887
framework.ExpectNoError(err)
89-
if ev != nil && ev.Reason == sysctl.UnsupportedReason {
90-
e2eskipper.Skipf("No sysctl support in Docker <1.12")
91-
}
9288
gomega.Expect(ev).To(gomega.BeNil())
9389

9490
ginkgo.By("Waiting for pod completion")
@@ -129,9 +125,6 @@ var _ = framework.KubeDescribe("Sysctls [LinuxOnly] [NodeFeature:Sysctls]", func
129125
// might have already been deleted here.
130126
ev, err := f.PodClient().WaitForErrorEventOrSuccess(pod)
131127
framework.ExpectNoError(err)
132-
if ev != nil && ev.Reason == sysctl.UnsupportedReason {
133-
e2eskipper.Skipf("No sysctl support in Docker <1.12")
134-
}
135128
gomega.Expect(ev).To(gomega.BeNil())
136129

137130
ginkgo.By("Waiting for pod completion")
@@ -206,9 +199,6 @@ var _ = framework.KubeDescribe("Sysctls [LinuxOnly] [NodeFeature:Sysctls]", func
206199
// might have already been deleted here.
207200
ev, err := f.PodClient().WaitForErrorEventOrSuccess(pod)
208201
framework.ExpectNoError(err)
209-
if ev != nil && ev.Reason == sysctl.UnsupportedReason {
210-
e2eskipper.Skipf("No sysctl support in Docker <1.12")
211-
}
212202

213203
ginkgo.By("Checking that the pod was rejected")
214204
gomega.Expect(ev).ToNot(gomega.BeNil())

test/e2e/framework/pods.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ func (c *PodClient) WaitForErrorEventOrSuccess(pod *v1.Pod) (*v1.Event, error) {
226226
}
227227
for _, e := range evnts.Items {
228228
switch e.Reason {
229-
case events.KillingContainer, events.FailedToCreateContainer, sysctl.UnsupportedReason, sysctl.ForbiddenReason:
229+
case events.KillingContainer, events.FailedToCreateContainer, sysctl.ForbiddenReason:
230230
ev = &e
231231
return true, nil
232232
case events.StartedContainer:

test/e2e/upgrades/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ go_library(
4141
"//test/e2e/framework/node:go_default_library",
4242
"//test/e2e/framework/security:go_default_library",
4343
"//test/e2e/framework/service:go_default_library",
44-
"//test/e2e/framework/skipper:go_default_library",
4544
"//test/e2e/framework/statefulset:go_default_library",
4645
"//test/e2e/framework/testfiles:go_default_library",
4746
"//test/e2e/scheduling:go_default_library",

test/e2e/upgrades/sysctl.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import (
2828
"k8s.io/kubernetes/pkg/kubelet/sysctl"
2929

3030
"k8s.io/kubernetes/test/e2e/framework"
31-
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
3231
imageutils "k8s.io/kubernetes/test/utils/image"
3332
)
3433

@@ -85,11 +84,8 @@ func (t *SysctlUpgradeTest) verifySafeSysctlWork(f *framework.Framework) *v1.Pod
8584
validPod := f.PodClient().Create(t.validPod)
8685

8786
ginkgo.By("Making sure the valid pod launches")
88-
ev, err := f.PodClient().WaitForErrorEventOrSuccess(t.validPod)
87+
_, err := f.PodClient().WaitForErrorEventOrSuccess(t.validPod)
8988
framework.ExpectNoError(err)
90-
if ev != nil && ev.Reason == sysctl.UnsupportedReason {
91-
e2eskipper.Skipf("No sysctl support in Docker <1.12")
92-
}
9389
f.TestContainerOutput("pod with safe sysctl launched", t.validPod, 0, []string{fmt.Sprintf("%s = %s", safeSysctl, safeSysctlValue)})
9490

9591
return validPod
@@ -105,9 +101,6 @@ func (t *SysctlUpgradeTest) verifyUnsafeSysctlsAreRejected(f *framework.Framewor
105101
ginkgo.By("Making sure the invalid pod failed")
106102
ev, err := f.PodClient().WaitForErrorEventOrSuccess(invalidPod)
107103
framework.ExpectNoError(err)
108-
if ev != nil && ev.Reason == sysctl.UnsupportedReason {
109-
e2eskipper.Skipf("No sysctl support in Docker <1.12")
110-
}
111104
framework.ExpectEqual(ev.Reason, sysctl.ForbiddenReason)
112105

113106
return invalidPod

0 commit comments

Comments
 (0)