kubernetes/kops · critical
error registering kops bootstrap cluster API: %v
Error message
error registering kops bootstrap cluster API: %v
What it means
buildScheme conditionally registers the CAPI bootstrap cluster API types when Cluster API is enabled; this wraps the bootstrapapi AddToScheme call failing, an internal registration/build error rather than a runtime cluster problem.
Source
Thrown at cmd/kops-controller/main.go:303
os.Exit(1)
}
}
func buildScheme(opt *config.Options) (*runtime.Scheme, error) {
scheme := runtime.NewScheme()
if err := corev1.AddToScheme(scheme); err != nil {
return nil, fmt.Errorf("error registering corev1: %v", err)
}
if err := v1alpha2.AddToScheme(scheme); err != nil {
return nil, fmt.Errorf("error registering kops/v1alpha2 API: %v", err)
}
// Needed so that the leader-election system can post events
if err := coordinationv1.AddToScheme(scheme); err != nil {
return nil, fmt.Errorf("error registering coordinationv1: %v", err)
}
if opt.CAPI.IsEnabled() {
if err := bootstrapapi.AddToScheme(scheme); err != nil {
return nil, fmt.Errorf("error registering kops bootstrap cluster API: %v", err)
}
if err := controlplaneapi.AddToScheme(scheme); err != nil {
return nil, fmt.Errorf("error registering kops control-plane cluster API: %v", err)
}
}
return scheme, nil
}
func addNodeController(ctx context.Context, mgr manager.Manager, opt *config.Options) error {
var capiManager *capimanager.Manager
if opt.CAPI.IsEnabled() {
capiManager = capimanager.NewManager(mgr.GetClient())
}
var identifier nodeidentity.Identifier
var err error
switch opt.Cloud {View on GitHub (pinned to 4c8573c808)
Solutions
- Align sigs.k8s.io/cluster-api and k8s.io/* versions via `make gomod`
- Verify only one version of the bootstrap API package is vendored
- If CAPI is not needed, disable the --cluster-api flag
Defensive patterns
Strategy: validation
Validate before calling
if opt.CAPI.IsEnabled() {
if err := bootstrapapi.AddToScheme(scheme); err != nil {
return nil, err
}
}
Prevention
- Align cluster-api bootstrap provider version with core cluster-api
- Verify CAPI flag intentionally enabled before shipping config
- Run a scheme-build unit test with CAPI enabled
When it happens
Trigger: opt.CAPI.IsEnabled() is true and bootstrapapi.AddToScheme(scheme) errors — duplicate type registration or version skew between the CAPI bootstrap provider module and other k8s deps.
Common situations: CAPI enabled with mismatched sigs.k8s.io/cluster-api / bootstrap provider versions in the module graph.
Related errors
- error registering kops control-plane cluster API: %v
- error registering corev1: %v
- clientset is not initialized
- error registering kops/v1alpha2 API: %v
- error registering coordinationv1: %v
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/bab79635fa8cdae8.
Report an issue: GitHub.