Update validation code

This commit is contained in:
vivzbansal 2025-01-27 18:34:28 +00:00
parent c31b1b3332
commit cfa0349159
2 changed files with 7 additions and 3 deletions

View File

@ -19,7 +19,7 @@ package pod
import ( import (
"strings" "strings"
"github.com/google/go-cmp/cmp" //nolint:depguard apiequality "k8s.io/apimachinery/pkg/api/equality"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
metavalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" metavalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation"
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"

View File

@ -5644,6 +5644,11 @@ func ValidatePodResize(newPod, oldPod *core.Pod, opts PodValidationOptions) fiel
var newContainers []core.Container var newContainers []core.Container
for ix, container := range originalCPUMemPodSpec.Containers { for ix, container := range originalCPUMemPodSpec.Containers {
dropCPUMemoryResourcesFromContainer(&container, &oldPod.Spec.Containers[ix]) 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) newContainers = append(newContainers, container)
} }
originalCPUMemPodSpec.Containers = newContainers originalCPUMemPodSpec.Containers = newContainers
@ -5676,8 +5681,7 @@ func ValidatePodResize(newPod, oldPod *core.Pod, opts PodValidationOptions) fiel
if !apiequality.Semantic.DeepEqual(originalCPUMemPodSpec, oldPod.Spec) { if !apiequality.Semantic.DeepEqual(originalCPUMemPodSpec, oldPod.Spec) {
// This likely means that the user has made changes to resources other than CPU and Memory. // 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, "only cpu and memory resources are mutable")
errs := field.Forbidden(specPath, fmt.Sprintf("only cpu and memory resources are mutable\n%v", specDiff))
allErrs = append(allErrs, errs) allErrs = append(allErrs, errs)
} }
return allErrs return allErrs