From bd5b1e2d05ff8615a1177b441bf9dcc530e9b174 Mon Sep 17 00:00:00 2001 From: David Eads Date: Mon, 15 Feb 2021 16:55:41 -0500 Subject: [PATCH] move secret mutation from validation to prepareforupdate --- pkg/apis/core/validation/validation.go | 4 ---- pkg/registry/core/secret/strategy.go | 6 ++++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pkg/apis/core/validation/validation.go b/pkg/apis/core/validation/validation.go index 9e826be3a7d..40d5c9509bc 100644 --- a/pkg/apis/core/validation/validation.go +++ b/pkg/apis/core/validation/validation.go @@ -5229,10 +5229,6 @@ func ValidateSecret(secret *core.Secret) field.ErrorList { func ValidateSecretUpdate(newSecret, oldSecret *core.Secret) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newSecret.ObjectMeta, &oldSecret.ObjectMeta, field.NewPath("metadata")) - if len(newSecret.Type) == 0 { - newSecret.Type = oldSecret.Type - } - allErrs = append(allErrs, ValidateImmutableField(newSecret.Type, oldSecret.Type, field.NewPath("type"))...) if oldSecret.Immutable != nil && *oldSecret.Immutable { if newSecret.Immutable == nil || !*newSecret.Immutable { diff --git a/pkg/registry/core/secret/strategy.go b/pkg/registry/core/secret/strategy.go index 9d86faf1282..2970c32f3dd 100644 --- a/pkg/registry/core/secret/strategy.go +++ b/pkg/registry/core/secret/strategy.go @@ -70,6 +70,12 @@ func (strategy) AllowCreateOnUpdate() bool { func (strategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) { newSecret := obj.(*api.Secret) oldSecret := old.(*api.Secret) + + // this is weird, but consistent with what the validatedUpdate function used to do. + if len(newSecret.Type) == 0 { + newSecret.Type = oldSecret.Type + } + dropDisabledFields(newSecret, oldSecret) }