kubernetes/kops · error
assigning default machine type for control-plane nodes: %v
Error message
assigning default machine type for control-plane nodes: %v
What it means
The control-plane InstanceGroup has no machine type set, and resolving a default via the cloud provider (defaultMachineType) failed. The wrapped error typically means cloud access failed or no suitable default instance type could be determined for the cluster's zones.
Source
Thrown at upup/pkg/fi/cloudup/populate_instancegroup_spec.go:96
var err error
// TODO: Pass in `cloud` to shift validation to ValidateInstanceGroup
err = validation.ValidateInstanceGroup(input, nil, false).ToAggregate()
if err != nil {
return nil, fmt.Errorf("failed validating input specs: %w", err)
}
ig := &kops.InstanceGroup{}
reflectutils.JSONMergeStruct(ig, input)
igSpec := &ig.Spec
// TODO: Clean up
if ig.IsControlPlane() {
if ig.Spec.MachineType == "" {
ig.Spec.MachineType, err = defaultMachineType(cloud, cluster, ig)
if err != nil {
return nil, fmt.Errorf("assigning default machine type for control-plane nodes: %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.Spec.Role.HasBastion() {
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 bastions: %v", err)
}
}
if ig.Spec.MinSize == nil {
ig.Spec.MinSize = new(int32(1))View on GitHub (pinned to 4c8573c808)
Solutions
- Set an explicit machineType on the control-plane instance group
- Check cloud provider credentials and connectivity for the defaulting lookup
- Ensure the cluster's zones have available instance types
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/populate_instancegroup_spec.go:96 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/712474f43b21ef41.
Report an issue: GitHub.