kubernetes/kops · error
scheduler nodes requires the ExperimentalNodes feature flag
Error message
scheduler nodes requires the ExperimentalNodes feature flag to be enabled
What it means
The InstanceGroup uses the scheduler role while the ExperimentalRoles feature flag is disabled. Scheduler-only node roles are experimental; spec population is refused until the flag is enabled.
Source
Thrown at upup/pkg/fi/cloudup/populate_instancegroup_spec.go:128
return nil, fmt.Errorf("error assigning default machine type for bastions: %v", err)
}
}
if ig.Spec.MinSize == nil {
ig.Spec.MinSize = new(int32(1))
}
if ig.Spec.MaxSize == nil {
ig.Spec.MaxSize = new(int32(1))
}
} else {
if ig.IsAPIServerOnly() && !featureflag.APIServerNodes.Enabled() {
return nil, fmt.Errorf("apiserver nodes requires the APIServerNodes feature flag to be enabled")
}
if !featureflag.ExperimentalRoles.Enabled() {
switch {
case ig.Spec.Role.HasEtcd():
return nil, fmt.Errorf("etcd nodes requires the ExperimentalNodes feature flag to be enabled")
case ig.Spec.Role.HasScheduler():
return nil, fmt.Errorf("scheduler nodes requires the ExperimentalNodes feature flag to be enabled")
case ig.Spec.Role.HasKubeControllerManager():
return nil, fmt.Errorf("kube-controller-manager nodes requires the ExperimentalNodes feature flag to be enabled")
}
}
if ig.Spec.MachineType == "" {
ig.Spec.MachineType, err = defaultMachineType(cloud, cluster, ig)
if err != nil {
return nil, fmt.Errorf("error assigning default machine type for nodes: %v", err)
}
}
if ig.Spec.Manager != kops.InstanceManagerKarpenter {
if ig.Spec.MinSize == nil {
ig.Spec.MinSize = new(int32(2))
}
if ig.Spec.MaxSize == nil {
ig.Spec.MaxSize = new(int32(2))
}
}View on GitHub (pinned to 4c8573c808)
Solutions
- Enable the flag: KOPS_FEATURE_FLAGS=ExperimentalRoles
- Or remove the scheduler role from the instance group
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/populate_instancegroup_spec.go:128 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/803275c4655c64df.
Report an issue: GitHub.