From 3dbaf305ae1e52105a338987f3770ff104def68b Mon Sep 17 00:00:00 2001 From: Lukasz Szaszkiewicz Date: Thu, 29 Apr 2021 14:08:36 +0200 Subject: [PATCH] let objects without metadata pass through the managedFields admission controller Not all objects provide metadata. There might be extention servers that allow for creating objects without the metadata field. This PR changes the managedFileds admission to deal with objects without the metadata field. Object without that field will be passed directly to the wrapped admission controller for further validation. --- .../pkg/endpoints/handlers/fieldmanager/admission.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/admission.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/admission.go index 20bbab06505..26d264fe833 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/admission.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/admission.go @@ -60,7 +60,10 @@ func (admit *managedFieldsValidatingAdmissionController) Admit(ctx context.Conte } objectMeta, err := meta.Accessor(a.GetObject()) if err != nil { - return err + // the object we are dealing with doesn't have object metadata defined + // in that case we don't have to keep track of the managedField + // just call the wrapped admission + return mutationInterface.Admit(ctx, a, o) } managedFieldsBeforeAdmission := objectMeta.GetManagedFields() if err := mutationInterface.Admit(ctx, a, o); err != nil {