{"record":{"id":"d029ff1db334581b","repo":"kubernetes/kops","slug":"building-controller-clientset-w","errorCode":null,"errorMessage":"building controller clientset: %w","messagePattern":"building controller clientset: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"critical","filePath":"cmd/kops-controller/pkg/server/server.go","lineNumber":112,"sourceCode":"\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"cannot parse ConfigBase %q: %w\", opt.ConfigBase, err)\n\t}\n\ts.configBase = configBase\n\n\ts.keystore, s.keypairIDs, err = newKeystore(opt.Server.CABasePath, opt.Server.SigningCAs)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tp, err := vfsContext.BuildVfsPath(opt.SecretStore)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"cannot parse SecretStore %q: %w\", opt.SecretStore, err)\n\t}\n\ts.secretStore = secrets.NewVFSSecretStore(nil, p)\n\n\tclientset, err := controllerclientset.New(vfsContext, configBase, opt.ClusterName, s.keystore, s.secretStore)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"building controller clientset: %w\", err)\n\t}\n\ts.clientset = clientset\n\n\tchallengeClient, err := bootstrap.NewChallengeClient(s.keystore)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ts.challengeClient = challengeClient\n\n\tr := http.NewServeMux()\n\tr.Handle(\"/healthz\", http.HandlerFunc(healthCheck))\n\tr.Handle(\"/bootstrap\", http.HandlerFunc(s.bootstrap))\n\tserver.Handler = recovery(r)\n\n\treturn s, nil\n}\n\nfunc (s *Server) GetClientset() simple.Clientset {","sourceCodeStart":94,"sourceCodeEnd":130,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/cmd/kops-controller/pkg/server/server.go#L94-L130","documentation":"NewServer constructs the controller clientset tying together VFS context, configBase, cluster name, keystore and secret store. A failure here (wrapped with this message) means the server cannot be initialized because the clientset could not be built.","triggerScenarios":"controllerclientset.New returns an error, typically due to inconsistent configuration (nil keystore/secretstore, bad cluster name, earlier vfs setup problems).","commonSituations":"Internal inconsistency after misconfigured flags (bad ConfigBase/SecretStore/cluster name); nil or partially initialized stores passed in; version mismatch in clientset factory expectations.","solutions":["Read the wrapped error from controllerclientset.New","Verify --cluster-name matches the state at --config-base","Ensure keystore and secretStore initialized successfully earlier in NewServer","Check kops-controller version vs cluster state version"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// ensure prior dependencies parsed\nif configBase == nil || s.keystore == nil || s.secretStore == nil {\n    return nil, fmt.Errorf(\"clientset dependencies not initialized\")\n}","typeGuard":null,"tryCatchPattern":"clientset, err := controllerclientset.New(vfsContext, configBase, opt.ClusterName, s.keystore, s.secretStore)\nif err != nil {\n    return nil, fmt.Errorf(\"building controller clientset: %w\", err)\n}","preventionTips":["Fail fast on earlier config errors so the clientset gets valid inputs","Keep --cluster-name consistent with ConfigBase state","Test kops-controller startup in CI with representative flags"],"tags":["go","clientset","initialization","config"],"backgroundTag":"server-init-failed","analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T07:17:12.445Z"}