From ffbae9c5b4a3df9f7400d0047a5d7a957adf295d Mon Sep 17 00:00:00 2001 From: Kevin Wiesmueller Date: Mon, 1 Feb 2021 17:56:49 +0100 Subject: [PATCH] disable webhook for testing --- .../pkg/endpoints/handlers/create.go | 3 -- .../apiserver/pkg/endpoints/handlers/patch.go | 2 +- .../pkg/endpoints/handlers/update.go | 2 - .../invalid_managedFields_test.go | 48 +++++++++---------- 4 files changed, 24 insertions(+), 31 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go index 743f289483c..e914eaeea5d 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/create.go @@ -35,7 +35,6 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/audit" - "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager" "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/features" @@ -164,8 +163,6 @@ func createHandler(r rest.NamedCreater, scope *RequestScope, admit admission.Int return nil, fmt.Errorf("failed to create new object (Create for %v): %v", scope.Kind, err) } obj = scope.FieldManager.UpdateNoErrors(liveObj, obj, managerOrUserAgent(options.FieldManager, req.UserAgent())) - - admit = fieldmanager.NewManagedFieldsValidatingAdmissionController(admit) } if mutatingAdmission, ok := admit.(admission.MutationInterface); ok && mutatingAdmission.Handles(admission.Create) { if err := mutatingAdmission.Admit(ctx, admissionAttributes, scope); err != nil { diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go index b8e2991a986..4c0d102308a 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go @@ -171,7 +171,7 @@ func PatchResource(r rest.Patcher, scope *RequestScope, admit admission.Interfac userInfo, ) - mutatingAdmission, _ := fieldmanager.NewManagedFieldsValidatingAdmissionController(admit).(admission.MutationInterface) + mutatingAdmission, _ := admit.(admission.MutationInterface) createAuthorizerAttributes := authorizer.AttributesRecord{ User: userInfo, ResourceRequest: true, diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go index d6042aa10a5..fd215bb38af 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/update.go @@ -33,7 +33,6 @@ import ( "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/audit" "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager" "k8s.io/apiserver/pkg/endpoints/handlers/negotiation" "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/features" @@ -119,7 +118,6 @@ func UpdateResource(r rest.Updater, scope *RequestScope, admit admission.Interfa ae := request.AuditEventFrom(ctx) audit.LogRequestObject(ae, obj, scope.Resource, scope.Subresource, scope.Serializer) admit = admission.WithAudit(admit, ae) - admit = fieldmanager.NewManagedFieldsValidatingAdmissionController(admit) if err := checkName(obj, name, namespace, scope.Namer); err != nil { scope.err(err, w, req) diff --git a/test/integration/apiserver/admissionwebhook/invalid_managedFields_test.go b/test/integration/apiserver/admissionwebhook/invalid_managedFields_test.go index 85dfa096bd5..cd2499f9f91 100644 --- a/test/integration/apiserver/admissionwebhook/invalid_managedFields_test.go +++ b/test/integration/apiserver/admissionwebhook/invalid_managedFields_test.go @@ -26,7 +26,6 @@ import ( "io/ioutil" "net/http" "net/http/httptest" - "strings" "testing" "time" @@ -36,7 +35,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager" clientset "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing" @@ -118,7 +116,7 @@ func TestMutatingWebhookResetsInvalidManagedFields(t *testing.T) { var pod *corev1.Pod var lastErr string // TODO(kwiesmueller): define warning format in the apiserver and use here - expectedWarning := fieldmanager.InvalidManagedFieldsAfterMutatingAdmissionWarningFormat + // expectedWarning := fieldmanager.InvalidManagedFieldsAfterMutatingAdmissionWarningFormat // Make sure reset happens on patch requests // wait until new webhook is called @@ -127,15 +125,15 @@ func TestMutatingWebhookResetsInvalidManagedFields(t *testing.T) { if err != nil { return false, err } - if warningWriter.WarningCount() == 0 { - lastErr = fmt.Sprintf("no warning, managedFields: %v", pod.ManagedFields) - return false, nil - } - if !strings.Contains(recordedWarnings.String(), expectedWarning) { - lastErr = fmt.Sprintf("unexpected warning, expected: %v, got: %v", - expectedWarning, recordedWarnings.String()) - return false, nil - } + // if warningWriter.WarningCount() == 0 { + // lastErr = fmt.Sprintf("no warning, managedFields: %v", pod.ManagedFields) + // return false, nil + // } + // if !strings.Contains(recordedWarnings.String(), expectedWarning) { + // lastErr = fmt.Sprintf("unexpected warning, expected: %v, got: %v", + // expectedWarning, recordedWarnings.String()) + // return false, nil + // } if err := expectValidManagedFields(pod.ManagedFields); err != nil { lastErr = err.Error() return false, nil @@ -144,27 +142,27 @@ func TestMutatingWebhookResetsInvalidManagedFields(t *testing.T) { }); err != nil { t.Fatalf("failed to wait for apiserver handling webhook mutation: %v, last error: %v", err, lastErr) } - if warningWriter.WarningCount() != 1 { - t.Errorf("expected one warning, got: %v", warningWriter.WarningCount()) - } - recordedWarnings.Reset() + // if warningWriter.WarningCount() != 1 { + // t.Errorf("expected one warning, got: %v", warningWriter.WarningCount()) + // } + // recordedWarnings.Reset() // Make sure dedup happens in update requests pod, err = client.CoreV1().Pods("default").Update(context.TODO(), pod, metav1.UpdateOptions{}) if err != nil { t.Fatal(err) } - if warningWriter.WarningCount() != 2 { - t.Errorf("expected two warnings, got: %v", warningWriter.WarningCount()) - } - if !strings.Contains(recordedWarnings.String(), expectedWarning) { - t.Errorf("unexpected warning, expected: %v, got: %v", - expectedWarning, recordedWarnings.String()) - } + // if warningWriter.WarningCount() != 2 { + // t.Errorf("expected two warnings, got: %v", warningWriter.WarningCount()) + // } + // if !strings.Contains(recordedWarnings.String(), expectedWarning) { + // t.Errorf("unexpected warning, expected: %v, got: %v", + // expectedWarning, recordedWarnings.String()) + // } if err := expectValidManagedFields(pod.ManagedFields); err != nil { t.Error(err) } - recordedWarnings.Reset() + // recordedWarnings.Reset() } @@ -217,7 +215,7 @@ func newInvalidManagedFieldsWebhookHandler(t *testing.T) http.Handler { if len(pod.ManagedFields) != 0 { t.Logf("corrupting managedFields %v", pod.ManagedFields) - review.Response.Patch = []byte(`[{"op":"remove","path":"metadata/managedFields/0/apiVersion"},{"op":"remove","path":"/metadata/managedFields/0/fieldsType"}]`) + review.Response.Patch = []byte(`[{"op":"remove","path":"/metadata/managedFields/0/apiVersion"},{"op":"remove","path":"/metadata/managedFields/0/fieldsType"}]`) jsonPatch := v1.PatchTypeJSONPatch review.Response.PatchType = &jsonPatch }