add admission webhook for rulegroups (#5071)

Signed-off-by: junot <junotxiang@kubesphere.io>
This commit is contained in:
junot
2022-07-18 18:51:49 +08:00
committed by GitHub
parent 521cb40c21
commit 23cec5886c
5 changed files with 719 additions and 6 deletions

View File

@@ -34,6 +34,8 @@ import (
"sigs.k8s.io/controller-runtime/pkg/webhook"
"sigs.k8s.io/controller-runtime/pkg/webhook/conversion"
alertingv2beta1 "kubesphere.io/api/alerting/v2beta1"
"kubesphere.io/kubesphere/cmd/controller-manager/app/options"
"kubesphere.io/kubesphere/pkg/apis"
controllerconfig "kubesphere.io/kubesphere/pkg/apiserver/config"
@@ -247,6 +249,19 @@ func run(s *options.KubeSphereControllerManagerOptions, ctx context.Context) err
hookServer.Register("/convert", &conversion.Webhook{})
rulegroup := alertingv2beta1.RuleGroup{}
if err := rulegroup.SetupWebhookWithManager(mgr); err != nil {
klog.Fatalf("Unable to setup RuleGroup webhook: %v", err)
}
clusterrulegroup := alertingv2beta1.ClusterRuleGroup{}
if err := clusterrulegroup.SetupWebhookWithManager(mgr); err != nil {
klog.Fatalf("Unable to setup ClusterRuleGroup webhook: %v", err)
}
globalrulegroup := alertingv2beta1.GlobalRuleGroup{}
if err := globalrulegroup.SetupWebhookWithManager(mgr); err != nil {
klog.Fatalf("Unable to setup GlobalRuleGroup webhook: %v", err)
}
klog.V(2).Info("registering metrics to the webhook server")
// Add an extra metric endpoint, so we can use the the same metric definition with ks-apiserver
// /kapis/metrics is independent of controller-manager's built-in /metrics