kubernetes/kops · error

failed to create Linode client: %w

Error message

failed to create Linode client: %w

What it means

pkg/nodeidentity/linode.New wraps linodego.NewClient failure while building the Linode API client for the node identifier. It fires when the client cannot be constructed (nil http client misuse / internal init error); note the preceding guard already required a non-empty LINODE_TOKEN env var.

Source

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

}

// nodeIdentifier identifies a node from Akamai (Linode).
type nodeIdentifier struct {
	client       linodeClient
	cache        expirationcache.Store
	cacheEnabled bool
}

// New creates and returns a nodeidentity.Identifier for Nodes running on Akamai (Linode).
func New(cacheNodeidentityInfo bool) (nodeidentity.Identifier, error) {
	accessToken := os.Getenv("LINODE_TOKEN")
	if accessToken == "" {
		return nil, fmt.Errorf("%s is required", "LINODE_TOKEN")
	}

	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)
	}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Check the wrapped client-construction error
  2. Verify any Linode API base URL overrides or HTTP proxy settings on the node
Defensive patterns

Strategy: try-catch

When it happens

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