package webhookconfig import ( "fmt" "sync" "github.com/nirmata/kyverno/pkg/config" admregapi "k8s.io/api/admissionregistration/v1beta1" errorsapi "k8s.io/apimachinery/pkg/api/errors" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func (wrc *WebhookRegistrationClient) constructVerifyMutatingWebhookConfig(caData []byte) *admregapi.MutatingWebhookConfiguration { return &admregapi.MutatingWebhookConfiguration{ ObjectMeta: v1.ObjectMeta{ Name: config.VerifyMutatingWebhookConfigurationName, OwnerReferences: []v1.OwnerReference{ wrc.constructOwner(), }, }, Webhooks: []admregapi.MutatingWebhook{ generateMutatingWebhook( config.VerifyMutatingWebhookName, config.VerifyMutatingWebhookServicePath, caData, true, wrc.timeoutSeconds, []string{"deployments/*"}, "apps", "v1", []admregapi.OperationType{admregapi.Update}, ), }, } } func (wrc *WebhookRegistrationClient) constructDebugVerifyMutatingWebhookConfig(caData []byte) *admregapi.MutatingWebhookConfiguration { logger := wrc.log url := fmt.Sprintf("https://%s%s", wrc.serverIP, config.VerifyMutatingWebhookServicePath) logger.V(4).Info("Debug VerifyMutatingWebhookConfig is registered with url", "url", url) return &admregapi.MutatingWebhookConfiguration{ ObjectMeta: v1.ObjectMeta{ Name: config.VerifyMutatingWebhookConfigurationDebugName, }, Webhooks: []admregapi.MutatingWebhook{ generateDebugMutatingWebhook( config.VerifyMutatingWebhookName, url, caData, true, wrc.timeoutSeconds, []string{"deployments/*"}, "apps", "v1", []admregapi.OperationType{admregapi.Update}, ), }, } } func (wrc *WebhookRegistrationClient) removeVerifyWebhookMutatingWebhookConfig(wg *sync.WaitGroup) { defer wg.Done() var err error var mutatingConfig string if wrc.serverIP != "" { mutatingConfig = config.VerifyMutatingWebhookConfigurationDebugName } else { mutatingConfig = config.VerifyMutatingWebhookConfigurationName } logger := wrc.log.WithValues("name", mutatingConfig) err = wrc.client.DeleteResource("", MutatingWebhookConfigurationKind, "", mutatingConfig, false) if errorsapi.IsNotFound(err) { logger.V(5).Info("verify webhook configuration not found") return } if err != nil { logger.Error(err, "failed to delete verify wwebhook configuration") return } logger.V(4).Info("successfully deleted verify webhook configuration") }