diff --git a/pkg/canary/config_tracker.go b/pkg/canary/config_tracker.go index 934aeafa..dffc9f3f 100644 --- a/pkg/canary/config_tracker.go +++ b/pkg/canary/config_tracker.go @@ -30,6 +30,8 @@ type ConfigRefType string const ( ConfigRefMap ConfigRefType = "configmap" ConfigRefSecret ConfigRefType = "secret" + + configTrackingDisabledAnnotationKey = "flagger.app/config-tracking" ) // ConfigRef holds the reference to a tracked Kubernetes ConfigMap or Secret @@ -52,12 +54,7 @@ func checksum(data interface{}) string { } func configIsDisabled(annotations map[string]string) bool { - for k, v := range annotations { - if k == "flagger.app/config-tracking" && strings.HasPrefix(v, "disable") { - return true - } - } - return false + return strings.HasPrefix(annotations[configTrackingDisabledAnnotationKey], "disable") } // getRefFromConfigMap transforms a Kubernetes ConfigMap into a ConfigRef diff --git a/pkg/canary/config_tracker_test.go b/pkg/canary/config_tracker_test.go index 45091f42..d7bbae2b 100644 --- a/pkg/canary/config_tracker_test.go +++ b/pkg/canary/config_tracker_test.go @@ -10,6 +10,19 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) +func TestConfigIsDisabled(t *testing.T) { + for _, c := range []struct { + annotations map[string]string + exp bool + }{ + {annotations: map[string]string{configTrackingDisabledAnnotationKey: "disable"}, exp: true}, + {annotations: map[string]string{"app": "disable"}, exp: false}, + {annotations: map[string]string{}, exp: false}, + } { + assert.Equal(t, configIsDisabled(c.annotations), c.exp) + } +} + func TestConfigTracker_ConfigMaps(t *testing.T) { t.Run("deployment", func(t *testing.T) { mocks := newDeploymentFixture()