From 15d7263c950ebb6d4ec33fbd36548a98a7ba278c Mon Sep 17 00:00:00 2001 From: Avi Huli Date: Tue, 27 Dec 2022 18:44:59 +0200 Subject: [PATCH] Handle empty selector & ns label key not exists --- internal/pkg/controller/controller.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/pkg/controller/controller.go b/internal/pkg/controller/controller.go index 6c622666..c6a1f0d4 100644 --- a/internal/pkg/controller/controller.go +++ b/internal/pkg/controller/controller.go @@ -98,19 +98,25 @@ func (c *Controller) resourceInIgnoredNamespace(raw interface{}) bool { } func (c *Controller) resourceInNamespaceSelector(raw interface{}) bool { + if len(c.namespaceSelector) == 0 { + return true + } + switch object := raw.(type) { case *v1.ConfigMap: namespace, _ := c.client.CoreV1().Namespaces().Get(context.Background(), object.ObjectMeta.Namespace, metav1.GetOptions{}) - for k, v := range c.namespaceSelector { - if namespace.ObjectMeta.Labels[k] != v { + for selectorKey, selectorVal := range c.namespaceSelector { + namespaceLabelVal, namespaceLabelKeyExists := namespace.ObjectMeta.Labels[selectorKey] + if !namespaceLabelKeyExists || selectorVal != namespaceLabelVal { return false } } return true case *v1.Secret: namespace, _ := c.client.CoreV1().Namespaces().Get(context.Background(), object.ObjectMeta.Namespace, metav1.GetOptions{}) - for k, v := range c.namespaceSelector { - if namespace.ObjectMeta.Labels[k] != v { + for selectorKey, selectorVal := range c.namespaceSelector { + namespaceLabelVal, namespaceLabelKeyExists := namespace.ObjectMeta.Labels[selectorKey] + if !namespaceLabelKeyExists || selectorVal != namespaceLabelVal { return false } }