-
Notifications
You must be signed in to change notification settings - Fork 6.9k
Description
What happened?
Hi! In an ipv6-only cluster, nodelocaldns_ip must be changed to an ipv6 address. This causes the nodelocaldns container to launch error
2026/02/25 11:04:26 [INFO] Starting node-cache image: 1.25.0
2026/02/25 11:04:26 [INFO] Using Corefile /etc/coredns/Corefile
2026/02/25 11:04:26 [INFO] Using Pidfile
2026/02/25 11:04:26 [ERROR] Failed to read node-cache coreFile /etc/coredns/Corefile.base - open /etc/coredns/Corefile.base: no such file or directory
2026/02/25 11:04:26 [INFO] Skipping kube-dns configmap sync as no directory was specified
plugin/health: address fd00:1:2:3::10:9254: too many colons in address
What did you expect to happen?
The nodelocaldns container is running successfully when using an ipv6 address in nodelocaldns_ip.
How can we reproduce it (as minimally and precisely as possible)?
Assign an ipv6 address to nodelocalds_ip, apply the changes, restart the nodelocaldns container.
OS
Ubuntu 24
Version of Ansible
ansible [core 2.16.14]
python version = 3.10.17 (main, Apr 8 2025, 12:10:59) [Clang 16.0.0 (clang-1600.0.26.6)]
jinja version = 3.1.6
libyaml = True
Version of Python
Python 3.10.17
Version of Kubespray (commit)
Network plugin used
cni
Full inventory with variables
https://gist.github.com/Zeratyl06/c632e017acf4f7930c6b01970a13dc26
Command used to invoke ansible
ansible-playbook -vD -i inventory site.yml -l k8s_dev_05 --extra-vars '{"k8s_cluster_deploy": true}' -t "nodelocaldns"
Output of ansible run
The output of the command in this case has no value, in my opinion.
Anything else we need to know
Workround
health {% if nodelocaldns_ip is ansible.utils.ipv6_address %}{{ '[' + nodelocaldns_ip + ']' }}{% else %}{{ nodelocaldns_ip }}{% endif %}:9254
in
| health {{ nodelocaldns_ip }}:{{ nodelocaldns_health_port }} |