kubernetes/kops · error
failed validating input specs: %w
Error message
failed validating input specs: %w
What it means
The input InstanceGroup failed kops validation before defaulting is applied. The aggregate error lists the invalid fields (name, role, etc.); population is aborted so no defaults are computed for a broken spec.
Source
Thrown at upup/pkg/fi/cloudup/populate_instancegroup_spec.go:83
// TODO: this hardcoded list can be replaced with DescribeInstanceTypes' DedicatedHostsSupported field
var awsDedicatedInstanceExceptions = map[string]bool{
"t2.nano": true,
"t2.micro": true,
"t2.small": true,
"t2.medium": true,
"t2.large": true,
"t2.xlarge": true,
}
// PopulateInstanceGroupSpec sets default values in the InstanceGroup
func PopulateInstanceGroupSpec(cluster *kops.Cluster, input *kops.InstanceGroup, cloud fi.Cloud, channel *kops.Channel) (*kops.InstanceGroup, error) {
klog.V(2).Infof("Populating instance group spec for %q", input.GetName())
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))View on GitHub (pinned to 4c8573c808)
Solutions
- Read each error in the aggregate validation result
- Fix the named fields in the instance group spec
- Retry the operation
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/populate_instancegroup_spec.go:83 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/da438f6535294278.
Report an issue: GitHub.