siderolabs / talos-cloud-controller-manager

Generic cloud controller manager for hybrid deployments using Talos OS
MIT License
49 stars 7 forks source link

Support IPv6 node addresses #101

Closed TimJones closed 7 months ago

TimJones commented 11 months ago

Feature Request

Support IPv6 addresses for the Talos node, including dual-stack.

Description

Currently if a node has an IPv6 interface or is dual-stack the Talos CCM fails to contact the Talos node with the following error:

I1018 16:34:10.934872       1 node_controller.go:415] Initializing node talos-1bxuk8 with cloud provider
E1018 16:34:10.936189       1 node_controller.go:229] error syncing 'talos-1bxuk8': failed to get instance metadata for node omni-eu-1bxuk8: error getting metadata from the node talos-1bxuk8: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp: address 10.0.1.5,fd44:4f1d:3c85:4702:20d:3aff:fe21:da60:50000: too many colons in address", requeuing
sergelogvinov commented 11 months ago

Nice catch. It seem to me it trying to connect to 10.0.1.5,fd44:4f1d:3c85:4702:20d:3aff:fe21:da60 (two IPs with comma)

Can you tell me the Talos/kube-api version. And what do you have here node.metadata.annotations.alpha.kubernetes.io/provided-node-ip

TimJones commented 11 months ago

Talos: v1.5.4 kube-api-server: v1.28.2 Annotation alpha.kubernetes.io/provided-node-ip: 10.0.1.5,fd44:4f1d:3c85:4702:20d:3aff:fe21:da60

Basically, Talos is detecting two interfaces and passing --node-ip "10.0.1.5,fd44:4f1d:3c85:4702:20d:3aff:fe21:da60" to the kubelet.

sergelogvinov commented 11 months ago

Talos: v1.5.4 kube-api-server: v1.28.2 Annotation alpha.kubernetes.io/provided-node-ip: 10.0.1.5,fd44:4f1d:3c85:4702:20d:3aff:fe21:da60

Basically, Talos is detecting two interfaces and passing --node-ip "10.0.1.5,fd44:4f1d:3c85:4702:20d:3aff:fe21:da60" to the kubelet.

Nice, it was alpha feature a few releases ago ) ok, it is not to hard to fix...

Thank you.

TimJones commented 11 months ago

I was more making a note to fix it myself in the morning, but feel free to implement it :D

sergelogvinov commented 10 months ago

kubelet v1.28.3, talos v1.5.4

{"ts":1698090833488.9023,"caller":"cli/run.go:74","msg":"command failed","err":"failed to run Kubelet: bad --node-ip \"192.168.10.64,2001::bdff:fef2:392f\": dual-stack not supported in this configuration"}

how did you configure the kubelet/kube-api ?