{"record":{"id":"3c7a5e54da371b4f","repo":"kubernetes/kops","slug":"cannot-build-kubernetes-api-client-for-q-v","errorCode":null,"errorMessage":"cannot build kubernetes api client for %q: %v","messagePattern":"cannot build kubernetes api client for %q: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/kops/update_cluster.go","lineNumber":645,"sourceCode":"\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n}\n\n// checkControlPlaneRunningVersion returns the minimum control plane running version\nfunc checkControlPlaneRunningVersion(ctx context.Context, clusterName string, version string) (string, error) {\n\tconfigLoadingRules := clientcmd.NewDefaultClientConfigLoadingRules()\n\tconfig, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(\n\t\tconfigLoadingRules,\n\t\t&clientcmd.ConfigOverrides{CurrentContext: clusterName}).ClientConfig()\n\tif err != nil {\n\t\treturn version, fmt.Errorf(\"cannot load kubecfg settings for %q: %v\", clusterName, err)\n\t}\n\n\tk8sClient, err := kubernetes.NewForConfig(config)\n\tif err != nil {\n\t\treturn version, fmt.Errorf(\"cannot build kubernetes api client for %q: %v\", clusterName, err)\n\t}\n\n\tparsedVersion, err := apisutil.ParseKubernetesVersion(version)\n\tif err != nil {\n\t\treturn version, fmt.Errorf(\"cannot parse kubernetes version %q: %v\", clusterName, err)\n\t}\n\tnodeList, err := k8sClient.CoreV1().Nodes().List(ctx, metav1.ListOptions{\n\t\tLabelSelector: \"node-role.kubernetes.io/control-plane\",\n\t})\n\tif err != nil {\n\t\treturn version, fmt.Errorf(\"cannot list nodes in cluster %q: %v\", clusterName, err)\n\t}\n\tfor _, node := range nodeList.Items {\n\t\tif apisutil.IsKubernetesGTE(node.Status.NodeInfo.KubeletVersion, *parsedVersion) {\n\t\t\tversion = node.Status.NodeInfo.KubeletVersion\n\t\t\tparsedVersion, _ = apisutil.ParseKubernetesVersion(version)\n\t\t}\n","sourceCodeStart":627,"sourceCodeEnd":663,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/cmd/kops/update_cluster.go#L627-L663","documentation":"Wraps a failure of kubernetes.NewForConfig in checkControlPlaneRunningVersion: the client config loaded fine, but a Kubernetes clientset could not be constructed from it (e.g. invalid server URL or auth setup for the cluster context).","triggerScenarios":"Thrown at cmd/kops/update_cluster.go:645 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the cluster entry's server URL in kubeconfig","Refresh credentials with kops export kubecfg","Verify client certificate/auth plugin availability"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}