diff --git a/pkg/apis/work/v1alpha1/events.go b/pkg/apis/work/v1alpha1/events.go new file mode 100644 index 000000000..e7c987829 --- /dev/null +++ b/pkg/apis/work/v1alpha1/events.go @@ -0,0 +1,10 @@ +package v1alpha1 + +// Define events for work objects. +const ( + // EventReasonSyncWorkFailed indicates that Sync work failed. + EventReasonSyncWorkFailed = "SyncFailed" + + // EventReasonSyncWorkSucceed indicates that Sync work succeed. + EventReasonSyncWorkSucceed = "SyncSucceed" +) diff --git a/pkg/apis/work/v1alpha2/events.go b/pkg/apis/work/v1alpha2/events.go new file mode 100644 index 000000000..0f8c5b439 --- /dev/null +++ b/pkg/apis/work/v1alpha2/events.go @@ -0,0 +1,15 @@ +package v1alpha2 + +// Define events for ResourceBinding and ClusterResourceBinding objects. +const ( + // EventReasonCleanupWorkFailed indicates that Cleanup work failed. + EventReasonCleanupWorkFailed = "CleanupWorkFailed" + // EventReasonSyncWorkFailed indicates that Sync work failed. + EventReasonSyncWorkFailed = "SyncWorkFailed" + // EventReasonSyncWorkSucceed indicates that Sync work succeed. + EventReasonSyncWorkSucceed = "SyncWorkSucceed" + // EventReasonAggregateStatusFailed indicates that aggregate status failed. + EventReasonAggregateStatusFailed = "AggregateStatusFailed" + // EventReasonAggregateStatusSucceed indicates that aggregate status succeed. + EventReasonAggregateStatusSucceed = "AggregateStatusSucceed" +) diff --git a/pkg/controllers/binding/binding_controller.go b/pkg/controllers/binding/binding_controller.go index 0c10d9f4e..cdd292145 100644 --- a/pkg/controllers/binding/binding_controller.go +++ b/pkg/controllers/binding/binding_controller.go @@ -97,7 +97,7 @@ func (c *ResourceBindingController) syncBinding(binding *workv1alpha2.ResourceBi if err != nil { klog.Errorf("Failed to find orphan works by resourceBinding(%s/%s). Error: %v.", binding.GetNamespace(), binding.GetName(), err) - c.EventRecorder.Event(binding, corev1.EventTypeWarning, eventReasonCleanupWorkFailed, err.Error()) + c.EventRecorder.Event(binding, corev1.EventTypeWarning, workv1alpha2.EventReasonCleanupWorkFailed, err.Error()) return controllerruntime.Result{Requeue: true}, err } @@ -105,7 +105,7 @@ func (c *ResourceBindingController) syncBinding(binding *workv1alpha2.ResourceBi if err != nil { klog.Errorf("Failed to remove orphan works by resourceBinding(%s/%s). Error: %v.", binding.GetNamespace(), binding.GetName(), err) - c.EventRecorder.Event(binding, corev1.EventTypeWarning, eventReasonCleanupWorkFailed, err.Error()) + c.EventRecorder.Event(binding, corev1.EventTypeWarning, workv1alpha2.EventReasonCleanupWorkFailed, err.Error()) return controllerruntime.Result{Requeue: true}, err } @@ -120,24 +120,23 @@ func (c *ResourceBindingController) syncBinding(binding *workv1alpha2.ResourceBi if err != nil { klog.Errorf("Failed to transform resourceBinding(%s/%s) to works. Error: %v.", binding.GetNamespace(), binding.GetName(), err) - c.EventRecorder.Event(binding, corev1.EventTypeWarning, eventReasonSyncWorkFailed, err.Error()) + c.EventRecorder.Event(binding, corev1.EventTypeWarning, workv1alpha2.EventReasonSyncWorkFailed, err.Error()) errs = append(errs, err) } else { msg := fmt.Sprintf("Sync work of resourceBinding(%s/%s) successful.", binding.Namespace, binding.Name) klog.V(4).Infof(msg) - c.EventRecorder.Event(binding, corev1.EventTypeNormal, eventReasonSyncWorkSucceed, msg) + c.EventRecorder.Event(binding, corev1.EventTypeNormal, workv1alpha2.EventReasonSyncWorkSucceed, msg) } - err = helper.AggregateResourceBindingWorkStatus(c.Client, binding, workload) if err != nil { klog.Errorf("Failed to aggregate workStatuses to resourceBinding(%s/%s). Error: %v.", binding.GetNamespace(), binding.GetName(), err) - c.EventRecorder.Event(binding, corev1.EventTypeWarning, eventReasonAggregateStatusFailed, err.Error()) + c.EventRecorder.Event(binding, corev1.EventTypeWarning, workv1alpha2.EventReasonAggregateStatusFailed, err.Error()) errs = append(errs, err) } else { msg := fmt.Sprintf("Update resourceBinding(%s/%s) with AggregatedStatus successfully.", binding.Namespace, binding.Name) klog.V(4).Infof(msg) - c.EventRecorder.Event(binding, corev1.EventTypeNormal, eventReasonAggregateStatusSucceed, msg) + c.EventRecorder.Event(binding, corev1.EventTypeNormal, workv1alpha2.EventReasonAggregateStatusSucceed, msg) } if len(errs) > 0 { return controllerruntime.Result{Requeue: true}, errors.NewAggregate(errs) diff --git a/pkg/controllers/binding/cluster_resource_binding_controller.go b/pkg/controllers/binding/cluster_resource_binding_controller.go index e395cad09..a8c31c5b6 100644 --- a/pkg/controllers/binding/cluster_resource_binding_controller.go +++ b/pkg/controllers/binding/cluster_resource_binding_controller.go @@ -96,14 +96,14 @@ func (c *ClusterResourceBindingController) syncBinding(binding *workv1alpha2.Clu works, err := helper.FindOrphanWorks(c.Client, "", binding.Name, clusterNames, apiextensionsv1.ClusterScoped) if err != nil { klog.Errorf("Failed to find orphan works by ClusterResourceBinding(%s). Error: %v.", binding.GetName(), err) - c.EventRecorder.Event(binding, corev1.EventTypeWarning, eventReasonCleanupWorkFailed, err.Error()) + c.EventRecorder.Event(binding, corev1.EventTypeWarning, workv1alpha2.EventReasonCleanupWorkFailed, err.Error()) return controllerruntime.Result{Requeue: true}, err } err = helper.RemoveOrphanWorks(c.Client, works) if err != nil { klog.Errorf("Failed to remove orphan works by clusterResourceBinding(%s). Error: %v.", binding.GetName(), err) - c.EventRecorder.Event(binding, corev1.EventTypeWarning, eventReasonCleanupWorkFailed, err.Error()) + c.EventRecorder.Event(binding, corev1.EventTypeWarning, workv1alpha2.EventReasonCleanupWorkFailed, err.Error()) return controllerruntime.Result{Requeue: true}, err } @@ -116,23 +116,22 @@ func (c *ClusterResourceBindingController) syncBinding(binding *workv1alpha2.Clu err = ensureWork(c.Client, workload, c.OverrideManager, binding, apiextensionsv1.ClusterScoped) if err != nil { klog.Errorf("Failed to transform clusterResourceBinding(%s) to works. Error: %v.", binding.GetName(), err) - c.EventRecorder.Event(binding, corev1.EventTypeWarning, eventReasonSyncWorkFailed, err.Error()) + c.EventRecorder.Event(binding, corev1.EventTypeWarning, workv1alpha2.EventReasonSyncWorkFailed, err.Error()) errs = append(errs, err) } else { msg := fmt.Sprintf("Sync work of clusterResourceBinding(%s) successful.", binding.GetName()) klog.V(4).Infof(msg) - c.EventRecorder.Event(binding, corev1.EventTypeNormal, eventReasonSyncWorkSucceed, msg) + c.EventRecorder.Event(binding, corev1.EventTypeNormal, workv1alpha2.EventReasonSyncWorkSucceed, msg) } err = helper.AggregateClusterResourceBindingWorkStatus(c.Client, binding, workload) if err != nil { - klog.Errorf("Failed to aggregate workStatuses to clusterResourceBinding(%s). Error: %v.", binding.GetName(), err) - c.EventRecorder.Event(binding, corev1.EventTypeWarning, eventReasonAggregateStatusFailed, err.Error()) + c.EventRecorder.Event(binding, corev1.EventTypeWarning, workv1alpha2.EventReasonAggregateStatusFailed, err.Error()) errs = append(errs, err) } else { msg := fmt.Sprintf("Update clusterResourceBinding(%s) with AggregatedStatus successfully.", binding.Name) klog.V(4).Infof(msg) - c.EventRecorder.Event(binding, corev1.EventTypeNormal, eventReasonAggregateStatusSucceed, msg) + c.EventRecorder.Event(binding, corev1.EventTypeNormal, workv1alpha2.EventReasonAggregateStatusSucceed, msg) } if len(errs) > 0 { return controllerruntime.Result{Requeue: true}, errors.NewAggregate(errs) diff --git a/pkg/controllers/binding/common.go b/pkg/controllers/binding/common.go index a938585fa..6af7cae14 100644 --- a/pkg/controllers/binding/common.go +++ b/pkg/controllers/binding/common.go @@ -24,14 +24,6 @@ import ( "github.com/karmada-io/karmada/pkg/util/overridemanager" ) -const ( - eventReasonCleanupWorkFailed = "CleanupWorkFailed" - eventReasonSyncWorkFailed = "SyncWorkFailed" - eventReasonSyncWorkSucceed = "SyncWorkSucceed" - eventReasonAggregateStatusFailed = "AggregateStatusFailed" - eventReasonAggregateStatusSucceed = "AggregateStatusSucceed" -) - var workPredicateFn = builder.WithPredicates(predicate.Funcs{ CreateFunc: func(e event.CreateEvent) bool { return false diff --git a/pkg/controllers/execution/execution_controller.go b/pkg/controllers/execution/execution_controller.go index d2a55e355..c8e8aa6a6 100644 --- a/pkg/controllers/execution/execution_controller.go +++ b/pkg/controllers/execution/execution_controller.go @@ -4,6 +4,7 @@ import ( "context" "fmt" + corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -101,10 +102,14 @@ func (c *Controller) syncWork(cluster *clusterv1alpha1.Cluster, work *workv1alph err := c.syncToClusters(cluster, work) if err != nil { - klog.Errorf("Failed to sync work(%s) to cluster(%s): %v", work.Name, cluster.Name, err) + msg := fmt.Sprintf("Failed to sync work(%s) to cluster(%s): %v", work.Name, cluster.Name, err) + klog.Errorf(msg) + c.EventRecorder.Event(work, corev1.EventTypeWarning, workv1alpha1.EventReasonSyncWorkFailed, msg) return controllerruntime.Result{Requeue: true}, err } - + msg := fmt.Sprintf("Sync work (%s) to cluster(%s) successful.", work.Name, cluster.Name) + klog.V(4).Infof(msg) + c.EventRecorder.Event(work, corev1.EventTypeNormal, workv1alpha1.EventReasonSyncWorkSucceed, msg) return controllerruntime.Result{}, nil }