From c638edd346ba4cf8790ee41a355be99a396d1aea Mon Sep 17 00:00:00 2001 From: baldey-nz Date: Wed, 27 Oct 2021 10:01:39 +1300 Subject: [PATCH 1/2] If applied, this commit will add an optional canary spec field named summary for notification purposes Signed-off-by: baldey-nz --- artifacts/flagger/crd.yaml | 3 +++ pkg/apis/flagger/v1beta1/canary.go | 4 ++++ pkg/controller/events.go | 10 ++++++++++ 3 files changed, 17 insertions(+) diff --git a/artifacts/flagger/crd.yaml b/artifacts/flagger/crd.yaml index b0e148ad..404c2578 100644 --- a/artifacts/flagger/crd.yaml +++ b/artifacts/flagger/crd.yaml @@ -79,6 +79,9 @@ spec: - service - analysis properties: + summary: + description: Optional msg to add to each notification + type: string provider: description: Traffic managent provider type: string diff --git a/pkg/apis/flagger/v1beta1/canary.go b/pkg/apis/flagger/v1beta1/canary.go index 0e6c533c..ab268b67 100644 --- a/pkg/apis/flagger/v1beta1/canary.go +++ b/pkg/apis/flagger/v1beta1/canary.go @@ -103,6 +103,10 @@ type CanarySpec struct { // revert canary mutation on deletion of canary resource // +optional RevertOnDeletion bool `json:"revertOnDeletion,omitempty"` + + // Summary creates new notification message + // +optional + Summary string `json:"summary,omitempty"` } // CanaryService defines how ClusterIP services, service mesh or ingress routing objects are generated diff --git a/pkg/controller/events.go b/pkg/controller/events.go index c70123e6..8b49f3f7 100644 --- a/pkg/controller/events.go +++ b/pkg/controller/events.go @@ -175,6 +175,16 @@ func (c *Controller) alert(canary *flaggerv1.Canary, message string, metadata bo func alertMetadata(canary *flaggerv1.Canary) []notifier.Field { var fields []notifier.Field + + if canary.Spec.Summary != "" { + fields = append(fields, + notifier.Field{ + Name: "Summary", + Value: canary.Spec.Summary, + }, + ) + } + fields = append(fields, notifier.Field{ Name: "Target", From 8c881ab7582483fbed13d624657347ce817a6f5b Mon Sep 17 00:00:00 2001 From: baldey-nz Date: Sun, 19 Dec 2021 09:31:12 +1300 Subject: [PATCH 2/2] as suggested changing cluster-name to flag Signed-off-by: baldey-nz --- artifacts/flagger/crd.yaml | 3 --- cmd/flagger/main.go | 3 +++ pkg/apis/flagger/v1beta1/canary.go | 4 ---- pkg/controller/controller.go | 3 +++ pkg/controller/events.go | 10 +++++----- 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/artifacts/flagger/crd.yaml b/artifacts/flagger/crd.yaml index 404c2578..b0e148ad 100644 --- a/artifacts/flagger/crd.yaml +++ b/artifacts/flagger/crd.yaml @@ -79,9 +79,6 @@ spec: - service - analysis properties: - summary: - description: Optional msg to add to each notification - type: string provider: description: Traffic managent provider type: string diff --git a/cmd/flagger/main.go b/cmd/flagger/main.go index e26121db..da5f5dd2 100644 --- a/cmd/flagger/main.go +++ b/cmd/flagger/main.go @@ -83,6 +83,7 @@ var ( enableConfigTracking bool ver bool kubeconfigServiceMesh string + clusterName string ) func init() { @@ -115,6 +116,7 @@ func init() { flag.BoolVar(&enableConfigTracking, "enable-config-tracking", true, "Enable secrets and configmaps tracking.") flag.BoolVar(&ver, "version", false, "Print version") flag.StringVar(&kubeconfigServiceMesh, "kubeconfig-service-mesh", "", "Path to a kubeconfig for the service mesh control plane cluster.") + flag.StringVar(&clusterName, "cluster-name", "", "Cluster name to be included in alert msgs.") } func main() { @@ -238,6 +240,7 @@ func main() { meshProvider, version.VERSION, fromEnv("EVENT_WEBHOOK_URL", eventWebhook), + clusterName, ) // leader election context diff --git a/pkg/apis/flagger/v1beta1/canary.go b/pkg/apis/flagger/v1beta1/canary.go index ab268b67..0e6c533c 100644 --- a/pkg/apis/flagger/v1beta1/canary.go +++ b/pkg/apis/flagger/v1beta1/canary.go @@ -103,10 +103,6 @@ type CanarySpec struct { // revert canary mutation on deletion of canary resource // +optional RevertOnDeletion bool `json:"revertOnDeletion,omitempty"` - - // Summary creates new notification message - // +optional - Summary string `json:"summary,omitempty"` } // CanaryService defines how ClusterIP services, service mesh or ingress routing objects are generated diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go index aad82e4c..87390ec5 100644 --- a/pkg/controller/controller.go +++ b/pkg/controller/controller.go @@ -66,6 +66,7 @@ type Controller struct { observerFactory *observers.Factory meshProvider string eventWebhook string + clusterName string } type Informers struct { @@ -87,6 +88,7 @@ func NewController( meshProvider string, version string, eventWebhook string, + clusterName string, ) *Controller { logger.Debug("Creating event broadcaster") flaggerscheme.AddToScheme(scheme.Scheme) @@ -118,6 +120,7 @@ func NewController( routerFactory: routerFactory, meshProvider: meshProvider, eventWebhook: eventWebhook, + clusterName: clusterName, } flaggerInformers.CanaryInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ diff --git a/pkg/controller/events.go b/pkg/controller/events.go index 8b49f3f7..283aa279 100644 --- a/pkg/controller/events.go +++ b/pkg/controller/events.go @@ -74,7 +74,7 @@ func (c *Controller) sendEventToWebhook(r *flaggerv1.Canary, eventType, template func (c *Controller) alert(canary *flaggerv1.Canary, message string, metadata bool, severity flaggerv1.AlertSeverity) { var fields []notifier.Field if metadata { - fields = alertMetadata(canary) + fields = alertMetadata(canary, c.clusterName) } // send alert with the global notifier @@ -173,14 +173,14 @@ func (c *Controller) alert(canary *flaggerv1.Canary, message string, metadata bo } } -func alertMetadata(canary *flaggerv1.Canary) []notifier.Field { +func alertMetadata(canary *flaggerv1.Canary, cluster string) []notifier.Field { var fields []notifier.Field - if canary.Spec.Summary != "" { + if cluster != "" { fields = append(fields, notifier.Field{ - Name: "Summary", - Value: canary.Spec.Summary, + Name: "Cluster", + Value: cluster, }, ) }