diff --git a/pkg/api/pod/util.go b/pkg/api/pod/util.go index 123564221c4..a00c82cc083 100644 --- a/pkg/api/pod/util.go +++ b/pkg/api/pod/util.go @@ -19,7 +19,7 @@ package pod import ( "strings" - "github.com/google/go-cmp/cmp" //nolint:depguard + apiequality "k8s.io/apimachinery/pkg/api/equality" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metavalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" "k8s.io/apimachinery/pkg/util/sets" diff --git a/pkg/apis/core/validation/validation.go b/pkg/apis/core/validation/validation.go index db0061825ed..72224863802 100644 --- a/pkg/apis/core/validation/validation.go +++ b/pkg/apis/core/validation/validation.go @@ -5644,6 +5644,11 @@ func ValidatePodResize(newPod, oldPod *core.Pod, opts PodValidationOptions) fiel var newContainers []core.Container for ix, container := range originalCPUMemPodSpec.Containers { dropCPUMemoryResourcesFromContainer(&container, &oldPod.Spec.Containers[ix]) + if !apiequality.Semantic.DeepEqual(container, oldPod.Spec.Containers[ix]) { + // This likely means that the user has made changes to resources other than CPU and memory for regular container. + errs := field.Forbidden(specPath, "only cpu and memory resources are mutable") + allErrs = append(allErrs, errs) + } newContainers = append(newContainers, container) } originalCPUMemPodSpec.Containers = newContainers @@ -5676,8 +5681,7 @@ func ValidatePodResize(newPod, oldPod *core.Pod, opts PodValidationOptions) fiel if !apiequality.Semantic.DeepEqual(originalCPUMemPodSpec, oldPod.Spec) { // This likely means that the user has made changes to resources other than CPU and Memory. - specDiff := cmp.Diff(oldPod.Spec, originalCPUMemPodSpec) - errs := field.Forbidden(specPath, fmt.Sprintf("only cpu and memory resources are mutable\n%v", specDiff)) + errs := field.Forbidden(specPath, "only cpu and memory resources are mutable") allErrs = append(allErrs, errs) } return allErrs