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

  1. Set an explicit machineType on the control-plane instance group
  2. Check cloud provider credentials and connectivity for the defaulting lookup
  3. 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.