From 9ba52a45e5ed740f14bb600ba816a673206a58ae Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Mon, 9 Nov 2020 14:30:33 +0200 Subject: [PATCH] Skip alert if it's not ready Signed-off-by: Stefan Prodan --- controllers/alert_controller.go | 5 +++++ internal/server/event_handlers.go | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/controllers/alert_controller.go b/controllers/alert_controller.go index 4d411f7..737d1c8 100644 --- a/controllers/alert_controller.go +++ b/controllers/alert_controller.go @@ -127,6 +127,11 @@ func (r *AlertReconciler) validate(ctx context.Context, alert v1beta1.Alert) err if err := r.Get(ctx, providerName, &provider); err != nil { return fmt.Errorf("failed to get provider %s, error: %w", providerName.String(), err) } + + if !meta.HasReadyCondition(provider.Status.Conditions) { + return fmt.Errorf("provider %s is not ready", providerName.String()) + } + return nil } diff --git a/internal/server/event_handlers.go b/internal/server/event_handlers.go index 22c1cc9..5f73612 100644 --- a/internal/server/event_handlers.go +++ b/internal/server/event_handlers.go @@ -26,6 +26,7 @@ import ( corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" + "github.com/fluxcd/pkg/apis/meta" "github.com/fluxcd/pkg/recorder" "github.com/fluxcd/notification-controller/api/v1beta1" @@ -64,8 +65,8 @@ func (s *EventServer) handleEvent() func(w http.ResponseWriter, r *http.Request) // find matching alerts alerts := make([]v1beta1.Alert, 0) for _, alert := range allAlerts.Items { - // skip suspended alerts - if alert.Spec.Suspend { + // skip suspended and not ready alerts + if alert.Spec.Suspend || !meta.HasReadyCondition(alert.Status.Conditions) { continue }