kubernetes/kops · error

cannot list nodes in cluster %q: %v

Error message

cannot list nodes in cluster %q: %v

What it means

Wraps a failure of the Kubernetes nodes List call in checkControlPlaneRunningVersion: the client was built, but listing nodes against the cluster API server failed (auth, connectivity, or API errors). Note the message prints the cluster name where the version was intended.

Source

Thrown at cmd/kops/update_cluster.go:656

		&clientcmd.ConfigOverrides{CurrentContext: clusterName}).ClientConfig()
	if err != nil {
		return version, fmt.Errorf("cannot load kubecfg settings for %q: %v", clusterName, err)
	}

	k8sClient, err := kubernetes.NewForConfig(config)
	if err != nil {
		return version, fmt.Errorf("cannot build kubernetes api client for %q: %v", clusterName, err)
	}

	parsedVersion, err := apisutil.ParseKubernetesVersion(version)
	if err != nil {
		return version, fmt.Errorf("cannot parse kubernetes version %q: %v", clusterName, err)
	}
	nodeList, err := k8sClient.CoreV1().Nodes().List(ctx, metav1.ListOptions{
		LabelSelector: "node-role.kubernetes.io/control-plane",
	})
	if err != nil {
		return version, fmt.Errorf("cannot list nodes in cluster %q: %v", clusterName, err)
	}
	for _, node := range nodeList.Items {
		if apisutil.IsKubernetesGTE(node.Status.NodeInfo.KubeletVersion, *parsedVersion) {
			version = node.Status.NodeInfo.KubeletVersion
			parsedVersion, _ = apisutil.ParseKubernetesVersion(version)
		}

	}
	return strings.TrimPrefix(version, "v"), nil
}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Verify the API server is up and reachable
  2. Refresh kubeconfig credentials
  3. Check RBAC permissions for listing nodes
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at cmd/kops/update_cluster.go:656 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/5e0b34d6a1e0cf46. Report an issue: GitHub.