From 502768b91713311abea25b368b88b69b4a88624a Mon Sep 17 00:00:00 2001 From: Ismail Alidzhikov Date: Mon, 24 Jun 2024 17:09:50 +0300 Subject: [PATCH] Add object selector to the shoot webhook --- pkg/webhook/shoot/add.go | 8 ++++++++ pkg/webhook/shoot/mutator.go | 21 +++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/pkg/webhook/shoot/add.go b/pkg/webhook/shoot/add.go index 0ae946e0b..dce6eeda1 100644 --- a/pkg/webhook/shoot/add.go +++ b/pkg/webhook/shoot/add.go @@ -8,6 +8,7 @@ import ( extensionswebhook "github.com/gardener/gardener/extensions/pkg/webhook" "github.com/gardener/gardener/extensions/pkg/webhook/shoot" corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/manager" ) @@ -30,6 +31,13 @@ func AddToManagerWithOptions(mgr manager.Manager, _ AddOptions) (*extensionswebh {Obj: &corev1.ConfigMap{}}, }, Mutator: NewMutator(), + ObjectSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "app": "nginx-ingress", + "component": "controller", + "release": "addons", + }, + }, }) } diff --git a/pkg/webhook/shoot/mutator.go b/pkg/webhook/shoot/mutator.go index 3c243ff69..8ca289128 100644 --- a/pkg/webhook/shoot/mutator.go +++ b/pkg/webhook/shoot/mutator.go @@ -21,7 +21,6 @@ import ( extensionswebhook "github.com/gardener/gardener/extensions/pkg/webhook" "github.com/go-logr/logr" corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/meta" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/log" ) @@ -39,22 +38,16 @@ func NewMutator() extensionswebhook.Mutator { // Mutate mutates resources. func (m *mutator) Mutate(ctx context.Context, new, _ client.Object) error { - acc, err := meta.Accessor(new) - if err != nil { - return fmt.Errorf("could not create accessor during webhook: %w", err) + configMap, ok := new.(*corev1.ConfigMap) + if !ok { + return fmt.Errorf("wrong object type %T", new) } + // If the object does have a deletion timestamp then we don't want to mutate anything. - if acc.GetDeletionTimestamp() != nil { + if configMap.GetDeletionTimestamp() != nil { return nil } - switch x := new.(type) { - case *corev1.ConfigMap: - switch x.Name { - case "addons-nginx-ingress-controller": - extensionswebhook.LogMutation(logger, x.Kind, x.Namespace, x.Name) - return m.mutateNginxIngressControllerConfigMap(ctx, x) - } - } - return nil + extensionswebhook.LogMutation(logger, configMap.Kind, configMap.Namespace, configMap.Name) + return m.mutateNginxIngressControllerConfigMap(ctx, configMap) }