mirror of
https://github.com/open-cluster-management-io/ocm.git
synced 2026-05-20 16:14:23 +00:00
33 lines
801 B
Go
33 lines
801 B
Go
package v1
|
|
|
|
import (
|
|
"k8s.io/client-go/kubernetes"
|
|
v1 "open-cluster-management.io/api/work/v1"
|
|
ctrl "sigs.k8s.io/controller-runtime"
|
|
)
|
|
|
|
type ManifestWorkWebhook struct {
|
|
kubeClient kubernetes.Interface
|
|
}
|
|
|
|
func (r *ManifestWorkWebhook) Init(mgr ctrl.Manager) error {
|
|
err := r.SetupWebhookWithManager(mgr)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
r.kubeClient, err = kubernetes.NewForConfig(mgr.GetConfig())
|
|
return err
|
|
}
|
|
|
|
// SetExternalKubeClientSet is function to enable the webhook injecting to kube admssion
|
|
func (r *ManifestWorkWebhook) SetExternalKubeClientSet(client kubernetes.Interface) {
|
|
r.kubeClient = client
|
|
}
|
|
|
|
func (r *ManifestWorkWebhook) SetupWebhookWithManager(mgr ctrl.Manager) error {
|
|
return ctrl.NewWebhookManagedBy(mgr).
|
|
WithValidator(r).
|
|
For(&v1.ManifestWork{}).
|
|
Complete()
|
|
}
|