aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/setup.go
diff options
context:
space:
mode:
authorGravatar Zach Eddy <ZachEddy@users.noreply.github.com> 2018-09-28 12:18:55 -0700
committerGravatar John Belamaric <jbelamaric@google.com> 2018-09-28 12:18:55 -0700
commitfe5c731047a66c96aaa72bad4ae2e48c7e34752d (patch)
tree9cc41878a5bc8fe15bf233d612c6044b271ac820 /plugin/kubernetes/setup.go
parent2fc3f5e0b10ad4e79d952d2ac2bc8d4e7534f4e1 (diff)
downloadcoredns-fe5c731047a66c96aaa72bad4ae2e48c7e34752d.tar.gz
coredns-fe5c731047a66c96aaa72bad4ae2e48c7e34752d.tar.zst
coredns-fe5c731047a66c96aaa72bad4ae2e48c7e34752d.zip
Support for kubeconfig files (#2053)
* Add support for authentication with kubeconfig files * Update k8s plugin documentation * Fix whitespace in README and tests * Use clientcmd package to load kubeconfig file
Diffstat (limited to 'plugin/kubernetes/setup.go')
-rw-r--r--plugin/kubernetes/setup.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/plugin/kubernetes/setup.go b/plugin/kubernetes/setup.go
index 9e2129f6a..abfd8193f 100644
--- a/plugin/kubernetes/setup.go
+++ b/plugin/kubernetes/setup.go
@@ -19,6 +19,7 @@ import (
"github.com/mholt/caddy"
"github.com/miekg/dns"
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/client-go/tools/clientcmd"
)
var log = clog.NewWithPlugin("kubernetes")
@@ -261,6 +262,17 @@ func ParseStanza(c *caddy.Controller) (*Kubernetes, error) {
return nil, fmt.Errorf("unable to parse ignore value: '%v'", ignore)
}
}
+ case "kubeconfig":
+ args := c.RemainingArgs()
+ if len(args) == 2 {
+ config := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
+ &clientcmd.ClientConfigLoadingRules{ExplicitPath: args[0]},
+ &clientcmd.ConfigOverrides{CurrentContext: args[1]},
+ )
+ k8s.ClientConfig = config
+ continue
+ }
+ return nil, c.ArgErr()
default:
return nil, c.Errf("unknown property '%s'", c.Val())
}