kubernetes/kops · error

providerID not set for node %s

Error message

providerID not set for node %s

What it means

IdentifyNode on Linode received a Kubernetes Node with an empty spec.providerID. The identifier needs a linode://<id> provider ID to locate the instance, so identification fails until the provider stamps it.

Source

Thrown at pkg/nodeidentity/linode/identify.go:78

	client, err := linodego.NewClient(nil)
	if err != nil {
		return nil, fmt.Errorf("failed to create Linode client: %w", err)
	}
	client.SetUserAgent("kops/nodeidentity")
	client.SetToken(accessToken)

	return &nodeIdentifier{
		client:       &client,
		cache:        expirationcache.NewTTLStore(stringKeyFunc, cacheTTL),
		cacheEnabled: cacheNodeidentityInfo,
	}, nil
}

// IdentifyNode queries Akamai (Linode) for the node identity information.
func (i *nodeIdentifier) IdentifyNode(ctx context.Context, node *corev1.Node) (*nodeidentity.Info, error) {
	providerID := node.Spec.ProviderID
	if providerID == "" {
		return nil, fmt.Errorf("providerID not set for node %s", node.Name)
	}

	instanceNumericID, instanceID, err := parseInstanceIDFromProviderID(providerID)
	if err != nil {
		return nil, fmt.Errorf("providerID %q not recognized for node %s: %w", providerID, node.Name, err)
	}

	if i.cacheEnabled {
		obj, exists, err := i.cache.GetByKey(instanceID)
		if err != nil {
			klog.Warningf("Nodeidentity info cache lookup failure: %v", err)
		}
		if exists {
			return obj.(*nodeidentity.Info), nil
		}
	}

	instance, err := i.client.GetInstance(ctx, instanceNumericID)

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Ensure the Linode CCM/cloud-provider integration sets node.spec.providerID
  2. Wait for node registration to finish before identity lookups
  3. Manually patch providerID in the format linode://<instance-id> if importing nodes
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/nodeidentity/linode/identify.go:78 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/cc9c5d9a3aaaf2f7. Report an issue: GitHub.