diff options
Diffstat (limited to 'plugin/kubernetes/namespace.go')
-rw-r--r-- | plugin/kubernetes/namespace.go | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/plugin/kubernetes/namespace.go b/plugin/kubernetes/namespace.go index 7dafc7ab3..6eab13867 100644 --- a/plugin/kubernetes/namespace.go +++ b/plugin/kubernetes/namespace.go @@ -1,20 +1,27 @@ package kubernetes -// namespace checks if namespace n exists in this cluster. This returns true -// even for non exposed namespaces, see namespaceExposed. -func (k *Kubernetes) namespace(n string) bool { - ns, err := k.APIConn.GetNamespaceByName(n) +// filteredNamespaceExists checks if namespace exists in this cluster +// according to any `namespace_labels` plugin configuration specified. +// Returns true even for namespaces not exposed by plugin configuration, +// see namespaceExposed. +func (k *Kubernetes) filteredNamespaceExists(namespace string) bool { + ns, err := k.APIConn.GetNamespaceByName(namespace) if err != nil { return false } - return ns.ObjectMeta.Name == n + return ns.ObjectMeta.Name == namespace } -// namespaceExposed returns true when the namespace is exposed. -func (k *Kubernetes) namespaceExposed(namespace string) bool { +// configuredNamespace returns true when the namespace is exposed through the plugin +// `namespaces` configuration. +func (k *Kubernetes) configuredNamespace(namespace string) bool { _, ok := k.Namespaces[namespace] if len(k.Namespaces) > 0 && !ok { return false } return true } + +func (k *Kubernetes) namespaceExposed(namespace string) bool { + return k.configuredNamespace(namespace) && k.filteredNamespaceExists(namespace) +} |