External-dns: New ingress class not picked up by External-DNS

Created on 24 Jan 2021  路  1Comment  路  Source: kubernetes-sigs/external-dns

What happened:
While using External-DNS on K3s, the external-DNS annotations do not get picked up in Kubernetes 20, where the ingress class is apiVersion: networking.k8s.io/v1 instead of the old apiVersion: extensions/v1beta1

It seems like external-dns relies on it being v1beta.

What you expected to happen:
External-DNS to pick up the annotation or label external-dns.alpha.kubernetes.io/hostname: my.host.name

How to reproduce it (as minimally and precisely as possible):
Install Kubernetes 1.20. I was using K3s. In this version, apiVersion: extensions/v1beta1 is no longer supported.

On Kubernetes 1.19, everything works just fine.

You can see in the logs that it doesn't pick up anything happening in the ingress.

Anything else we need to know?:

Environment:

  • k3s version v1.20.2+k3s1 (1d4adb03), go version go1.15.5
  • External-DNS version: docker.io/bitnami/external-dns:0.7.6-debian-10-r0
  • DNS provider: AWS
  • Others:
kinbug

Most helpful comment

ACK that we have seen this, it's correct that we don't support it yet. We're gonna make this a priority for the next release.

An example of other projects handling this problem can be found here: https://github.com/traefik/traefik/blob/0509b6fdb91f2df45c770fb64f293ed7321e5900/pkg/provider/kubernetes/ingress/client.go#L234

From the release notes of 1.20, I can only find:

kubectl get ingress now prefers the networking.k8s.io/v1 over extensions/v1beta1 (deprecated since v1.14). To explicitly request the deprecated version, use kubectl get ingress.v1beta1.extensions. (#94309, @liggitt) [SIG API Machinery and CLI]

This means that technically extensions/v1beta1 is still supported, but kubectl is introducing some logic to ease the removal, I guess.

No matter the details above, ExternalDNS needs to support networking.k8s.io/v1.

>All comments

ACK that we have seen this, it's correct that we don't support it yet. We're gonna make this a priority for the next release.

An example of other projects handling this problem can be found here: https://github.com/traefik/traefik/blob/0509b6fdb91f2df45c770fb64f293ed7321e5900/pkg/provider/kubernetes/ingress/client.go#L234

From the release notes of 1.20, I can only find:

kubectl get ingress now prefers the networking.k8s.io/v1 over extensions/v1beta1 (deprecated since v1.14). To explicitly request the deprecated version, use kubectl get ingress.v1beta1.extensions. (#94309, @liggitt) [SIG API Machinery and CLI]

This means that technically extensions/v1beta1 is still supported, but kubectl is introducing some logic to ease the removal, I guess.

No matter the details above, ExternalDNS needs to support networking.k8s.io/v1.

Was this page helpful?
0 / 5 - 0 ratings