fix rule status set (#5219)
Signed-off-by: junot <junotxiang@kubesphere.io> Signed-off-by: junot <junotxiang@kubesphere.io>
This commit is contained in:
@@ -25,6 +25,7 @@ import (
|
||||
yaml "gopkg.in/yaml.v3"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
"k8s.io/apimachinery/pkg/util/uuid"
|
||||
ctrl "sigs.k8s.io/controller-runtime"
|
||||
logf "sigs.k8s.io/controller-runtime/pkg/log"
|
||||
"sigs.k8s.io/controller-runtime/pkg/webhook"
|
||||
@@ -32,6 +33,8 @@ import (
|
||||
|
||||
var rulegrouplog = logf.Log.WithName("rulegroup")
|
||||
|
||||
const RuleLabelKeyRuleId = "rule_id"
|
||||
|
||||
func (r *RuleGroup) SetupWebhookWithManager(mgr ctrl.Manager) error {
|
||||
return ctrl.NewWebhookManagedBy(mgr).
|
||||
For(r).
|
||||
@@ -50,10 +53,26 @@ func (r *RuleGroup) Default() {
|
||||
rule.Expr = intstr.FromString(rule.ExprBuilder.Workload.Build())
|
||||
}
|
||||
}
|
||||
setRuleId(&rule.Rule)
|
||||
r.Spec.Rules[i] = rule
|
||||
}
|
||||
}
|
||||
|
||||
func setRuleId(rule *Rule) {
|
||||
var setRuleId = true
|
||||
if len(rule.Labels) > 0 {
|
||||
if _, ok := rule.Labels[RuleLabelKeyRuleId]; ok {
|
||||
setRuleId = false
|
||||
}
|
||||
}
|
||||
if setRuleId {
|
||||
if rule.Labels == nil {
|
||||
rule.Labels = make(map[string]string)
|
||||
}
|
||||
rule.Labels[RuleLabelKeyRuleId] = string(uuid.NewUUID())
|
||||
}
|
||||
}
|
||||
|
||||
var _ webhook.Validator = &RuleGroup{}
|
||||
|
||||
func (r *RuleGroup) ValidateCreate() error {
|
||||
@@ -171,6 +190,7 @@ func (r *ClusterRuleGroup) Default() {
|
||||
rule.Expr = intstr.FromString(rule.ExprBuilder.Node.Build())
|
||||
}
|
||||
}
|
||||
setRuleId(&rule.Rule)
|
||||
r.Spec.Rules[i] = rule
|
||||
}
|
||||
}
|
||||
@@ -224,6 +244,7 @@ func (r *GlobalRuleGroup) Default() {
|
||||
rule.Expr = intstr.FromString(rule.ExprBuilder.Workload.Build())
|
||||
}
|
||||
}
|
||||
setRuleId(&rule.Rule)
|
||||
r.Spec.Rules[i] = rule
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user