Context
ipFamilies and ipFamilyPolicy are ignored by the load balancer implementation. A RequireDualStack service gets a single-family floating IP with no complaint — the CCM can only satisfy single-stack today (one floating IP per service).
Scope
Validate the service's IP family requirements in EnsureLoadBalancer (internal/provider/load_balancer.go) and reject configurations we can't satisfy (e.g., RequireDualStack), mirroring the existing externalTrafficPolicy check. Also consider consistency between ipFamilies and the oxide.computer/floating-ip-version annotation.
Done when
Dual-stack requests produce a clear error event instead of a silently wrong single-family IP.
Context
ipFamiliesandipFamilyPolicyare ignored by the load balancer implementation. ARequireDualStackservice gets a single-family floating IP with no complaint — the CCM can only satisfy single-stack today (one floating IP per service).Scope
Validate the service's IP family requirements in
EnsureLoadBalancer(internal/provider/load_balancer.go) and reject configurations we can't satisfy (e.g.,RequireDualStack), mirroring the existingexternalTrafficPolicycheck. Also consider consistency betweenipFamiliesand theoxide.computer/floating-ip-versionannotation.Done when
Dual-stack requests produce a clear error event instead of a silently wrong single-family IP.