mirror of
https://github.com/open-cluster-management-io/ocm.git
synced 2026-05-22 09:03:35 +00:00
* 🌱 add a verify rule for golang files import order This PR uses the [gci tool](https://github.com/daixiang0/gci) to make all go files' import section with a specific order, it will organize import with group with order: 1. standard library modules 2. 3rd party modules 3. modules in OCM org, like the `open-cluster-management.io/api` 4. current project `open-cluster-management.io/ocm` modules developers can use the `make fmt-imports` to format the import automatically and the `make verify-fmt-imports` to check for any violation. Signed-off-by: zhujian <jiazhu@redhat.com> * 🌱 format the go files import Signed-off-by: zhujian <jiazhu@redhat.com> --------- Signed-off-by: zhujian <jiazhu@redhat.com>
62 lines
1.6 KiB
Go
62 lines
1.6 KiB
Go
package v1beta2
|
|
|
|
import (
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
"k8s.io/apimachinery/pkg/runtime"
|
|
"k8s.io/client-go/kubernetes"
|
|
ctrl "sigs.k8s.io/controller-runtime"
|
|
|
|
"open-cluster-management.io/api/cluster/v1beta2"
|
|
)
|
|
|
|
var (
|
|
schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
|
|
// Install is a function which adds this version to a scheme
|
|
Install = schemeBuilder.AddToScheme
|
|
)
|
|
|
|
// Adds the list of known types to api.Scheme.
|
|
func addKnownTypes(scheme *runtime.Scheme) error {
|
|
scheme.AddKnownTypes(v1beta2.GroupVersion,
|
|
&ManagedClusterSet{},
|
|
&v1beta2.ManagedClusterSetBinding{},
|
|
)
|
|
metav1.AddToGroupVersion(scheme, v1beta2.GroupVersion)
|
|
return nil
|
|
}
|
|
|
|
type ManagedClusterSet struct {
|
|
v1beta2.ManagedClusterSet
|
|
}
|
|
|
|
type ManagedClusterSetBindingWebhook struct {
|
|
kubeClient kubernetes.Interface
|
|
}
|
|
|
|
func (src *ManagedClusterSet) SetupWebhookWithManager(mgr ctrl.Manager) error {
|
|
return ctrl.NewWebhookManagedBy(mgr).
|
|
For(src).
|
|
Complete()
|
|
}
|
|
|
|
func (b *ManagedClusterSetBindingWebhook) Init(mgr ctrl.Manager) error {
|
|
err := b.SetupWebhookWithManager(mgr)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
b.kubeClient, err = kubernetes.NewForConfig(mgr.GetConfig())
|
|
return err
|
|
}
|
|
|
|
// SetExternalKubeClientSet is function to enable the webhook injecting to kube admssion
|
|
func (b *ManagedClusterSetBindingWebhook) SetExternalKubeClientSet(client kubernetes.Interface) {
|
|
b.kubeClient = client
|
|
}
|
|
|
|
func (b *ManagedClusterSetBindingWebhook) SetupWebhookWithManager(mgr ctrl.Manager) error {
|
|
return ctrl.NewWebhookManagedBy(mgr).
|
|
WithValidator(b).
|
|
For(&v1beta2.ManagedClusterSetBinding{}).
|
|
Complete()
|
|
}
|