mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #50390 from Random-Liu/admit-sysctl
Automatic merge from submit-queue (batch tested with PRs 49642, 50335, 50390, 49283, 46582) Admit sysctls for other runtime. Fixes https://github.com/kubernetes/kubernetes/issues/50343. Admit sysctl for other runtimes. /cc @mikebrow @yujuhong @feiskyer @sttts
This commit is contained in:
commit
78b91d15f6
@ -31,6 +31,7 @@ const (
|
|||||||
dockerMinimumAPIVersion = "1.24.0"
|
dockerMinimumAPIVersion = "1.24.0"
|
||||||
|
|
||||||
dockerTypeName = "docker"
|
dockerTypeName = "docker"
|
||||||
|
rktTypeName = "rkt"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO: The admission logic in this file is runtime-dependent. It should be
|
// TODO: The admission logic in this file is runtime-dependent. It should be
|
||||||
@ -45,7 +46,8 @@ var _ lifecycle.PodAdmitHandler = &runtimeAdmitHandler{}
|
|||||||
// NewRuntimeAdmitHandler returns a sysctlRuntimeAdmitHandler which checks whether
|
// NewRuntimeAdmitHandler returns a sysctlRuntimeAdmitHandler which checks whether
|
||||||
// the given runtime support sysctls.
|
// the given runtime support sysctls.
|
||||||
func NewRuntimeAdmitHandler(runtime container.Runtime) (*runtimeAdmitHandler, error) {
|
func NewRuntimeAdmitHandler(runtime container.Runtime) (*runtimeAdmitHandler, error) {
|
||||||
if runtime.Type() == dockerTypeName {
|
switch runtime.Type() {
|
||||||
|
case dockerTypeName:
|
||||||
v, err := runtime.APIVersion()
|
v, err := runtime.APIVersion()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to get runtime version: %v", err)
|
return nil, fmt.Errorf("failed to get runtime version: %v", err)
|
||||||
@ -70,16 +72,22 @@ func NewRuntimeAdmitHandler(runtime container.Runtime) (*runtimeAdmitHandler, er
|
|||||||
Message: "Docker before 1.12 does not support sysctls",
|
Message: "Docker before 1.12 does not support sysctls",
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
|
case rktTypeName:
|
||||||
|
return &runtimeAdmitHandler{
|
||||||
|
result: lifecycle.PodAdmitResult{
|
||||||
|
Admit: false,
|
||||||
|
Reason: UnsupportedReason,
|
||||||
|
Message: "Rkt does not support sysctls",
|
||||||
|
},
|
||||||
|
}, nil
|
||||||
|
default:
|
||||||
|
// Return admit for other runtimes.
|
||||||
|
return &runtimeAdmitHandler{
|
||||||
|
result: lifecycle.PodAdmitResult{
|
||||||
|
Admit: true,
|
||||||
|
},
|
||||||
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// for other runtimes like rkt sysctls are not supported
|
|
||||||
return &runtimeAdmitHandler{
|
|
||||||
result: lifecycle.PodAdmitResult{
|
|
||||||
Admit: false,
|
|
||||||
Reason: UnsupportedReason,
|
|
||||||
Message: fmt.Sprintf("runtime %v does not support sysctls", runtime.Type()),
|
|
||||||
},
|
|
||||||
}, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Admit checks whether the runtime supports sysctls.
|
// Admit checks whether the runtime supports sysctls.
|
||||||
|
Loading…
Reference in New Issue
Block a user