in internal/deployers/eksapi/node.go [691:710]
func (m *nodeManager) getValidInstanceTypes(desiredInstanceTypes []string) ([]string, error) {
var validInstanceTypes []string
for _, instanceType := range desiredInstanceTypes {
ec2InstanceType := ec2types.InstanceType(instanceType)
_, err := m.clients.EC2().DescribeInstanceTypes(context.TODO(), &ec2.DescribeInstanceTypesInput{
InstanceTypes: []ec2types.InstanceType{ec2InstanceType},
})
if err != nil {
var apierr smithy.APIError
if errors.As(err, &apierr) && apierr.ErrorCode() == "InvalidInstanceType" {
klog.Infof("Eliminating instance type %s as an option", instanceType)
} else {
return nil, fmt.Errorf("failed to describe instance type: %s: %v", instanceType, err)
}
} else {
validInstanceTypes = append(validInstanceTypes, instanceType)
}
}
return validInstanceTypes, nil
}