aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/namespace.go
diff options
context:
space:
mode:
authorGravatar Matt Greenfield <matt.greenfield@datadoghq.com> 2019-03-22 08:32:40 -0600
committerGravatar Miek Gieben <miek@miek.nl> 2019-03-22 14:32:40 +0000
commita3dd8cdf8de1a9aacc36fe8cf0f268e69bd8a45d (patch)
tree4d0ca8491e0340e22aa8b3631040c92fbd071cc5 /plugin/kubernetes/namespace.go
parent43c3e0ab68fc103967bfb9bec0363d42a5964dac (diff)
downloadcoredns-a3dd8cdf8de1a9aacc36fe8cf0f268e69bd8a45d.tar.gz
coredns-a3dd8cdf8de1a9aacc36fe8cf0f268e69bd8a45d.tar.zst
coredns-a3dd8cdf8de1a9aacc36fe8cf0f268e69bd8a45d.zip
Add `namespace_labels` configuration for kubernetes plugin (#2707)
Diffstat (limited to 'plugin/kubernetes/namespace.go')
-rw-r--r--plugin/kubernetes/namespace.go21
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)
+}