Set default resource resize restart policy to RestartNotRequired

This commit is contained in:
vinay kulkarni 2023-03-01 14:05:14 +00:00
parent c5130fb0d6
commit 9411050448
2 changed files with 26 additions and 0 deletions

View File

@ -22,6 +22,8 @@ import (
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/runtime"
"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/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 {
if obj.Spec.InitContainers[i].Resources.Limits != nil {

View File

@ -322,6 +322,9 @@ func testPodDefaults(t *testing.T, featuresEnabled bool) {
".Spec.Volumes[0].VolumeSource.ScaleIO.StorageMode": `"ThinProvisioned"`,
".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))
if !reflect.DeepEqual(expectedDefaults, defaults) {
t.Errorf("Defaults for PodSpec changed. This can cause spurious restarts of containers on API server upgrade.")