github.com/ironcore-dev/gardener-extension-provider-ironcore@v0.3.2-0.20240314231816-8336447fb9a0/pkg/webhook/controlplane/add.go (about) 1 // SPDX-FileCopyrightText: 2023 SAP SE or an SAP affiliate company and IronCore contributors 2 // SPDX-License-Identifier: Apache-2.0 3 4 package controlplane 5 6 import ( 7 extensionswebhook "github.com/gardener/gardener/extensions/pkg/webhook" 8 "github.com/gardener/gardener/extensions/pkg/webhook/controlplane" 9 "github.com/gardener/gardener/extensions/pkg/webhook/controlplane/genericmutator" 10 extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1" 11 "github.com/gardener/gardener/pkg/component/extensions/operatingsystemconfig/original/components/kubelet" 12 oscutils "github.com/gardener/gardener/pkg/component/extensions/operatingsystemconfig/utils" 13 appsv1 "k8s.io/api/apps/v1" 14 vpaautoscalingv1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1" 15 "sigs.k8s.io/controller-runtime/pkg/log" 16 "sigs.k8s.io/controller-runtime/pkg/manager" 17 18 "github.com/ironcore-dev/gardener-extension-provider-ironcore/pkg/ironcore" 19 ) 20 21 var ( 22 logger = log.Log.WithName("ironcore-controlplane-webhook") 23 // GardenletManagesMCM specifies whether the machine-controller-manager should be managed. 24 GardenletManagesMCM bool 25 ) 26 27 // AddToManager creates a webhook and adds it to the manager. 28 func AddToManager(mgr manager.Manager) (*extensionswebhook.Webhook, error) { 29 logger.Info("Adding webhook to manager") 30 fciCodec := oscutils.NewFileContentInlineCodec() 31 return controlplane.New(mgr, controlplane.Args{ 32 Kind: controlplane.KindShoot, 33 Provider: ironcore.Type, 34 Types: []extensionswebhook.Type{ 35 {Obj: &appsv1.Deployment{}}, 36 {Obj: &vpaautoscalingv1.VerticalPodAutoscaler{}}, 37 {Obj: &extensionsv1alpha1.OperatingSystemConfig{}}, 38 }, 39 Mutator: genericmutator.NewMutator(mgr, NewEnsurer(logger, GardenletManagesMCM), oscutils.NewUnitSerializer(), 40 kubelet.NewConfigCodec(fciCodec), fciCodec, logger), 41 }) 42 }