From 4776b1d28510b512a5afece54b1e269c19436139 Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Wed, 15 Jan 2020 14:12:22 +0200 Subject: [PATCH] Implement events dispatching for the event webhook type --- pkg/controller/controller.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go index 9b724742..0b13b25e 100644 --- a/pkg/controller/controller.go +++ b/pkg/controller/controller.go @@ -248,7 +248,20 @@ func checkCustomResourceType(obj interface{}, logger *zap.SugaredLogger) (flagge } func (c *Controller) sendEventToWebhook(r *flaggerv1.Canary, eventtype, template string, args []interface{}) { - if c.eventWebhook != "" { + webhookOverride := false + if len(r.Spec.CanaryAnalysis.Webhooks) > 0 { + for _, canaryWebhook := range r.Spec.CanaryAnalysis.Webhooks { + if canaryWebhook.Type == flaggerv1.EventHook { + webhookOverride = true + err := CallEventWebhook(r, canaryWebhook.URL, fmt.Sprintf(template, args...), eventtype) + if err != nil { + c.logger.With("canary", fmt.Sprintf("%s.%s", r.Name, r.Namespace)).Errorf("error sending event to webhook: %s", err) + } + } + } + } + + if c.eventWebhook != "" && !webhookOverride { err := CallEventWebhook(r, c.eventWebhook, fmt.Sprintf(template, args...), eventtype) if err != nil { c.logger.With("canary", fmt.Sprintf("%s.%s", r.Name, r.Namespace)).Errorf("error sending event to webhook: %s", err)