polardbxoperator/pkg/webhook/polardbxbackup/binlog/webhook.go

27 lines
962 B
Go

package binlog
import (
"context"
polardbxv1 "github.com/alibaba/polardbx-operator/api/v1"
"github.com/alibaba/polardbx-operator/pkg/operator/v1/config"
"github.com/alibaba/polardbx-operator/pkg/webhook/extension"
"github.com/alibaba/polardbx-operator/pkg/webhook/polardbxbackup"
"k8s.io/apimachinery/pkg/runtime/schema"
ctrl "sigs.k8s.io/controller-runtime"
)
func SetupWebhooks(ctx context.Context, mgr ctrl.Manager, apiPath string, configLoader func() config.Config) error {
gvk := schema.GroupVersionKind{
Group: polardbxv1.GroupVersion.Group,
Version: polardbxv1.GroupVersion.Version,
Kind: "PolarDBXBackupBinlog",
}
mgr.GetWebhookServer().Register(extension.GenerateValidatePath(apiPath, gvk),
extension.WithCustomValidator(&polardbxv1.PolarDBXBackupBinlog{},
polardbxbackup.NewPolarDBXBackupValidator(mgr.GetAPIReader(),
mgr.GetLogger().WithName("webhook.validate.polardbxbackupbinlog"),
configLoader)))
return nil
}