supabase-operator/internal/webhook/v1alpha1/setup.go

40 lines
1.4 KiB
Go
Raw Permalink Normal View History

package v1alpha1
import (
ctrl "sigs.k8s.io/controller-runtime"
supabasev1alpha1 "code.icb4dc0.de/prskr/supabase-operator/api/v1alpha1"
)
type WebhookConfig struct {
CurrentNamespace string
}
// SetupAPIGatewayWebhookWithManager registers the webhook for APIGateway in the manager.
func SetupAPIGatewayWebhookWithManager(mgr ctrl.Manager, cfg WebhookConfig) error {
mgr.GetEventRecorderFor("apigateway-defaulter")
return ctrl.NewWebhookManagedBy(mgr).For(&supabasev1alpha1.APIGateway{}).
WithValidator(&APIGatewayCustomValidator{}).
WithDefaulter(&APIGatewayCustomDefaulter{
CurrentNamespace: cfg.CurrentNamespace,
Recorder: mgr.GetEventRecorderFor("apigateway-defaulter"),
}).
Complete()
}
// SetupCoreWebhookWithManager registers the webhook for Core in the manager.
func SetupCoreWebhookWithManager(mgr ctrl.Manager) error {
return ctrl.NewWebhookManagedBy(mgr).For(&supabasev1alpha1.Core{}).
WithValidator(&CoreCustomValidator{Client: mgr.GetClient()}).
WithDefaulter(&CoreCustomDefaulter{Client: mgr.GetClient()}).
Complete()
}
// SetupDashboardWebhookWithManager registers the webhook for Dashboard in the manager.
func SetupDashboardWebhookWithManager(mgr ctrl.Manager) error {
return ctrl.NewWebhookManagedBy(mgr).For(&supabasev1alpha1.Dashboard{}).
WithValidator(&DashboardCustomValidator{}).
WithDefaulter(&DashboardCustomDefaulter{}).
Complete()
}