-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Endpoints incorrectly generated for services with IPv6 Addresses. #1812
Comments
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle stale |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-contributor-experience at kubernetes/community. |
/lifecycle hold |
/lifecycle frozen |
Relates to #2051, I'll track the state of it and thaw the lifecycle once appropriate |
In a dual-stack Kubernetes environment, Services with IPv6 addresses have endpoints generated with a record type of "A".
external-dns configuration:
image: k8s.gcr.io/external-dns/external-dns:v0.7.3
- --txt-owner-id=mosel-kube
- --registry=txt
- --provider=rfc2136
- --rfc2136-host=10.109.176.2
- --rfc2136-port=53
- --rfc2136-zone=externaldns.test.com
- --rfc2136-tsig-secret=4F4wC4ypP65u/misCqpApYyY49Bg0tqAdYm3xU3AQDY=
- --rfc2136-tsig-secret-alg=hmac-sha256
- --rfc2136-tsig-keyname=externaldns
- --rfc2136-tsig-axfr
- --source=ingress
- --source=service
- --domain-filter=externaldns.test.com
- --service-type-filter=LoadBalancer
- --log-level=debug
- --fqdn-template={{.Name}}.externaldns.test.com
Services:
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-kubernetes-dnsanno-v4 LoadBalancer 172.25.125.56 10.109.180.129 80:30092/TCP 5m1s
hello-kubernetes-dnsanno-v6 LoadBalancer fd0f:ac19::1d04 fd00:6ad:b480::2 80:30343/TCP 5m1s
hello-kubernetes-dnsannowithv6-v6 LoadBalancer fd0f:ac19::fd01 fd00:6ad:b480::3 80:32374/TCP 5m1s
hello-kubernetes-dnstemplate-v4 LoadBalancer 172.25.74.176 10.109.180.128 80:32661/TCP 5m1s
hello-kubernetes-dnstemplate-v6 LoadBalancer fd0f:ac19::a9e9 fd00:6ad:b480::1 80:32575/TCP 5m1s
Test services:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-kubernetes
spec:
replicas: 2
selector:
matchLabels:
app: hello-kubernetes
template:
metadata:
labels:
app: hello-kubernetes
spec:
containers:
- name: hello-kubernetes
image: paulbouwer/hello-kubernetes:1.8
ports:
- containerPort: 8080
apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes-dnstemplate-v6
spec:
ipFamily: IPv6
selector:
app: hello-kubernetes
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes-dnstemplate-v4
spec:
ipFamily: IPv4
selector:
app: hello-kubernetes
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes-dnsanno-v6
annotations:
external-dns.alpha.kubernetes.io/hostname: hellok.externaldns.test.com
spec:
ipFamily: IPv6
selector:
app: hello-kubernetes
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes-dnsannowithv6-v6
annotations:
external-dns.alpha.kubernetes.io/hostname: hellok.externaldns.test.com
external-dns.alpha.kubernetes.io/ipv6: "true"
spec:
ipFamily: IPv6
selector:
app: hello-kubernetes
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes-dnsanno-v4
annotations:
external-dns.alpha.kubernetes.io/hostname: hellok.externaldns.test.com
spec:
ipFamily: IPv4
selector:
app: hello-kubernetes
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
External-dns logs:
time="2020-10-08T16:28:50Z" level=debug msg="Fetching records for 'externaldns.test.com.'"
time="2020-10-08T16:28:50Z" level=debug msg="Record=externaldns.test.com.\t86400\tIN\tSOA\texternaldns.test.com. mark.hall.externaldns.test.com. 430476 1800 60 86400 300"
time="2020-10-08T16:28:50Z" level=debug msg="Record=externaldns.test.com.\t86400\tIN\tNS\tdhcp-dns.set.calenglab.spirentcom.com."
time="2020-10-08T16:28:50Z" level=debug msg="Record=hello-kubernetes-dnstemplate-v4.externaldns.test.com.\t0\tIN\tTXT\t"heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnstemplate-v4""
time="2020-10-08T16:28:50Z" level=debug msg="Record=hello-kubernetes-dnstemplate-v4.externaldns.test.com.\t0\tIN\tA\t10.109.180.130"
time="2020-10-08T16:28:50Z" level=debug msg="Record=hello-kubernetes-dnstemplate-v6.externaldns.test.com.\t0\tIN\tTXT\t"heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnstemplate-v6""
time="2020-10-08T16:28:50Z" level=debug msg="Record=hellok.externaldns.test.com.\t0\tIN\tTXT\t"heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnsanno-v4""
time="2020-10-08T16:28:50Z" level=debug msg="Record=hellok.externaldns.test.com.\t0\tIN\tA\t10.109.180.131"
time="2020-10-08T16:28:50Z" level=debug msg="Record=my-service-v4.externaldns.test.com.\t0\tIN\tTXT\t"heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/my-service-v4""
time="2020-10-08T16:28:50Z" level=debug msg="Record=my-service-v4.externaldns.test.com.\t0\tIN\tA\t10.109.180.128"
time="2020-10-08T16:28:50Z" level=debug msg="Record=my-service-v6.externaldns.test.com.\t0\tIN\tTXT\t"heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/my-service-v6""
time="2020-10-08T16:28:50Z" level=debug msg="Record=externaldns.test.com.\t86400\tIN\tSOA\texternaldns.test.com. mark.hall.externaldns.test.com. 430476 1800 60 86400 300"
time="2020-10-08T16:28:50Z" level=debug msg="ApplyChanges (Create: 0, UpdateOld: 0, UpdateNew: 0, Delete: 6)"
time="2020-10-08T16:28:50Z" level=debug msg="RemoveRecord.ep=hello-kubernetes-dnstemplate-v4.externaldns.test.com 0 IN A 10.109.180.130 []"
time="2020-10-08T16:28:50Z" level=info msg="Removing RR: hello-kubernetes-dnstemplate-v4.externaldns.test.com 0 A 10.109.180.130"
time="2020-10-08T16:28:50Z" level=debug msg="RemoveRecord.ep=hellok.externaldns.test.com 0 IN A 10.109.180.131 []"
time="2020-10-08T16:28:50Z" level=info msg="Removing RR: hellok.externaldns.test.com 0 A 10.109.180.131"
time="2020-10-08T16:28:50Z" level=debug msg="RemoveRecord.ep=my-service-v4.externaldns.test.com 0 IN A 10.109.180.128 []"
time="2020-10-08T16:28:50Z" level=info msg="Removing RR: my-service-v4.externaldns.test.com 0 A 10.109.180.128"
time="2020-10-08T16:28:50Z" level=debug msg="RemoveRecord.ep=hello-kubernetes-dnstemplate-v4.externaldns.test.com 0 IN TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnstemplate-v4" []"
time="2020-10-08T16:28:50Z" level=info msg="Removing RR: hello-kubernetes-dnstemplate-v4.externaldns.test.com 0 TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnstemplate-v4""
time="2020-10-08T16:28:50Z" level=debug msg="RemoveRecord.ep=hellok.externaldns.test.com 0 IN TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnsanno-v4" []"
time="2020-10-08T16:28:50Z" level=info msg="Removing RR: hellok.externaldns.test.com 0 TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnsanno-v4""
time="2020-10-08T16:28:50Z" level=debug msg="RemoveRecord.ep=my-service-v4.externaldns.test.com 0 IN TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/my-service-v4" []"
time="2020-10-08T16:28:50Z" level=info msg="Removing RR: my-service-v4.externaldns.test.com 0 TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/my-service-v4""
time="2020-10-08T16:28:50Z" level=debug msg=SendMessage
time="2020-10-08T16:28:50Z" level=debug msg=SendMessage.success
time="2020-10-08T16:29:50Z" level=debug msg="Fetching records for 'externaldns.test.com.'"
time="2020-10-08T16:29:50Z" level=debug msg="Record=externaldns.test.com.\t86400\tIN\tSOA\texternaldns.test.com. mark.hall.externaldns.test.com. 430477 1800 60 86400 300"
time="2020-10-08T16:29:50Z" level=debug msg="Record=externaldns.test.com.\t86400\tIN\tNS\tdhcp-dns.set.calenglab.spirentcom.com."
time="2020-10-08T16:29:50Z" level=debug msg="Record=hello-kubernetes-dnstemplate-v6.externaldns.test.com.\t0\tIN\tTXT\t"heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnstemplate-v6""
time="2020-10-08T16:29:50Z" level=debug msg="Record=my-service-v6.externaldns.test.com.\t0\tIN\tTXT\t"heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/my-service-v6""
time="2020-10-08T16:29:50Z" level=debug msg="Record=externaldns.test.com.\t86400\tIN\tSOA\texternaldns.test.com. mark.hall.externaldns.test.com. 430477 1800 60 86400 300"
time="2020-10-08T16:29:50Z" level=debug msg="Endpoints generated from service: default/hello-kubernetes-dnstemplate-v4: [hello-kubernetes-dnstemplate-v4.externaldns.test.com 0 IN A 10.109.180.128 []]"
time="2020-10-08T16:29:50Z" level=debug msg="Endpoints generated from service: default/hello-kubernetes-dnsanno-v6: [hellok.externaldns.test.com 0 IN A fd00:6ad:b480::2 []]"
time="2020-10-08T16:29:50Z" level=debug msg="Endpoints generated from service: default/hello-kubernetes-dnsanno-v4: [hellok.externaldns.test.com 0 IN A 10.109.180.129 []]"
time="2020-10-08T16:29:50Z" level=debug msg="Endpoints generated from service: default/hello-kubernetes-dnstemplate-v6: [hello-kubernetes-dnstemplate-v6.externaldns.test.com 0 IN A fd00:6ad:b480::1 []]"
time="2020-10-08T16:29:50Z" level=debug msg="Endpoints generated from service: default/hello-kubernetes-dnsannowithv6-v6: [hellok.externaldns.test.com 0 IN A fd00:6ad:b480::3 []]"
time="2020-10-08T16:29:50Z" level=debug msg="ApplyChanges (Create: 6, UpdateOld: 0, UpdateNew: 0, Delete: 0)"
time="2020-10-08T16:29:50Z" level=debug msg="AddRecord.ep=hello-kubernetes-dnstemplate-v4.externaldns.test.com 0 IN A 10.109.180.128 []"
time="2020-10-08T16:29:50Z" level=info msg="Adding RR: hello-kubernetes-dnstemplate-v4.externaldns.test.com 0 A 10.109.180.128"
time="2020-10-08T16:29:50Z" level=debug msg="AddRecord.ep=hellok.externaldns.test.com 0 IN A 10.109.180.129 []"
time="2020-10-08T16:29:50Z" level=info msg="Adding RR: hellok.externaldns.test.com 0 A 10.109.180.129"
time="2020-10-08T16:29:50Z" level=debug msg="AddRecord.ep=hello-kubernetes-dnstemplate-v6.externaldns.test.com 0 IN A fd00:6ad:b480::1 []"
time="2020-10-08T16:29:50Z" level=info msg="Adding RR: hello-kubernetes-dnstemplate-v6.externaldns.test.com 0 A fd00:6ad:b480::1"
time="2020-10-08T16:29:50Z" level=debug msg="AddRecord.ep=hello-kubernetes-dnstemplate-v4.externaldns.test.com 0 IN TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnstemplate-v4" []"
time="2020-10-08T16:29:50Z" level=info msg="Adding RR: hello-kubernetes-dnstemplate-v4.externaldns.test.com 0 TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnstemplate-v4""
time="2020-10-08T16:29:50Z" level=debug msg="AddRecord.ep=hellok.externaldns.test.com 0 IN TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnsanno-v4" []"
time="2020-10-08T16:29:50Z" level=info msg="Adding RR: hellok.externaldns.test.com 0 TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnsanno-v4""
time="2020-10-08T16:29:50Z" level=debug msg="AddRecord.ep=hello-kubernetes-dnstemplate-v6.externaldns.test.com 0 IN TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnstemplate-v6" []"
time="2020-10-08T16:29:50Z" level=info msg="Adding RR: hello-kubernetes-dnstemplate-v6.externaldns.test.com 0 TXT "heritage=external-dns,external-dns/owner=mosel-kube,external-dns/resource=service/default/hello-kubernetes-dnstemplate-v6""
time="2020-10-08T16:29:50Z" level=debug msg=SendMessage
time="2020-10-08T16:29:50Z" level=debug msg=SendMessage.success
I would expect the record type to be determined by the address. A valid IPv4 address should always have a record type of "A", and a valid IPv6 address should always have a record type of "AAAA".
The text was updated successfully, but these errors were encountered: