mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 02:11:09 +00:00
Set default resource resize restart policy to RestartNotRequired
This commit is contained in:
parent
c5130fb0d6
commit
9411050448
@ -22,6 +22,8 @@ import (
|
|||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
|
"k8s.io/kubernetes/pkg/features"
|
||||||
"k8s.io/kubernetes/pkg/util/parsers"
|
"k8s.io/kubernetes/pkg/util/parsers"
|
||||||
"k8s.io/utils/pointer"
|
"k8s.io/utils/pointer"
|
||||||
)
|
)
|
||||||
@ -157,6 +159,27 @@ func SetDefaults_Pod(obj *v1.Pod) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if utilfeature.DefaultFeatureGate.Enabled(features.InPlacePodVerticalScaling) {
|
||||||
|
// For normal containers, set resize restart policy to default value (RestartNotRequired), if not specified.
|
||||||
|
resizePolicySpecified := make(map[v1.ResourceName]bool)
|
||||||
|
for _, p := range obj.Spec.Containers[i].ResizePolicy {
|
||||||
|
resizePolicySpecified[p.ResourceName] = true
|
||||||
|
}
|
||||||
|
if _, found := resizePolicySpecified[v1.ResourceCPU]; !found {
|
||||||
|
obj.Spec.Containers[i].ResizePolicy = append(obj.Spec.Containers[i].ResizePolicy,
|
||||||
|
v1.ContainerResizePolicy{
|
||||||
|
ResourceName: v1.ResourceCPU,
|
||||||
|
RestartPolicy: v1.RestartNotRequired,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if _, found := resizePolicySpecified[v1.ResourceMemory]; !found {
|
||||||
|
obj.Spec.Containers[i].ResizePolicy = append(obj.Spec.Containers[i].ResizePolicy,
|
||||||
|
v1.ContainerResizePolicy{
|
||||||
|
ResourceName: v1.ResourceMemory,
|
||||||
|
RestartPolicy: v1.RestartNotRequired,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for i := range obj.Spec.InitContainers {
|
for i := range obj.Spec.InitContainers {
|
||||||
if obj.Spec.InitContainers[i].Resources.Limits != nil {
|
if obj.Spec.InitContainers[i].Resources.Limits != nil {
|
||||||
|
@ -322,6 +322,9 @@ func testPodDefaults(t *testing.T, featuresEnabled bool) {
|
|||||||
".Spec.Volumes[0].VolumeSource.ScaleIO.StorageMode": `"ThinProvisioned"`,
|
".Spec.Volumes[0].VolumeSource.ScaleIO.StorageMode": `"ThinProvisioned"`,
|
||||||
".Spec.Volumes[0].VolumeSource.Secret.DefaultMode": `420`,
|
".Spec.Volumes[0].VolumeSource.Secret.DefaultMode": `420`,
|
||||||
}
|
}
|
||||||
|
if featuresEnabled {
|
||||||
|
expectedDefaults[".Spec.Containers[0].ResizePolicy"] = `[{"resourceName":"cpu","restartPolicy":"RestartNotRequired"},{"resourceName":"memory","restartPolicy":"RestartNotRequired"}]`
|
||||||
|
}
|
||||||
defaults := detectDefaults(t, pod, reflect.ValueOf(pod))
|
defaults := detectDefaults(t, pod, reflect.ValueOf(pod))
|
||||||
if !reflect.DeepEqual(expectedDefaults, defaults) {
|
if !reflect.DeepEqual(expectedDefaults, defaults) {
|
||||||
t.Errorf("Defaults for PodSpec changed. This can cause spurious restarts of containers on API server upgrade.")
|
t.Errorf("Defaults for PodSpec changed. This can cause spurious restarts of containers on API server upgrade.")
|
||||||
|
Loading…
Reference in New Issue
Block a user