diff options
author | 2017-08-22 21:52:18 +0100 | |
---|---|---|
committer | 2017-08-22 21:52:18 +0100 | |
commit | 12db6618c82c6e6687c8610edfb1c0a0e352ced3 (patch) | |
tree | fde7f7a1a321f8c43aa3ed41e0911854362b9655 /middleware/kubernetes/kubernetes.go | |
parent | 6a4e69eb9fd0aa02c47d74d743ae4fce292dcbb7 (diff) | |
download | coredns-12db6618c82c6e6687c8610edfb1c0a0e352ced3.tar.gz coredns-12db6618c82c6e6687c8610edfb1c0a0e352ced3.tar.zst coredns-12db6618c82c6e6687c8610edfb1c0a0e352ced3.zip |
mw/kubernetes: resync to opts (#957)
* mw/kubernetes: resync to opts
Only used to initialize the cache that already has a dnsControlopts, so
remove it from the main kubernetes struct.
* Fix test
* mw/kubernetes: LabelSelector to options as well
Labels select is also only used for init. Don't carry it in the main
kubernetes struct.
* remove this test: can't happen
Caddyfile parser will only call setup when it sees kubernetes.
* erge gone wrong
Diffstat (limited to 'middleware/kubernetes/kubernetes.go')
-rw-r--r-- | middleware/kubernetes/kubernetes.go | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/middleware/kubernetes/kubernetes.go b/middleware/kubernetes/kubernetes.go index b6c7d7637..67ec7441e 100644 --- a/middleware/kubernetes/kubernetes.go +++ b/middleware/kubernetes/kubernetes.go @@ -4,7 +4,6 @@ package kubernetes import ( "errors" "fmt" - "log" "net" "strings" "sync/atomic" @@ -38,10 +37,7 @@ type Kubernetes struct { APIClientCert string APIClientKey string APIConn dnsController - ResyncPeriod time.Duration Namespaces map[string]bool - LabelSelector *unversionedapi.LabelSelector - Selector *labels.Selector PodMode string Fallthrough bool @@ -59,7 +55,6 @@ func New(zones []string) *Kubernetes { k.interfaceAddrsFunc = func() net.IP { return net.ParseIP("127.0.0.1") } k.PodMode = PodModeDisabled k.Proxy = proxy.Proxy{} - k.ResyncPeriod = defaultResyncPeriod return k } @@ -260,8 +255,8 @@ func (k *Kubernetes) getClientConfig() (*rest.Config, error) { return clientConfig.ClientConfig() } -// InitKubeCache initializes a new Kubernetes cache. -func (k *Kubernetes) InitKubeCache() (err error) { +// initKubeCache initializes a new Kubernetes cache. +func (k *Kubernetes) initKubeCache(opts dnsControlOpts) (err error) { config, err := k.getClientConfig() if err != nil { @@ -273,23 +268,18 @@ func (k *Kubernetes) InitKubeCache() (err error) { return fmt.Errorf("failed to create kubernetes notification controller: %q", err) } - if k.LabelSelector != nil { + if opts.labelSelector != nil { var selector labels.Selector - selector, err = unversionedapi.LabelSelectorAsSelector(k.LabelSelector) - k.Selector = &selector + selector, err = unversionedapi.LabelSelectorAsSelector(opts.labelSelector) if err != nil { - return fmt.Errorf("unable to create Selector for LabelSelector '%s': %q", k.LabelSelector, err) + return fmt.Errorf("unable to create Selector for LabelSelector '%s': %q", opts.labelSelector, err) } + opts.selector = &selector } - if k.LabelSelector != nil { - log.Printf("[INFO] Kubernetes has label selector '%s'. Only objects matching this label selector will be exposed.", unversionedapi.FormatLabelSelector(k.LabelSelector)) - } + opts.initPodCache = k.PodMode == PodModeVerified - opts := dnsControlOpts{ - initPodCache: k.PodMode == PodModeVerified, - } - k.APIConn = newdnsController(kubeClient, k.ResyncPeriod, k.Selector, opts) + k.APIConn = newdnsController(kubeClient, opts) return err } |