kubernetes/kops · error
unsupported architecture for instance type %q: %v
Error message
unsupported architecture for instance type %q: %v
What it means
MachineArchitecture iterates the EC2 SupportedArchitectures list and only maps x86_64 and arm64; if none of the returned architectures are supported it collects them and returns this error listing the unsupported values.
Source
Thrown at upup/pkg/fi/cloudup/new_cluster.go:1767
if err != nil {
return "", fmt.Errorf("error finding instance info for instance type %q: %w", machineType, err)
}
if info.ProcessorInfo == nil || len(info.ProcessorInfo.SupportedArchitectures) == 0 {
return "", fmt.Errorf("unable to determine architecture info for instance type %q", machineType)
}
var unsupported []ec2types.ArchitectureType
for _, arch := range info.ProcessorInfo.SupportedArchitectures {
// Return the first found supported architecture, in order of popularity
switch arch {
case ec2types.ArchitectureTypeX8664:
return architectures.ArchitectureAmd64, nil
case ec2types.ArchitectureTypeArm64:
return architectures.ArchitectureArm64, nil
default:
unsupported = append(unsupported, arch)
}
}
return "", fmt.Errorf("unsupported architecture for instance type %q: %v", machineType, unsupported)
default:
// No other clouds are known to support any other architectures at this time
return architectures.ArchitectureAmd64, nil
}
}
// discoveryUniverseID returns the universe ID for the cluster's discovery service,
// creating a new discovery CA if necessary.
func discoveryUniverseID(ctx context.Context, keystore fi.Keystore) (string, error) {
keyset, err := keystore.FindKeyset(ctx, fi.DiscoveryCAID)
if err != nil {
return "", fmt.Errorf("error finding discovery CA: %w", err)
}
if keyset == nil || keyset.Primary == nil || keyset.Primary.Certificate == nil {
subject := pkix.Name{
CommonName: fi.DiscoveryCAID,
}View on GitHub (pinned to 4c8573c808)
Solutions
- Pick an x86_64 or arm64 instance type (t3/m5 for amd64, m6g/c7g for arm64)
- Upgrade kops so newly introduced EC2 architectures are recognized
Example fix
// before --instance-type=<i386-only-type> // after --instance-type=m6g.large
Defensive patterns
Strategy: validation
Validate before calling
for _, arch := range processorInfo.SupportedArchitectures {
if arch != ec2types.ArchitectureTypeX8664 && arch != ec2types.ArchitectureTypeArm64 {
return fmt.Errorf("instance type arch %s unsupported by kops", arch)
}
} Prevention
- Use x86_64 or arm64 instance types only
- Keep kops current when AWS adds architectures
When it happens
Trigger: Selecting an instance type whose ProcessorInfo.SupportedArchitectures contains only architectures other than x8664/arm64, e.g. i386 or future arch types returned by the EC2 API.
Common situations: Legacy/obscure instance types; AWS introducing a new architecture not yet handled by the installed kops version.
Related errors
- failed to build ephemeral devices: %w
- could not find a suitable supported instance type for the in
- error checking if instance type %q is supported in region %q
- describing instance type %q in region %q: %w
- instance type %q not found in region %q
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/2bda6a05798e44eb.
Report an issue: GitHub.