mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
[fix] fix and refactor TestValidateStatefulSet and TestValidateStatefulSet test cases (#109809)
* restructure tests restructure TestValidateStatefulSet and TestValidateStatefulSetUpdate to be an array and accept list of expected errors. in this commits, no tests were changed and expected errors are not filled yet * add expected errors adding expected errors and making the tests pass, without making any changes to the tests * clean up TestValidateStatefulSet error cases * clean up TestValidateStatefulSetUpdate cases * validate new statefulset as part of update validation * address PR comments
This commit is contained in:
parent
114cdea709
commit
a6943ad863
@ -166,8 +166,11 @@ func ValidateStatefulSet(statefulSet *apps.StatefulSet, opts apivalidation.PodVa
|
||||
}
|
||||
|
||||
// ValidateStatefulSetUpdate tests if required fields in the StatefulSet are set.
|
||||
func ValidateStatefulSetUpdate(statefulSet, oldStatefulSet *apps.StatefulSet) field.ErrorList {
|
||||
allErrs := apivalidation.ValidateObjectMetaUpdate(&statefulSet.ObjectMeta, &oldStatefulSet.ObjectMeta, field.NewPath("metadata"))
|
||||
func ValidateStatefulSetUpdate(statefulSet, oldStatefulSet *apps.StatefulSet, opts apivalidation.PodValidationOptions) field.ErrorList {
|
||||
// first, validate that the new statefulset is valid
|
||||
allErrs := ValidateStatefulSet(statefulSet, opts)
|
||||
|
||||
allErrs = append(allErrs, apivalidation.ValidateObjectMetaUpdate(&statefulSet.ObjectMeta, &oldStatefulSet.ObjectMeta, field.NewPath("metadata"))...)
|
||||
|
||||
// statefulset updates aren't super common and general updates are likely to be touching spec, so we'll do this
|
||||
// deep copy right away. This avoids mutating our inputs
|
||||
@ -187,11 +190,6 @@ func ValidateStatefulSetUpdate(statefulSet, oldStatefulSet *apps.StatefulSet) fi
|
||||
}
|
||||
}
|
||||
|
||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(statefulSet.Spec.Replicas), field.NewPath("spec", "replicas"))...)
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.StatefulSetMinReadySeconds) {
|
||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(statefulSet.Spec.MinReadySeconds), field.NewPath("spec", "minReadySeconds"))...)
|
||||
}
|
||||
allErrs = append(allErrs, ValidatePersistentVolumeClaimRetentionPolicy(statefulSet.Spec.PersistentVolumeClaimRetentionPolicy, field.NewPath("spec", "persistentVolumeClaimRetentionPolicy"))...)
|
||||
return allErrs
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -173,9 +173,7 @@ func (statefulSetStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.
|
||||
oldStatefulSet := old.(*apps.StatefulSet)
|
||||
|
||||
opts := pod.GetValidationOptionsFromPodTemplate(&newStatefulSet.Spec.Template, &oldStatefulSet.Spec.Template)
|
||||
validationErrorList := validation.ValidateStatefulSet(newStatefulSet, opts)
|
||||
updateErrorList := validation.ValidateStatefulSetUpdate(newStatefulSet, oldStatefulSet)
|
||||
return append(validationErrorList, updateErrorList...)
|
||||
return validation.ValidateStatefulSetUpdate(newStatefulSet, oldStatefulSet, opts)
|
||||
}
|
||||
|
||||
// WarningsOnUpdate returns warnings for the given update.
|
||||
|
Loading…
Reference in New Issue
Block a user