From a3dd8cdf8de1a9aacc36fe8cf0f268e69bd8a45d Mon Sep 17 00:00:00 2001 From: Matt Greenfield Date: Fri, 22 Mar 2019 08:32:40 -0600 Subject: Add `namespace_labels` configuration for kubernetes plugin (#2707) --- plugin/kubernetes/namespace.go | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'plugin/kubernetes/namespace.go') 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) +} -- cgit v1.2.3