kubernetes/kops · error

found more than one port for instance %v

Error message

found more than one port for instance %v

What it means

More than one port remained after filtering the instance's ports by cluster tags. kops expects exactly one cluster-managed port per instance; multiple matches indicate leftover ports or misapplied kops tags, making port selection ambiguous.

Source

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

	ports, err := cloud.ListPorts(ports.ListOpts{
		DeviceID: server.ID,
	})
	if err != nil {
		return nil, fmt.Errorf("failed to fetch port for instance %v: %v", server.ID, err)
	}

	ports = filterInstancePorts(ports, fi.ValueOf(e.ServerGroup.ClusterName))

	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

View on GitHub (pinned to 4c8573c808)

Solutions

  1. List ports for the instance and inspect their tags/description
  2. Delete stale duplicate cluster-tagged ports
  3. Re-run discovery once a single port matches
Defensive patterns

Strategy: validation

When it happens

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