From 31856a2f46cc7acef126618cb448c71e2783f3d9 Mon Sep 17 00:00:00 2001 From: Nick Freyaldenhoven Date: Tue, 21 Jun 2022 10:28:54 -0500 Subject: [PATCH 1/2] Reintroducing the old empty check for metric template references. Reverting removal in commit 7df1beef85e4de3f4761bd20e7665d87d840e734 to support the optianl namespace. Adding test for future valdiation. Signed-off-by: Nick Freyaldenhoven --- pkg/controller/events.go | 2 +- pkg/controller/scheduler_metrics.go | 4 ++-- pkg/controller/scheduler_metrics_test.go | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/pkg/controller/events.go b/pkg/controller/events.go index 0a83be563..59b992665 100644 --- a/pkg/controller/events.go +++ b/pkg/controller/events.go @@ -108,7 +108,7 @@ func (c *Controller) alert(canary *flaggerv1.Canary, message string, metadata bo // determine alert provider namespace providerNamespace := canary.GetNamespace() - if alert.ProviderRef.Namespace != canary.Namespace { + if alert.ProviderRef.Namespace != canary.Namespace && alert.ProviderRef.Namespace != "" { providerNamespace = alert.ProviderRef.Namespace } diff --git a/pkg/controller/scheduler_metrics.go b/pkg/controller/scheduler_metrics.go index f0a7f2d7f..245d52ef3 100644 --- a/pkg/controller/scheduler_metrics.go +++ b/pkg/controller/scheduler_metrics.go @@ -54,7 +54,7 @@ func (c *Controller) checkMetricProviderAvailability(canary *flaggerv1.Canary) e if metric.TemplateRef != nil { namespace := canary.Namespace - if metric.TemplateRef.Namespace != canary.Namespace { + if metric.TemplateRef.Namespace != canary.Namespace && metric.TemplateRef.Namespace != "" { namespace = metric.TemplateRef.Namespace } @@ -238,7 +238,7 @@ func (c *Controller) runMetricChecks(canary *flaggerv1.Canary) bool { for _, metric := range canary.GetAnalysis().Metrics { if metric.TemplateRef != nil { namespace := canary.Namespace - if metric.TemplateRef.Namespace != canary.Namespace { + if metric.TemplateRef.Namespace != canary.Namespace && metric.TemplateRef.Namespace != "" { namespace = metric.TemplateRef.Namespace } diff --git a/pkg/controller/scheduler_metrics_test.go b/pkg/controller/scheduler_metrics_test.go index 81ec50ccb..4a1154f0b 100644 --- a/pkg/controller/scheduler_metrics_test.go +++ b/pkg/controller/scheduler_metrics_test.go @@ -25,6 +25,7 @@ import ( flaggerv1 "github.com/fluxcd/flagger/pkg/apis/flagger/v1beta1" "github.com/fluxcd/flagger/pkg/metrics/observers" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func TestController_checkMetricProviderAvailability(t *testing.T) { @@ -66,4 +67,19 @@ func TestController_checkMetricProviderAvailability(t *testing.T) { } require.NoError(t, ctrl.checkMetricProviderAvailability(canary)) }) + + t.Run("intraNamespaceTemplateRef", func(t *testing.T) { + + ctrl := newDeploymentFixture(nil).ctrl + analysis := &flaggerv1.CanaryAnalysis{Metrics: []flaggerv1.CanaryMetric{{ + Name: "", TemplateRef: &flaggerv1.CrossNamespaceObjectReference{ + Name: "envoy", + }, + }}} + canary := &flaggerv1.Canary{ + ObjectMeta: metav1.ObjectMeta{Namespace: "default"}, + Spec: flaggerv1.CanarySpec{Analysis: analysis}, + } + require.NoError(t, ctrl.checkMetricProviderAvailability(canary)) + }) } From 072d9b9850243ff4e1819b052d0a8fa80204ceec Mon Sep 17 00:00:00 2001 From: Nick Freyaldenhoven Date: Wed, 22 Jun 2022 08:39:38 -0500 Subject: [PATCH 2/2] Removing stray blank line. Signed-off-by: Nick Freyaldenhoven --- pkg/controller/scheduler_metrics_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/controller/scheduler_metrics_test.go b/pkg/controller/scheduler_metrics_test.go index 4a1154f0b..96dce20d9 100644 --- a/pkg/controller/scheduler_metrics_test.go +++ b/pkg/controller/scheduler_metrics_test.go @@ -69,7 +69,6 @@ func TestController_checkMetricProviderAvailability(t *testing.T) { }) t.Run("intraNamespaceTemplateRef", func(t *testing.T) { - ctrl := newDeploymentFixture(nil).ctrl analysis := &flaggerv1.CanaryAnalysis{Metrics: []flaggerv1.CanaryMetric{{ Name: "", TemplateRef: &flaggerv1.CrossNamespaceObjectReference{