Skip to content

0.1.7 - Fix VIP + Node Targeting for Multi-Node Clusters#16

Merged
Handfish merged 3 commits intomainfrom
0.1.7
Jan 17, 2026
Merged

0.1.7 - Fix VIP + Node Targeting for Multi-Node Clusters#16
Handfish merged 3 commits intomainfrom
0.1.7

Conversation

@Handfish
Copy link
Copy Markdown
Owner

Problem

VIP + node targeting via gRPC metadata wasn't working, causing etcd to show 0/0 members, lifecycle versions showing "unknown", and K8s checks showing "unavailable" on multi-node clusters.

Root Cause

Incorrect gRPC metadata format. We sent node targets as a single comma-separated value ("node1,node2,node3"). Talos expects each node as a separate header value - one entry per node, not one entry containing all nodes.

Before (broken):
  nodes: node1,node2,node3

  After (correct):
  nodes: node1
  nodes: node2
  nodes: node3

Changes

  • Fix metadata format in with_nodes() - use "node" (singular) for single node, "nodes" (plural) with append() for multiple
  • Add regression tests - 7 new tests to prevent this bug from recurring
  • Improve K8s client - target specific control plane node for kubeconfig fetch instead of failing silently through VIP
  • Better UI feedback - show kubeconfig source ("via KUBECONFIG" / "via node 192.168.x.x") and actionable hints when unavailable
  • Use IPs instead of hostnames for node targeting - hostnames from etcd peer URLs may not be DNS-resolvable in all environments, so we extract and use IP addresses instead

…emporarily

Temporary fix: we are creating a lot of clients in order to connect to
nodes directly - VIP is causing issues
…ting

Add regression tests to gRPC metadata to prevent future problems

chore: update readme
@Handfish
Copy link
Copy Markdown
Owner Author

Pretty positive this closes #14.

Feel free to reopen the issue if it is not resolved.

@Handfish Handfish merged commit cd25b74 into main Jan 17, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant