The Oxide CCM attaches each LoadBalancer floating IP to the first eligible node ordered by name, so pool naming can unintentionally determine whether ingress lands on a control-plane or worker node. Document this behavior and recommend labeling every control-plane node with node.kubernetes.io/exclude-from-external-load-balancers=true before creating LoadBalancer services. Clarify that the CCM then selects the first name-sorted remaining node and that excluding every node leaves no valid target.
The Oxide CCM attaches each LoadBalancer floating IP to the first eligible node ordered by name, so pool naming can unintentionally determine whether ingress lands on a control-plane or worker node. Document this behavior and recommend labeling every control-plane node with
node.kubernetes.io/exclude-from-external-load-balancers=truebefore creating LoadBalancer services. Clarify that the CCM then selects the first name-sorted remaining node and that excluding every node leaves no valid target.