From 69bb6a11347e8e6a5cc975bfbafd9aa847af42d7 Mon Sep 17 00:00:00 2001 From: jwcesign Date: Wed, 29 Nov 2023 17:21:36 +0800 Subject: [PATCH] feat: add webhook for multiclusterservice to add the permanentid Signed-off-by: jwcesign --- .../templates/_karmada_webhook_configuration.tpl | 14 ++++++++++++++ .../webhookconfiguration/manifests.go | 14 ++++++++++++++ .../cmdinit/karmada/webhook_configuration.go | 14 ++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/charts/karmada/templates/_karmada_webhook_configuration.tpl b/charts/karmada/templates/_karmada_webhook_configuration.tpl index 3c7cd1b0d..e83048823 100644 --- a/charts/karmada/templates/_karmada_webhook_configuration.tpl +++ b/charts/karmada/templates/_karmada_webhook_configuration.tpl @@ -79,6 +79,20 @@ webhooks: sideEffects: None admissionReviewVersions: [ "v1" ] timeoutSeconds: 3 + - name: multiclusterservice.karmada.io + rules: + - operations: ["CREATE", "UPDATE"] + apiGroups: ["networking.karmada.io"] + apiVersions: ["*"] + resources: ["multiclusterservices"] + scope: "Namespaced" + clientConfig: + url: https://{{ $name }}-webhook.{{ $namespace }}.svc:443/mutate-multiclusterservice + {{- include "karmada.webhook.caBundle" . | nindent 6 }} + failurePolicy: Fail + sideEffects: None + admissionReviewVersions: [ "v1" ] + timeoutSeconds: 3 --- apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration diff --git a/operator/pkg/karmadaresource/webhookconfiguration/manifests.go b/operator/pkg/karmadaresource/webhookconfiguration/manifests.go index 31c801dce..ca9fbcd54 100644 --- a/operator/pkg/karmadaresource/webhookconfiguration/manifests.go +++ b/operator/pkg/karmadaresource/webhookconfiguration/manifests.go @@ -96,6 +96,20 @@ webhooks: sideEffects: None admissionReviewVersions: [ "v1" ] timeoutSeconds: 3 + - name: multiclusterservice.karmada.io + rules: + - operations: ["CREATE", "UPDATE"] + apiGroups: ["networking.karmada.io"] + apiVersions: ["*"] + resources: ["multiclusterservices"] + scope: "Namespaced" + clientConfig: + url: https://{{ .Service }}.{{ .Namespace }}.svc:443/mutate-multiclusterservice + caBundle: {{ .CaBundle }} + failurePolicy: Fail + sideEffects: None + admissionReviewVersions: [ "v1" ] + timeoutSeconds: 3 ` // KarmadaWebhookValidatingWebhookConfiguration is KarmadaWebhook ValidatingWebhookConfiguration manifest diff --git a/pkg/karmadactl/cmdinit/karmada/webhook_configuration.go b/pkg/karmadactl/cmdinit/karmada/webhook_configuration.go index 5340608c6..7255ec7f1 100644 --- a/pkg/karmadactl/cmdinit/karmada/webhook_configuration.go +++ b/pkg/karmadactl/cmdinit/karmada/webhook_configuration.go @@ -107,6 +107,20 @@ webhooks: failurePolicy: Fail sideEffects: None admissionReviewVersions: [ "v1" ] + timeoutSeconds: 3 + - name: multiclusterservice.karmada.io + rules: + - operations: ["CREATE", "UPDATE"] + apiGroups: ["networking.karmada.io"] + apiVersions: ["*"] + resources: ["multiclusterservices"] + scope: "Namespaced" + clientConfig: + url: https://karmada-webhook.%[1]s.svc:443/mutate-multiclusterservice + caBundle: %[2]s + failurePolicy: Fail + sideEffects: None + admissionReviewVersions: [ "v1" ] timeoutSeconds: 3`, systemNamespace, caBundle) }