aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/kubernetes')
-rw-r--r--plugin/kubernetes/README.md4
-rw-r--r--plugin/kubernetes/controller.go8
-rw-r--r--plugin/kubernetes/object/informer.go8
-rw-r--r--plugin/kubernetes/setup.go14
-rw-r--r--plugin/kubernetes/setup_test.go117
5 files changed, 16 insertions, 135 deletions
diff --git a/plugin/kubernetes/README.md b/plugin/kubernetes/README.md
index 50a31801f..15af2565c 100644
--- a/plugin/kubernetes/README.md
+++ b/plugin/kubernetes/README.md
@@ -31,7 +31,6 @@ all the zones the plugin should be authoritative for.
```
kubernetes [ZONES...] {
- resyncperiod DURATION
endpoint URL
tls CERT KEY CACERT
kubeconfig KUBECONFIG CONTEXT
@@ -47,8 +46,7 @@ kubernetes [ZONES...] {
}
```
-* `resyncperiod` specifies the Kubernetes data API **DURATION** period. By
- default resync is disabled (DURATION is zero).
+
* `endpoint` specifies the **URL** for a remote k8s API endpoint.
If omitted, it will connect to k8s in-cluster using the cluster service account.
* `tls` **CERT** **KEY** **CACERT** are the TLS cert, key and the CA cert file names for remote k8s connection.
diff --git a/plugin/kubernetes/controller.go b/plugin/kubernetes/controller.go
index 634735584..f5a3e7ffd 100644
--- a/plugin/kubernetes/controller.go
+++ b/plugin/kubernetes/controller.go
@@ -80,7 +80,6 @@ type dnsControl struct {
type dnsControlOpts struct {
initPodCache bool
initEndpointsCache bool
- resyncPeriod time.Duration
ignoreEmptyService bool
// Label handling.
@@ -110,7 +109,6 @@ func newdnsController(kubeClient kubernetes.Interface, opts dnsControlOpts) *dns
WatchFunc: serviceWatchFunc(dns.client, api.NamespaceAll, dns.selector),
},
&api.Service{},
- opts.resyncPeriod,
cache.ResourceEventHandlerFuncs{AddFunc: dns.Add, UpdateFunc: dns.Update, DeleteFunc: dns.Delete},
cache.Indexers{svcNameNamespaceIndex: svcNameNamespaceIndexFunc, svcIPIndex: svcIPIndexFunc},
object.ToService,
@@ -123,7 +121,6 @@ func newdnsController(kubeClient kubernetes.Interface, opts dnsControlOpts) *dns
WatchFunc: podWatchFunc(dns.client, api.NamespaceAll, dns.selector),
},
&api.Pod{},
- opts.resyncPeriod,
cache.ResourceEventHandlerFuncs{AddFunc: dns.Add, UpdateFunc: dns.Update, DeleteFunc: dns.Delete},
cache.Indexers{podIPIndex: podIPIndexFunc},
object.ToPod,
@@ -137,7 +134,6 @@ func newdnsController(kubeClient kubernetes.Interface, opts dnsControlOpts) *dns
WatchFunc: endpointsWatchFunc(dns.client, api.NamespaceAll, dns.selector),
},
&api.Endpoints{},
- opts.resyncPeriod,
cache.ResourceEventHandlerFuncs{AddFunc: dns.Add, UpdateFunc: dns.Update, DeleteFunc: dns.Delete},
cache.Indexers{epNameNamespaceIndex: epNameNamespaceIndexFunc, epIPIndex: epIPIndexFunc},
object.ToEndpoints)
@@ -149,7 +145,7 @@ func newdnsController(kubeClient kubernetes.Interface, opts dnsControlOpts) *dns
WatchFunc: namespaceWatchFunc(dns.client, dns.namespaceSelector),
},
&api.Namespace{},
- opts.resyncPeriod,
+ defaultResyncPeriod,
cache.ResourceEventHandlerFuncs{})
return &dns
@@ -516,3 +512,5 @@ func (dns *dnsControl) updateModifed() {
}
var errObj = errors.New("obj was not of the correct type")
+
+const defaultResyncPeriod = 0
diff --git a/plugin/kubernetes/object/informer.go b/plugin/kubernetes/object/informer.go
index 9336571dc..919fce12d 100644
--- a/plugin/kubernetes/object/informer.go
+++ b/plugin/kubernetes/object/informer.go
@@ -1,14 +1,12 @@
package object
import (
- "time"
-
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/tools/cache"
)
// NewIndexerInformer is a copy of the cache.NewIndexInformer function, but allows Process to have a conversion function (ToFunc).
-func NewIndexerInformer(lw cache.ListerWatcher, objType runtime.Object, resyncPeriod time.Duration, h cache.ResourceEventHandler, indexers cache.Indexers, convert ToFunc) (cache.Indexer, cache.Controller) {
+func NewIndexerInformer(lw cache.ListerWatcher, objType runtime.Object, h cache.ResourceEventHandler, indexers cache.Indexers, convert ToFunc) (cache.Indexer, cache.Controller) {
clientState := cache.NewIndexer(cache.DeletionHandlingMetaNamespaceKeyFunc, indexers)
fifo := cache.NewDeltaFIFO(cache.MetaNamespaceKeyFunc, clientState)
@@ -17,7 +15,7 @@ func NewIndexerInformer(lw cache.ListerWatcher, objType runtime.Object, resyncPe
Queue: fifo,
ListerWatcher: lw,
ObjectType: objType,
- FullResyncPeriod: resyncPeriod,
+ FullResyncPeriod: defaultResyncPeriod,
RetryOnError: false,
Process: func(obj interface{}) error {
for _, d := range obj.(cache.Deltas) {
@@ -49,3 +47,5 @@ func NewIndexerInformer(lw cache.ListerWatcher, objType runtime.Object, resyncPe
}
return clientState, cache.New(cfg)
}
+
+const defaultResyncPeriod = 0
diff --git a/plugin/kubernetes/setup.go b/plugin/kubernetes/setup.go
index 028f4ae77..d97bc9139 100644
--- a/plugin/kubernetes/setup.go
+++ b/plugin/kubernetes/setup.go
@@ -131,7 +131,6 @@ func ParseStanza(c *caddy.Controller) (*Kubernetes, error) {
opts := dnsControlOpts{
initEndpointsCache: true,
ignoreEmptyService: false,
- resyncPeriod: defaultResyncPeriod,
}
k8s.opts = opts
@@ -214,16 +213,7 @@ func ParseStanza(c *caddy.Controller) (*Kubernetes, error) {
}
return nil, c.ArgErr()
case "resyncperiod":
- args := c.RemainingArgs()
- if len(args) > 0 {
- rp, err := time.ParseDuration(args[0])
- if err != nil {
- return nil, fmt.Errorf("unable to parse resync duration value: '%v': %v", args[0], err)
- }
- k8s.opts.resyncPeriod = rp
- continue
- }
- return nil, c.ArgErr()
+ continue
case "labels":
args := c.RemainingArgs()
if len(args) > 0 {
@@ -322,5 +312,3 @@ func searchFromResolvConf() []string {
plugin.Zones(rc.Search).Normalize()
return rc.Search
}
-
-const defaultResyncPeriod = 0
diff --git a/plugin/kubernetes/setup_test.go b/plugin/kubernetes/setup_test.go
index fc09f0476..634401d9d 100644
--- a/plugin/kubernetes/setup_test.go
+++ b/plugin/kubernetes/setup_test.go
@@ -3,7 +3,6 @@ package kubernetes
import (
"strings"
"testing"
- "time"
"github.com/coredns/coredns/plugin/pkg/fall"
@@ -13,14 +12,13 @@ import (
func TestKubernetesParse(t *testing.T) {
tests := []struct {
- input string // Corefile data as string
- shouldErr bool // true if test case is expected to produce an error.
- expectedErrContent string // substring from the expected error. Empty for positive cases.
- expectedZoneCount int // expected count of defined zones.
- expectedNSCount int // expected count of namespaces.
- expectedResyncPeriod time.Duration // expected resync period value
- expectedLabelSelector string // expected label selector value
- expectedNamespaceLabelSelector string // expected namespace label selector value
+ input string // Corefile data as string
+ shouldErr bool // true if test case is expected to produce an error.
+ expectedErrContent string // substring from the expected error. Empty for positive cases.
+ expectedZoneCount int // expected count of defined zones.
+ expectedNSCount int // expected count of namespaces.
+ expectedLabelSelector string // expected label selector value
+ expectedNamespaceLabelSelector string // expected namespace label selector value
expectedPodMode string
expectedFallthrough fall.F
}{
@@ -31,7 +29,6 @@ func TestKubernetesParse(t *testing.T) {
"",
1,
0,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -43,7 +40,6 @@ func TestKubernetesParse(t *testing.T) {
"",
2,
0,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -56,7 +52,6 @@ func TestKubernetesParse(t *testing.T) {
"",
1,
0,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -70,7 +65,6 @@ func TestKubernetesParse(t *testing.T) {
"",
1,
0,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -84,7 +78,6 @@ func TestKubernetesParse(t *testing.T) {
"",
1,
1,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -98,35 +91,6 @@ func TestKubernetesParse(t *testing.T) {
"",
1,
2,
- defaultResyncPeriod,
- "",
- "",
- podModeDisabled,
- fall.Zero,
- },
- {
- `kubernetes coredns.local {
- resyncperiod 30s
-}`,
- false,
- "",
- 1,
- 0,
- 30 * time.Second,
- "",
- "",
- podModeDisabled,
- fall.Zero,
- },
- {
- `kubernetes coredns.local {
- resyncperiod 15m
-}`,
- false,
- "",
- 1,
- 0,
- 15 * time.Minute,
"",
"",
podModeDisabled,
@@ -140,7 +104,6 @@ func TestKubernetesParse(t *testing.T) {
"",
1,
0,
- defaultResyncPeriod,
"environment=prod",
"",
podModeDisabled,
@@ -154,7 +117,6 @@ func TestKubernetesParse(t *testing.T) {
"",
1,
0,
- defaultResyncPeriod,
"application=nginx,environment in (production,qa,staging)",
"",
podModeDisabled,
@@ -168,7 +130,6 @@ func TestKubernetesParse(t *testing.T) {
"",
1,
0,
- defaultResyncPeriod,
"",
"istio-injection=enabled",
podModeDisabled,
@@ -183,7 +144,6 @@ func TestKubernetesParse(t *testing.T) {
"Error during parsing: namespaces and namespace_labels cannot both be set",
-1,
0,
- defaultResyncPeriod,
"",
"istio-injection=enabled",
podModeDisabled,
@@ -191,7 +151,6 @@ func TestKubernetesParse(t *testing.T) {
},
{
`kubernetes coredns.local test.local {
- resyncperiod 15m
endpoint http://localhost:8080
namespaces demo test
labels environment in (production, staging, qa),application=nginx
@@ -201,7 +160,6 @@ func TestKubernetesParse(t *testing.T) {
"",
2,
2,
- 15 * time.Minute,
"application=nginx,environment in (production,qa,staging)",
"",
podModeDisabled,
@@ -216,7 +174,6 @@ func TestKubernetesParse(t *testing.T) {
"rong argument count or unexpected line ending",
-1,
-1,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -230,49 +187,6 @@ func TestKubernetesParse(t *testing.T) {
"rong argument count or unexpected line ending",
-1,
-1,
- defaultResyncPeriod,
- "",
- "",
- podModeDisabled,
- fall.Zero,
- },
- {
- `kubernetes coredns.local {
- resyncperiod
-}`,
- true,
- "rong argument count or unexpected line ending",
- -1,
- 0,
- 0 * time.Minute,
- "",
- "",
- podModeDisabled,
- fall.Zero,
- },
- {
- `kubernetes coredns.local {
- resyncperiod 15
-}`,
- true,
- "unable to parse resync duration value",
- -1,
- 0,
- 0 * time.Second,
- "",
- "",
- podModeDisabled,
- fall.Zero,
- },
- {
- `kubernetes coredns.local {
- resyncperiod abc
-}`,
- true,
- "unable to parse resync duration value",
- -1,
- 0,
- 0 * time.Second,
"",
"",
podModeDisabled,
@@ -286,7 +200,6 @@ func TestKubernetesParse(t *testing.T) {
"rong argument count or unexpected line ending",
-1,
0,
- 0 * time.Second,
"",
"",
podModeDisabled,
@@ -300,7 +213,6 @@ func TestKubernetesParse(t *testing.T) {
"unable to parse label selector",
-1,
0,
- 0 * time.Second,
"",
"",
podModeDisabled,
@@ -315,7 +227,6 @@ func TestKubernetesParse(t *testing.T) {
"",
1,
0,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -330,7 +241,6 @@ func TestKubernetesParse(t *testing.T) {
"",
1,
0,
- defaultResyncPeriod,
"",
"",
podModeInsecure,
@@ -345,7 +255,6 @@ func TestKubernetesParse(t *testing.T) {
"",
1,
0,
- defaultResyncPeriod,
"",
"",
podModeVerified,
@@ -360,7 +269,6 @@ func TestKubernetesParse(t *testing.T) {
"rong value for pods",
-1,
0,
- defaultResyncPeriod,
"",
"",
podModeVerified,
@@ -375,7 +283,6 @@ func TestKubernetesParse(t *testing.T) {
"rong argument count",
1,
0,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -389,7 +296,6 @@ kubernetes cluster.local`,
"this plugin",
-1,
0,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -403,7 +309,6 @@ kubernetes cluster.local`,
"Wrong argument count or unexpected line ending after",
-1,
0,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -417,7 +322,6 @@ kubernetes cluster.local`,
"Wrong argument count or unexpected line ending after",
-1,
0,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -431,7 +335,6 @@ kubernetes cluster.local`,
"",
1,
0,
- defaultResyncPeriod,
"",
"",
podModeDisabled,
@@ -480,12 +383,6 @@ kubernetes cluster.local`,
t.Errorf("Test %d: Expected kubernetes controller to be initialized with %d namespaces. Instead found %d namespaces: '%v' for input '%s'", i, test.expectedNSCount, foundNSCount, k8sController.Namespaces, test.input)
}
- // ResyncPeriod
- foundResyncPeriod := k8sController.opts.resyncPeriod
- if foundResyncPeriod != test.expectedResyncPeriod {
- t.Errorf("Test %d: Expected kubernetes controller to be initialized with resync period '%s'. Instead found period '%s' for input '%s'", i, test.expectedResyncPeriod, foundResyncPeriod, test.input)
- }
-
// Labels
if k8sController.opts.labelSelector != nil {
foundLabelSelectorString := meta.FormatLabelSelector(k8sController.opts.labelSelector)