kubernetes/kops · error

server `%s` interface name `%s` not found

Error message

server `%s` interface name `%s` not found

What it means

Thrown by GetServerFixedIP when server.Addresses contains no entry for the requested interfaceName. The function looks up server.Addresses[interfaceName] to find the fixed/pool IP; the network interface name is not among the server's attached networks.

Source

Thrown at upup/pkg/fi/cloudup/openstack/utils.go:125

	if localAddr, ok := server.Addresses[interfaceName]; ok {
		if localAddresses, ok := localAddr.([]interface{}); ok {
			for _, addr := range localAddresses {
				addrMap := addr.(map[string]interface{})
				if addrType, ok := addrMap[openstackExternalIPType]; ok && addrType == openstackAddressFixed {
					if fixedIP, ok := addrMap[openstackAddress]; ok {
						if fixedIPStr, ok := fixedIP.(string); ok {
							poolAddress = fixedIPStr
						} else {
							err = fmt.Errorf("Fixed IP was not a string: %v", fixedIP)
						}
					} else {
						err = fmt.Errorf("Type fixed did not contain addr: %v", addr)
					}
				}
			}
		}
	} else {
		err = fmt.Errorf("server `%s` interface name `%s` not found", server.ID, interfaceName)
	}
	return poolAddress, err
}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Compare interfaceName against the network names in `openstack server show <id>` and fix the name used.
  2. Wait until the instance is ACTIVE and addresses are assigned before calling.
  3. Verify the instance group uses the cluster's configured network/subnet.

Example fix

// before
poolAddress, err := GetServerFixedIP(server, "wrong-net")
// after
if _, ok := server.Addresses[interfaceName]; !ok {
    return "", fmt.Errorf("network %q not attached to server %s; available: %v", interfaceName, server.ID, keysOf(server.Addresses))
}
Defensive patterns

Strategy: validation

Validate before calling

if _, ok := server.Addresses[interfaceName]; !ok {
    return "", fmt.Errorf("interface %q not in server %s addresses: %v", interfaceName, server.ID, keysOf(server.Addresses))
}

Try / catch

poolAddress, err := GetServerFixedIP(server, interfaceName)
if err != nil {
    return fmt.Errorf("lookup fixed IP: %w", err)
}

Prevention

When it happens

Trigger: GetServerFixedIP called (via osBuildCloudInstanceGroup) with an interfaceName not present in server.Addresses — typically a wrong network name from the cluster spec, or the server queried before its addresses were populated.

Common situations: Cluster spec network name differing from the actual Neutron network name (typos, renamed networks); server still building; instance attached to a different network than expected.

Related errors


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/db6aa587b6c60d9a. Report an issue: GitHub.