diff options
author | 2018-09-28 12:18:55 -0700 | |
---|---|---|
committer | 2018-09-28 12:18:55 -0700 | |
commit | fe5c731047a66c96aaa72bad4ae2e48c7e34752d (patch) | |
tree | 9cc41878a5bc8fe15bf233d612c6044b271ac820 /plugin/kubernetes/setup.go | |
parent | 2fc3f5e0b10ad4e79d952d2ac2bc8d4e7534f4e1 (diff) | |
download | coredns-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.go | 12 |
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()) } |