add override policy event
Signed-off-by: Poor12 <shentiecheng@huawei.com>
This commit is contained in:
parent
d7bd490f94
commit
ac6aaa31f1
|
@ -499,7 +499,7 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop
|
|||
dynamicClientSet := dynamic.NewForConfigOrDie(restConfig)
|
||||
discoverClientSet := discovery.NewDiscoveryClientForConfigOrDie(restConfig)
|
||||
|
||||
overrideManager := overridemanager.New(mgr.GetClient())
|
||||
overrideManager := overridemanager.New(mgr.GetClient(), mgr.GetEventRecorderFor(overridemanager.OverrideManagerName))
|
||||
skippedResourceConfig := util.NewSkippedResourceConfig()
|
||||
if err := skippedResourceConfig.Parse(opts.SkippedPropagatingAPIs); err != nil {
|
||||
// The program will never go here because the parameters have been checked
|
||||
|
|
|
@ -16,6 +16,10 @@ const (
|
|||
EventReasonApplyPolicyFailed = "ApplyPolicyFailed"
|
||||
// EventReasonApplyPolicySucceed indicates that apply policy for resource succeed.
|
||||
EventReasonApplyPolicySucceed = "ApplyPolicySucceed"
|
||||
// EventReasonApplyOverridePolicyFailed indicates that apply override policy failed.
|
||||
EventReasonApplyOverridePolicyFailed = "ApplyOverridePolicyFailed"
|
||||
// EventReasonApplyOverridePolicySucceed indicates that apply override policy succeed.
|
||||
EventReasonApplyOverridePolicySucceed = "ApplyOverridePolicySucceed"
|
||||
// EventReasonScheduleBindingFailed indicates that schedule binding failed.
|
||||
EventReasonScheduleBindingFailed = "ScheduleBindingFailed"
|
||||
// EventReasonScheduleBindingSucceed indicates that schedule binding succeed.
|
||||
|
|
|
@ -435,7 +435,7 @@ func (d *ResourceDetector) ApplyClusterPolicy(object *unstructured.Unstructured,
|
|||
if err != nil {
|
||||
d.EventRecorder.Eventf(object, corev1.EventTypeWarning, workv1alpha2.EventReasonApplyPolicyFailed, "Apply cluster policy(%s) failed: %v", policy.Name, err)
|
||||
} else if operationResult != controllerutil.OperationResultNone {
|
||||
d.EventRecorder.Eventf(object, corev1.EventTypeNormal, workv1alpha2.EventReasonApplyPolicySucceed, "Apply policy(%s/%s) succeed", policy.Name)
|
||||
d.EventRecorder.Eventf(object, corev1.EventTypeNormal, workv1alpha2.EventReasonApplyPolicySucceed, "Apply cluster policy(%s/%s) succeed", policy.Name)
|
||||
}
|
||||
}()
|
||||
|
||||
|
|
|
@ -6,15 +6,23 @@ import (
|
|||
"sort"
|
||||
|
||||
jsonpatch "github.com/evanphx/json-patch/v5"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/client-go/tools/record"
|
||||
"k8s.io/klog/v2"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
|
||||
policyv1alpha1 "github.com/karmada-io/karmada/pkg/apis/policy/v1alpha1"
|
||||
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
|
||||
"github.com/karmada-io/karmada/pkg/util"
|
||||
)
|
||||
|
||||
const (
|
||||
// OverrideManagerName is the manager name that will be used when reporting events.
|
||||
OverrideManagerName = "override-manager"
|
||||
)
|
||||
|
||||
// OverrideManager managers override policies operation
|
||||
type OverrideManager interface {
|
||||
// ApplyOverridePolicies overrides the object if one or more override policies exist and matches the target cluster.
|
||||
|
@ -51,12 +59,14 @@ type policyOverriders struct {
|
|||
|
||||
type overrideManagerImpl struct {
|
||||
client.Client
|
||||
record.EventRecorder
|
||||
}
|
||||
|
||||
// New builds an OverrideManager instance.
|
||||
func New(client client.Client) OverrideManager {
|
||||
func New(client client.Client, eventRecorder record.EventRecorder) OverrideManager {
|
||||
return &overrideManagerImpl{
|
||||
Client: client,
|
||||
Client: client,
|
||||
EventRecorder: eventRecorder,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -119,9 +129,11 @@ func (o *overrideManagerImpl) applyClusterOverrides(rawObj *unstructured.Unstruc
|
|||
for _, p := range matchingPolicyOverriders {
|
||||
if err := applyPolicyOverriders(rawObj, p.overriders); err != nil {
|
||||
klog.Errorf("Failed to apply cluster overrides(%s) for resource(%s/%s), error: %v", p.name, rawObj.GetNamespace(), rawObj.GetName(), err)
|
||||
o.EventRecorder.Eventf(rawObj, corev1.EventTypeWarning, workv1alpha2.EventReasonApplyOverridePolicyFailed, "Apply cluster override policy(%s) for cluster(%s) failed.", p.name, cluster.Name)
|
||||
return nil, err
|
||||
}
|
||||
klog.V(2).Infof("Applied cluster overrides(%s) for resource(%s/%s)", p.name, rawObj.GetNamespace(), rawObj.GetName())
|
||||
o.EventRecorder.Eventf(rawObj, corev1.EventTypeNormal, workv1alpha2.EventReasonApplyOverridePolicySucceed, "Apply cluster override policy(%s) for cluster(%s) succeed.", p.name, cluster.Name)
|
||||
appliedList.Add(p.name, p.overriders)
|
||||
}
|
||||
|
||||
|
@ -155,9 +167,11 @@ func (o *overrideManagerImpl) applyNamespacedOverrides(rawObj *unstructured.Unst
|
|||
for _, p := range matchingPolicyOverriders {
|
||||
if err := applyPolicyOverriders(rawObj, p.overriders); err != nil {
|
||||
klog.Errorf("Failed to apply overrides(%s/%s) for resource(%s/%s), error: %v", p.namespace, p.name, rawObj.GetNamespace(), rawObj.GetName(), err)
|
||||
o.EventRecorder.Eventf(rawObj, corev1.EventTypeWarning, workv1alpha2.EventReasonApplyOverridePolicyFailed, "Apply override policy(%s/%s) for cluster(%s) failed.", p.namespace, p.name, cluster.Name)
|
||||
return nil, err
|
||||
}
|
||||
klog.V(2).Infof("Applied overrides(%s/%s) for resource(%s/%s)", p.namespace, p.name, rawObj.GetNamespace(), rawObj.GetName())
|
||||
o.EventRecorder.Eventf(rawObj, corev1.EventTypeNormal, workv1alpha2.EventReasonApplyOverridePolicySucceed, "Apply override policy(%s/%s) for cluster(%s) succeed.", p.namespace, p.name, cluster.Name)
|
||||
appliedList.Add(p.name, p.overriders)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue