kubernetes/kops · error
Failed to retrieve subnet `%s` in loadbalancer creation: %v
Error message
Failed to retrieve subnet `%s` in loadbalancer creation: %v
What it means
Listing Neutron subnets by the configured subnet name failed during load-balancer creation. The wrapped error identifies the API failure; the subnet is needed as the LB's VIP subnet.
Source
Thrown at upup/pkg/fi/cloudup/openstacktasks/lb.go:202
if changes.ID != nil {
return fi.CannotChangeField("ID")
}
if changes.Name != nil {
return fi.CannotChangeField("Name")
}
}
return nil
}
func (_ *LB) RenderOpenstack(t *openstack.OpenstackAPITarget, a, e, changes *LB) error {
if a == nil {
klog.V(2).Infof("Creating LB with Name: %q", fi.ValueOf(e.Name))
subnets, err := t.Cloud.ListSubnets(subnets.ListOpts{
Name: fi.ValueOf(e.Subnet),
})
if err != nil {
return fmt.Errorf("Failed to retrieve subnet `%s` in loadbalancer creation: %v", fi.ValueOf(e.Subnet), err)
}
if len(subnets) != 1 {
return fmt.Errorf("Unexpected desired subnets for `%s`. Expected 1, got %d", fi.ValueOf(e.Subnet), len(subnets))
}
lbopts := loadbalancers.CreateOpts{
Name: fi.ValueOf(e.Name),
VipSubnetID: subnets[0].ID,
}
if e.FlavorID != nil {
lbopts.FlavorID = fi.ValueOf(e.FlavorID)
}
lb, err := t.Cloud.CreateLB(lbopts)
if err != nil {
return fmt.Errorf("error creating LB: %v", err)
}
e.ID = new(lb.ID)
e.PortID = new(lb.VipPortID)View on GitHub (pinned to 4c8573c808)
Solutions
- Inspect the wrapped Neutron error
- Verify the subnet name in the cluster spec exists
- Retry after the API failure clears
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/openstacktasks/lb.go:202 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/6a8ee1ed87ae7bba.
Report an issue: GitHub.