aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2021-02-25 18:14:57 +0100
committerGravatar GitHub <noreply@github.com> 2021-02-25 18:14:57 +0100
commitc2028e330f91c91fc8b8cca72a75d3cde2ef3597 (patch)
treef015ef53a66ab6e24e3e6339f345aa7a901dad22 /plugin/kubernetes
parent4843cdfe1eaf871fea38b9219ac0cf818b615122 (diff)
downloadcoredns-c2028e330f91c91fc8b8cca72a75d3cde2ef3597.tar.gz
coredns-c2028e330f91c91fc8b8cca72a75d3cde2ef3597.tar.zst
coredns-c2028e330f91c91fc8b8cca72a75d3cde2ef3597.zip
plugin/kubernetes: don't return when ServerVersion return an error (#4490)
When err=nil try to determine the version of the k8s cluster and disable endpoint slices. Don't return from connecting to the cluster. In the future we should just default to true, and delete all this code. Signed-off-by: Miek Gieben <miek@miek.nl>
Diffstat (limited to 'plugin/kubernetes')
-rw-r--r--plugin/kubernetes/kubernetes.go17
1 files changed, 8 insertions, 9 deletions
diff --git a/plugin/kubernetes/kubernetes.go b/plugin/kubernetes/kubernetes.go
index ce9ca6077..7b3d822c2 100644
--- a/plugin/kubernetes/kubernetes.go
+++ b/plugin/kubernetes/kubernetes.go
@@ -252,15 +252,14 @@ func (k *Kubernetes) InitKubeCache(ctx context.Context) (err error) {
}
// Disable use of endpoint slices for k8s versions 1.18 and earlier. Endpoint slices were
// introduced in 1.17 but EndpointSliceMirroring was not added until 1.19.
- sv, err := kubeClient.ServerVersion()
- if err != nil {
- return err
- }
- major, _ := strconv.Atoi(sv.Major)
- minor, _ := strconv.Atoi(strings.TrimRight(sv.Minor, "+"))
- if k.opts.useEndpointSlices && major <= 1 && minor <= 18 {
- log.Info("watching Endpoints instead of EndpointSlices in k8s versions < 1.19")
- k.opts.useEndpointSlices = false
+ // if err != nil, we continue with the above default which is to use endpoint slices.
+ if sv, err := kubeClient.ServerVersion(); err == nil {
+ major, _ := strconv.Atoi(sv.Major)
+ minor, _ := strconv.Atoi(strings.TrimRight(sv.Minor, "+"))
+ if k.opts.useEndpointSlices && major <= 1 && minor <= 18 {
+ log.Info("Watching Endpoints instead of EndpointSlices in k8s versions < 1.19")
+ k.opts.useEndpointSlices = false
+ }
}
k.APIConn = newdnsController(ctx, kubeClient, k.opts)