From ce0f4597d3fe65a4bb15dba907085e074b613c6f Mon Sep 17 00:00:00 2001 From: Anish Shah Date: Tue, 22 Oct 2024 19:39:00 -0700 Subject: [PATCH] fix error message for pod resize validation failure --- pkg/apis/core/validation/validation.go | 5 ++++- pkg/apis/core/validation/validation_test.go | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pkg/apis/core/validation/validation.go b/pkg/apis/core/validation/validation.go index 7d1e492a6a8..bcfdd629ded 100644 --- a/pkg/apis/core/validation/validation.go +++ b/pkg/apis/core/validation/validation.go @@ -5485,6 +5485,9 @@ func ValidatePodEphemeralContainersUpdate(newPod, oldPod *core.Pod, opts PodVali return allErrs } +// ValidatePodResize tests that a user update to pod container resources is valid. +// newPod and oldPod must only differ in their Containers[*].Resources and +// Containers[*].ResizePolicy field. func ValidatePodResize(newPod, oldPod *core.Pod, opts PodValidationOptions) field.ErrorList { // Part 1: Validate newPod's spec and updates to metadata fldPath := field.NewPath("metadata") @@ -5501,7 +5504,7 @@ func ValidatePodResize(newPod, oldPod *core.Pod, opts PodValidationOptions) fiel // newPod.Spec.Containers[].Resources are allowed. specPath := field.NewPath("spec") if qos.GetPodQOS(oldPod) != qos.ComputePodQOS(newPod) { - allErrs = append(allErrs, field.Invalid(specPath, newPod.Status.QOSClass, "Pod QoS is immutable")) + allErrs = append(allErrs, field.Invalid(specPath, newPod.Status.QOSClass, "Pod QOS Class must not change")) } // Ensure that only CPU and memory resources are mutable. diff --git a/pkg/apis/core/validation/validation_test.go b/pkg/apis/core/validation/validation_test.go index 956d0b7dbee..c24fadb7313 100644 --- a/pkg/apis/core/validation/validation_test.go +++ b/pkg/apis/core/validation/validation_test.go @@ -25315,7 +25315,7 @@ func TestValidatePodResize(t *testing.T) { Requests: getResourceLimits("100m", "100Mi"), }))), ), - err: "Pod QoS is immutable", + err: "Pod QOS Class must not change", test: "Pod QoS change, guaranteed -> burstable", }, { new: *podtest.MakePod("pod", @@ -25331,7 +25331,7 @@ func TestValidatePodResize(t *testing.T) { Requests: getResourceLimits("100m", "100Mi"), }))), ), - err: "Pod QoS is immutable", + err: "Pod QOS Class must not change", test: "Pod QoS change, burstable -> guaranteed", }, { new: *podtest.MakePod("pod", @@ -25342,7 +25342,7 @@ func TestValidatePodResize(t *testing.T) { }))), ), old: *podtest.MakePod("pod"), - err: "Pod QoS is immutable", + err: "Pod QOS Class must not change", test: "Pod QoS change, besteffort -> burstable", }, { new: *podtest.MakePod("pod"), @@ -25353,7 +25353,7 @@ func TestValidatePodResize(t *testing.T) { Requests: getResourceLimits("100m", "100Mi"), }))), ), - err: "Pod QoS is immutable", + err: "Pod QOS Class must not change", test: "Pod QoS change, burstable -> besteffort", }, }