mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 02:11:09 +00:00
Merge pull request #116857 from vinaykul/restart-free-pod-vertical-scaling-fixes
Call function that validates resize policy for in-place pod resize feature
This commit is contained in:
commit
0c62b122c0
@ -3242,6 +3242,7 @@ func validateContainerCommon(ctr *core.Container, volumes map[string]core.Volume
|
|||||||
allErrs = append(allErrs, ValidateVolumeDevices(ctr.VolumeDevices, volMounts, volumes, path.Child("volumeDevices"))...)
|
allErrs = append(allErrs, ValidateVolumeDevices(ctr.VolumeDevices, volMounts, volumes, path.Child("volumeDevices"))...)
|
||||||
allErrs = append(allErrs, validatePullPolicy(ctr.ImagePullPolicy, path.Child("imagePullPolicy"))...)
|
allErrs = append(allErrs, validatePullPolicy(ctr.ImagePullPolicy, path.Child("imagePullPolicy"))...)
|
||||||
allErrs = append(allErrs, ValidateResourceRequirements(&ctr.Resources, podClaimNames, path.Child("resources"), opts)...)
|
allErrs = append(allErrs, ValidateResourceRequirements(&ctr.Resources, podClaimNames, path.Child("resources"), opts)...)
|
||||||
|
allErrs = append(allErrs, validateResizePolicy(ctr.ResizePolicy, path.Child("resizePolicy"))...)
|
||||||
allErrs = append(allErrs, ValidateSecurityContext(ctr.SecurityContext, path.Child("securityContext"))...)
|
allErrs = append(allErrs, ValidateSecurityContext(ctr.SecurityContext, path.Child("securityContext"))...)
|
||||||
return allErrs
|
return allErrs
|
||||||
}
|
}
|
||||||
|
@ -7774,6 +7774,34 @@ func TestValidateContainers(t *testing.T) {
|
|||||||
ImagePullPolicy: "IfNotPresent",
|
ImagePullPolicy: "IfNotPresent",
|
||||||
TerminationMessagePolicy: "File",
|
TerminationMessagePolicy: "File",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Name: "resize-policy-cpu",
|
||||||
|
Image: "image",
|
||||||
|
ImagePullPolicy: "IfNotPresent",
|
||||||
|
TerminationMessagePolicy: "File",
|
||||||
|
ResizePolicy: []core.ContainerResizePolicy{
|
||||||
|
{ResourceName: "cpu", RestartPolicy: "NotRequired"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "resize-policy-mem",
|
||||||
|
Image: "image",
|
||||||
|
ImagePullPolicy: "IfNotPresent",
|
||||||
|
TerminationMessagePolicy: "File",
|
||||||
|
ResizePolicy: []core.ContainerResizePolicy{
|
||||||
|
{ResourceName: "memory", RestartPolicy: "RestartContainer"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "resize-policy-cpu-and-mem",
|
||||||
|
Image: "image",
|
||||||
|
ImagePullPolicy: "IfNotPresent",
|
||||||
|
TerminationMessagePolicy: "File",
|
||||||
|
ResizePolicy: []core.ContainerResizePolicy{
|
||||||
|
{ResourceName: "memory", RestartPolicy: "NotRequired"},
|
||||||
|
{ResourceName: "cpu", RestartPolicy: "RestartContainer"},
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
if errs := validateContainers(successCase, volumeDevices, nil, field.NewPath("field"), PodValidationOptions{}); len(errs) != 0 {
|
if errs := validateContainers(successCase, volumeDevices, nil, field.NewPath("field"), PodValidationOptions{}); len(errs) != 0 {
|
||||||
t.Errorf("expected success: %v", errs)
|
t.Errorf("expected success: %v", errs)
|
||||||
@ -8396,6 +8424,38 @@ func TestValidateContainers(t *testing.T) {
|
|||||||
},
|
},
|
||||||
field.ErrorList{{Type: field.ErrorTypeInvalid, Field: "containers[0].envFrom[0].configMapRef.name"}},
|
field.ErrorList{{Type: field.ErrorTypeInvalid, Field: "containers[0].envFrom[0].configMapRef.name"}},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Unsupported resize policy for memory",
|
||||||
|
line(),
|
||||||
|
[]core.Container{
|
||||||
|
{
|
||||||
|
Name: "resize-policy-mem-invalid",
|
||||||
|
Image: "image",
|
||||||
|
ImagePullPolicy: "IfNotPresent",
|
||||||
|
TerminationMessagePolicy: "File",
|
||||||
|
ResizePolicy: []core.ContainerResizePolicy{
|
||||||
|
{ResourceName: "memory", RestartPolicy: "RestartContainerrrr"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
field.ErrorList{{Type: field.ErrorTypeNotSupported, Field: "containers[0].resizePolicy"}},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Unsupported resize policy for CPU",
|
||||||
|
line(),
|
||||||
|
[]core.Container{
|
||||||
|
{
|
||||||
|
Name: "resize-policy-cpu-invalid",
|
||||||
|
Image: "image",
|
||||||
|
ImagePullPolicy: "IfNotPresent",
|
||||||
|
TerminationMessagePolicy: "File",
|
||||||
|
ResizePolicy: []core.ContainerResizePolicy{
|
||||||
|
{ResourceName: "cpu", RestartPolicy: "RestartNotRequired"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
field.ErrorList{{Type: field.ErrorTypeNotSupported, Field: "containers[0].resizePolicy"}},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, tc := range errorCases {
|
for _, tc := range errorCases {
|
||||||
t.Run(tc.title+"__@L"+tc.line, func(t *testing.T) {
|
t.Run(tc.title+"__@L"+tc.line, func(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user