mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 15:25:57 +00:00
consolidate managedFields validation
This commit is contained in:
parent
589ca1be1c
commit
da610d6667
@ -180,9 +180,7 @@ func ValidateObjectMetaAccessor(meta metav1.Object, requiresNamespace bool, name
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("clusterName"), meta.GetClusterName(), msg))
|
||||
}
|
||||
}
|
||||
for _, entry := range meta.GetManagedFields() {
|
||||
allErrs = append(allErrs, v1validation.ValidateFieldManager(entry.Manager, fldPath.Child("fieldManager"))...)
|
||||
}
|
||||
|
||||
allErrs = append(allErrs, ValidateNonnegativeField(meta.GetGeneration(), fldPath.Child("generation"))...)
|
||||
allErrs = append(allErrs, v1validation.ValidateLabels(meta.GetLabels(), fldPath.Child("labels"))...)
|
||||
allErrs = append(allErrs, ValidateAnnotations(meta.GetAnnotations(), fldPath.Child("annotations"))...)
|
||||
@ -248,9 +246,6 @@ func ValidateObjectMetaAccessorUpdate(newMeta, oldMeta metav1.Object, fldPath *f
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("generation"), newMeta.GetGeneration(), "must not be decremented"))
|
||||
}
|
||||
|
||||
for _, entry := range newMeta.GetManagedFields() {
|
||||
allErrs = append(allErrs, v1validation.ValidateFieldManager(entry.Manager, fldPath.Child("fieldManager"))...)
|
||||
}
|
||||
allErrs = append(allErrs, ValidateImmutableField(newMeta.GetName(), oldMeta.GetName(), fldPath.Child("name"))...)
|
||||
allErrs = append(allErrs, ValidateImmutableField(newMeta.GetNamespace(), oldMeta.GetNamespace(), fldPath.Child("namespace"))...)
|
||||
allErrs = append(allErrs, ValidateImmutableField(newMeta.GetUID(), oldMeta.GetUID(), fldPath.Child("uid"))...)
|
||||
|
@ -173,15 +173,20 @@ func ValidateTableOptions(opts *metav1.TableOptions) field.ErrorList {
|
||||
|
||||
func ValidateManagedFields(fieldsList []metav1.ManagedFieldsEntry, fldPath *field.Path) field.ErrorList {
|
||||
var allErrs field.ErrorList
|
||||
for _, fields := range fieldsList {
|
||||
for i, fields := range fieldsList {
|
||||
fldPath := fldPath.Index(i)
|
||||
switch fields.Operation {
|
||||
case metav1.ManagedFieldsOperationApply, metav1.ManagedFieldsOperationUpdate:
|
||||
default:
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("operation"), fields.Operation, "must be `Apply` or `Update`"))
|
||||
}
|
||||
if len(fields.APIVersion) < 1 {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("apiVersion"), fields.APIVersion, "must not be empty"))
|
||||
}
|
||||
if len(fields.FieldsType) > 0 && fields.FieldsType != "FieldsV1" {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("fieldsType"), fields.FieldsType, "must be `FieldsV1`"))
|
||||
}
|
||||
allErrs = append(allErrs, ValidateFieldManager(fields.Manager, fldPath.Child("manager"))...)
|
||||
}
|
||||
return allErrs
|
||||
}
|
||||
|
@ -256,6 +256,12 @@ func TestValidateManagedFieldsInvalid(t *testing.T) {
|
||||
// Operation is missing
|
||||
FieldsType: "FieldsV1",
|
||||
},
|
||||
{
|
||||
Operation: metav1.ManagedFieldsOperationUpdate,
|
||||
FieldsType: "FieldsV1",
|
||||
// Invalid fieldManager
|
||||
Manager: "field\nmanager",
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
@ -282,6 +288,11 @@ func TestValidateMangedFieldsValid(t *testing.T) {
|
||||
Operation: metav1.ManagedFieldsOperationApply,
|
||||
FieldsType: "FieldsV1",
|
||||
},
|
||||
{
|
||||
Operation: metav1.ManagedFieldsOperationApply,
|
||||
FieldsType: "FieldsV1",
|
||||
Manager: "🍔",
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
Loading…
Reference in New Issue
Block a user