From 4a18648b24ac1727e0641d866c4b3644ce88b43a Mon Sep 17 00:00:00 2001 From: tamal Date: Wed, 13 Sep 2017 11:31:50 -0700 Subject: [PATCH] Use ObjectReference to write events --- apis/monitoring/v1alpha1/alert.go | 7 ++++++- apis/monitoring/v1alpha1/cluster_alert.go | 14 ++++++++++++++ apis/monitoring/v1alpha1/node_alert.go | 14 ++++++++++++++ apis/monitoring/v1alpha1/pod_alert.go | 14 ++++++++++++++ pkg/operator/cluster_alerts.go | 20 ++++++++++---------- pkg/operator/node_alerts.go | 12 ++++++------ pkg/operator/nodes.go | 8 ++++---- pkg/operator/pod_alerts.go | 12 ++++++------ pkg/operator/pods.go | 8 ++++---- 9 files changed, 78 insertions(+), 31 deletions(-) diff --git a/apis/monitoring/v1alpha1/alert.go b/apis/monitoring/v1alpha1/alert.go index 74f66cf19..aa1031c22 100644 --- a/apis/monitoring/v1alpha1/alert.go +++ b/apis/monitoring/v1alpha1/alert.go @@ -1,6 +1,10 @@ package v1alpha1 -import "time" +import ( + "time" + + "k8s.io/apimachinery/pkg/runtime" +) type Alert interface { GetName() string @@ -11,4 +15,5 @@ type Alert interface { IsValid() (bool, error) GetNotifierSecretName() string GetReceivers() []Receiver + ObjectReference() runtime.Object } diff --git a/apis/monitoring/v1alpha1/cluster_alert.go b/apis/monitoring/v1alpha1/cluster_alert.go index ee1e4a521..80c20336f 100644 --- a/apis/monitoring/v1alpha1/cluster_alert.go +++ b/apis/monitoring/v1alpha1/cluster_alert.go @@ -3,6 +3,9 @@ package v1alpha1 import ( "fmt" "time" + + "k8s.io/apimachinery/pkg/runtime" + apiv1 "k8s.io/client-go/pkg/api/v1" ) const ( @@ -65,3 +68,14 @@ func (a ClusterAlert) GetNotifierSecretName() string { func (a ClusterAlert) GetReceivers() []Receiver { return a.Spec.Receivers } + +func (a ClusterAlert) ObjectReference() runtime.Object { + return &apiv1.ObjectReference{ + APIVersion: SchemeGroupVersion.String(), + Kind: ResourceKindClusterAlert, + Namespace: a.Namespace, + Name: a.Name, + UID: a.UID, + ResourceVersion: a.ResourceVersion, + } +} diff --git a/apis/monitoring/v1alpha1/node_alert.go b/apis/monitoring/v1alpha1/node_alert.go index d66de9ec1..53aa7c915 100644 --- a/apis/monitoring/v1alpha1/node_alert.go +++ b/apis/monitoring/v1alpha1/node_alert.go @@ -3,6 +3,9 @@ package v1alpha1 import ( "fmt" "time" + + "k8s.io/apimachinery/pkg/runtime" + apiv1 "k8s.io/client-go/pkg/api/v1" ) const ( @@ -65,3 +68,14 @@ func (a NodeAlert) GetNotifierSecretName() string { func (a NodeAlert) GetReceivers() []Receiver { return a.Spec.Receivers } + +func (a NodeAlert) ObjectReference() runtime.Object { + return &apiv1.ObjectReference{ + APIVersion: SchemeGroupVersion.String(), + Kind: ResourceKindNodeAlert, + Namespace: a.Namespace, + Name: a.Name, + UID: a.UID, + ResourceVersion: a.ResourceVersion, + } +} diff --git a/apis/monitoring/v1alpha1/pod_alert.go b/apis/monitoring/v1alpha1/pod_alert.go index ea3a885d0..a2655a92c 100644 --- a/apis/monitoring/v1alpha1/pod_alert.go +++ b/apis/monitoring/v1alpha1/pod_alert.go @@ -3,6 +3,9 @@ package v1alpha1 import ( "fmt" "time" + + "k8s.io/apimachinery/pkg/runtime" + apiv1 "k8s.io/client-go/pkg/api/v1" ) const ( @@ -65,3 +68,14 @@ func (a PodAlert) GetNotifierSecretName() string { func (a PodAlert) GetReceivers() []Receiver { return a.Spec.Receivers } + +func (a PodAlert) ObjectReference() runtime.Object { + return &apiv1.ObjectReference{ + APIVersion: SchemeGroupVersion.String(), + Kind: ResourceKindPodAlert, + Namespace: a.Namespace, + Name: a.Name, + UID: a.UID, + ResourceVersion: a.ResourceVersion, + } +} diff --git a/pkg/operator/cluster_alerts.go b/pkg/operator/cluster_alerts.go index e0a2a5b74..6b7f2d7e2 100644 --- a/pkg/operator/cluster_alerts.go +++ b/pkg/operator/cluster_alerts.go @@ -37,7 +37,7 @@ func (op *Operator) WatchClusterAlerts() { if alert, ok := obj.(*tapi.ClusterAlert); ok { if ok, err := alert.IsValid(); !ok { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToCreate, `Fail to be create ClusterAlert: "%v". Reason: %v`, @@ -48,7 +48,7 @@ func (op *Operator) WatchClusterAlerts() { } if err := util.CheckNotifiers(op.KubeClient, alert); err != nil { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonBadNotifier, `Bad notifier config for ClusterAlert: "%v". Reason: %v`, @@ -73,7 +73,7 @@ func (op *Operator) WatchClusterAlerts() { if !reflect.DeepEqual(oldAlert.Spec, newAlert.Spec) { if ok, err := newAlert.IsValid(); !ok { op.recorder.Eventf( - newAlert, + newAlert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToDelete, `Fail to be update ClusterAlert: "%v". Reason: %v`, @@ -84,7 +84,7 @@ func (op *Operator) WatchClusterAlerts() { } if err := util.CheckNotifiers(op.KubeClient, newAlert); err != nil { op.recorder.Eventf( - newAlert, + newAlert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonBadNotifier, `Bad notifier config for ClusterAlert: "%v". Reason: %v`, @@ -99,7 +99,7 @@ func (op *Operator) WatchClusterAlerts() { if alert, ok := obj.(*tapi.ClusterAlert); ok { if ok, err := alert.IsValid(); !ok { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToDelete, `Fail to be delete ClusterAlert: "%v". Reason: %v`, @@ -110,7 +110,7 @@ func (op *Operator) WatchClusterAlerts() { } if err := util.CheckNotifiers(op.KubeClient, alert); err != nil { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonBadNotifier, `Bad notifier config for ClusterAlert: "%v". Reason: %v`, @@ -130,7 +130,7 @@ func (op *Operator) EnsureClusterAlert(old, new *tapi.ClusterAlert) (err error) defer func() { if err == nil { op.recorder.Eventf( - new, + new.ObjectReference(), apiv1.EventTypeNormal, eventer.EventReasonSuccessfulSync, `Applied ClusterAlert: "%v"`, @@ -139,7 +139,7 @@ func (op *Operator) EnsureClusterAlert(old, new *tapi.ClusterAlert) (err error) return } else { op.recorder.Eventf( - new, + new.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToSync, `Fail to be apply ClusterAlert: "%v". Reason: %v`, @@ -163,7 +163,7 @@ func (op *Operator) EnsureClusterAlertDeleted(alert *tapi.ClusterAlert) (err err defer func() { if err == nil { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeNormal, eventer.EventReasonSuccessfulDelete, `Deleted ClusterAlert: "%v"`, @@ -172,7 +172,7 @@ func (op *Operator) EnsureClusterAlertDeleted(alert *tapi.ClusterAlert) (err err return } else { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToDelete, `Fail to be delete ClusterAlert: "%v". Reason: %v`, diff --git a/pkg/operator/node_alerts.go b/pkg/operator/node_alerts.go index 68749c31f..cc31a916d 100644 --- a/pkg/operator/node_alerts.go +++ b/pkg/operator/node_alerts.go @@ -38,7 +38,7 @@ func (op *Operator) WatchNodeAlerts() { if alert, ok := obj.(*tapi.NodeAlert); ok { if ok, err := alert.IsValid(); !ok { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToCreate, `Fail to be create NodeAlert: "%v". Reason: %v`, @@ -49,7 +49,7 @@ func (op *Operator) WatchNodeAlerts() { } if err := util.CheckNotifiers(op.KubeClient, alert); err != nil { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonBadNotifier, `Bad notifier config for NodeAlert: "%v". Reason: %v`, @@ -74,7 +74,7 @@ func (op *Operator) WatchNodeAlerts() { if !reflect.DeepEqual(oldAlert.Spec, newAlert.Spec) { if ok, err := newAlert.IsValid(); !ok { op.recorder.Eventf( - newAlert, + newAlert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToDelete, `Fail to be update NodeAlert: "%v". Reason: %v`, @@ -85,7 +85,7 @@ func (op *Operator) WatchNodeAlerts() { } if err := util.CheckNotifiers(op.KubeClient, newAlert); err != nil { op.recorder.Eventf( - newAlert, + newAlert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonBadNotifier, `Bad notifier config for NodeAlert: "%v". Reason: %v`, @@ -100,7 +100,7 @@ func (op *Operator) WatchNodeAlerts() { if alert, ok := obj.(*tapi.NodeAlert); ok { if ok, err := alert.IsValid(); !ok { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToDelete, `Fail to be delete NodeAlert: "%v". Reason: %v`, @@ -111,7 +111,7 @@ func (op *Operator) WatchNodeAlerts() { } if err := util.CheckNotifiers(op.KubeClient, alert); err != nil { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonBadNotifier, `Bad notifier config for NodeAlert: "%v". Reason: %v`, diff --git a/pkg/operator/nodes.go b/pkg/operator/nodes.go index 6df3ccfdc..74e69f79c 100644 --- a/pkg/operator/nodes.go +++ b/pkg/operator/nodes.go @@ -136,7 +136,7 @@ func (op *Operator) EnsureNode(node *apiv1.Node, old, new *tapi.NodeAlert) (err defer func() { if err == nil { op.recorder.Eventf( - new, + new.ObjectReference(), apiv1.EventTypeNormal, eventer.EventReasonSuccessfulSync, `Applied NodeAlert: "%v"`, @@ -145,7 +145,7 @@ func (op *Operator) EnsureNode(node *apiv1.Node, old, new *tapi.NodeAlert) (err return } else { op.recorder.Eventf( - new, + new.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToSync, `Fail to be apply NodeAlert: "%v". Reason: %v`, @@ -169,7 +169,7 @@ func (op *Operator) EnsureNodeDeleted(node *apiv1.Node, alert *tapi.NodeAlert) ( defer func() { if err == nil { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeNormal, eventer.EventReasonSuccessfulDelete, `Deleted NodeAlert: "%v"`, @@ -178,7 +178,7 @@ func (op *Operator) EnsureNodeDeleted(node *apiv1.Node, alert *tapi.NodeAlert) ( return } else { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToDelete, `Fail to be delete NodeAlert: "%v". Reason: %v`, diff --git a/pkg/operator/pod_alerts.go b/pkg/operator/pod_alerts.go index 043791f32..61839579a 100644 --- a/pkg/operator/pod_alerts.go +++ b/pkg/operator/pod_alerts.go @@ -38,7 +38,7 @@ func (op *Operator) WatchPodAlerts() { if alert, ok := obj.(*tapi.PodAlert); ok { if ok, err := alert.IsValid(); !ok { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToCreate, `Fail to be create PodAlert: "%v". Reason: %v`, @@ -49,7 +49,7 @@ func (op *Operator) WatchPodAlerts() { } if err := util.CheckNotifiers(op.KubeClient, alert); err != nil { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonBadNotifier, `Bad notifier config for PodAlert: "%v". Reason: %v`, @@ -74,7 +74,7 @@ func (op *Operator) WatchPodAlerts() { if !reflect.DeepEqual(oldAlert.Spec, newAlert.Spec) { if ok, err := newAlert.IsValid(); !ok { op.recorder.Eventf( - newAlert, + newAlert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToDelete, `Fail to be update PodAlert: "%v". Reason: %v`, @@ -85,7 +85,7 @@ func (op *Operator) WatchPodAlerts() { } if err := util.CheckNotifiers(op.KubeClient, newAlert); err != nil { op.recorder.Eventf( - newAlert, + newAlert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonBadNotifier, `Bad notifier config for PodAlert: "%v". Reason: %v`, @@ -100,7 +100,7 @@ func (op *Operator) WatchPodAlerts() { if alert, ok := obj.(*tapi.PodAlert); ok { if ok, err := alert.IsValid(); !ok { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToDelete, `Fail to be delete PodAlert: "%v". Reason: %v`, @@ -111,7 +111,7 @@ func (op *Operator) WatchPodAlerts() { } if err := util.CheckNotifiers(op.KubeClient, alert); err != nil { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonBadNotifier, `Bad notifier config for PodAlert: "%v". Reason: %v`, diff --git a/pkg/operator/pods.go b/pkg/operator/pods.go index 938471171..a2a6fc214 100644 --- a/pkg/operator/pods.go +++ b/pkg/operator/pods.go @@ -146,7 +146,7 @@ func (op *Operator) EnsurePod(pod *apiv1.Pod, old, new *tapi.PodAlert) (err erro defer func() { if err == nil { op.recorder.Eventf( - new, + new.ObjectReference(), apiv1.EventTypeNormal, eventer.EventReasonSuccessfulSync, `Applied PodAlert: "%v"`, @@ -155,7 +155,7 @@ func (op *Operator) EnsurePod(pod *apiv1.Pod, old, new *tapi.PodAlert) (err erro return } else { op.recorder.Eventf( - new, + new.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToSync, `Fail to be apply PodAlert: "%v". Reason: %v`, @@ -179,7 +179,7 @@ func (op *Operator) EnsurePodDeleted(pod *apiv1.Pod, alert *tapi.PodAlert) (err defer func() { if err == nil { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeNormal, eventer.EventReasonSuccessfulDelete, `Deleted PodAlert: "%v"`, @@ -188,7 +188,7 @@ func (op *Operator) EnsurePodDeleted(pod *apiv1.Pod, alert *tapi.PodAlert) (err return } else { op.recorder.Eventf( - alert, + alert.ObjectReference(), apiv1.EventTypeWarning, eventer.EventReasonFailedToDelete, `Fail to be delete PodAlert: "%v". Reason: %v`,