kubernetes/kops · error

failed to fetch floating ips for instance %v: %v

Error message

failed to fetch floating ips for instance %v: %v

What it means

Listing L3 floating IPs associated with the instance's port failed at the API level. The wrapped error identifies the Neutron failure; the lookup is needed to model the instance's floating IP attachment.

Source

Thrown at upup/pkg/fi/cloudup/openstacktasks/instance.go:233

	if len(ports) == 1 {
		port := ports[0]
		porttask, err := newPortTaskFromCloud(cloud, e.Lifecycle, &port, nil)
		if err != nil {
			return nil, fmt.Errorf("failed to fetch port for instance %v: %v", server.ID, err)
		}
		actual.Port = porttask

	} else if len(ports) > 1 {
		return nil, fmt.Errorf("found more than one port for instance %v", server.ID)
	}

	if e.FloatingIP != nil && e.Port != nil {
		fips, err := cloud.ListL3FloatingIPs(l3floatingip.ListOpts{
			PortID: fi.ValueOf(e.Port.ID),
		})
		if err != nil {
			return nil, fmt.Errorf("failed to fetch floating ips for instance %v: %v", server.ID, err)
		}

		if len(fips) == 1 {
			fip := fips[0]
			fipTask := &FloatingIP{
				ID:   new(fip.ID),
				Name: new(fip.Description),
			}

			actual.FloatingIP = fipTask
		} else if len(fips) > 1 {
			return nil, fmt.Errorf("found more than one floating ip for instance %v", server.ID)
		}
	}

	// Avoid flapping
	e.ID = actual.ID
	e.Status = new(activeStatus)

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Inspect the wrapped Neutron error
  2. Verify the networking API is reachable
  3. Retry after the failure clears
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/openstacktasks/instance.go:233 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/b833410b735585a2. Report an issue: GitHub.