You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fixes the EC2 DescribeInstanceTypes response so it includes the supported usage classes required by Karpenter and other AWS-compatible clients. Fixes#3346.
Type of change
Bug fix (fix:)
New feature (feat:)
Breaking change (feat!: or fix!:)
Docs / chore
AWS Compatibility
Floci previously omitted supportedUsageClasses from DescribeInstanceTypes. Karpenter 1.8.8 interprets the missing field as no compatible capacity types and rejects on-demand NodeClaims before CreateFleet; the same direct CreateFleet request succeeds. The catalog now returns on-demand and spot, and the query handler serializes both values using the AWS EC2 Query response shape.
The change covers m5.large, t4g.medium, and m6gd.large, the instance types exercised by the compatibility gate.
Changes
Add validated supportedUsageClasses data to the instance-type catalog, defaulting to on-demand and spot.
Serialize the list as <supportedUsageClasses><item>...</item></supportedUsageClasses> in DescribeInstanceTypes.
Add an SDK integration test asserting the values for representative amd64 and arm64 instance types.
Validation
./mvnw -q -DskipTests package
./mvnw -q -Dtest=Ec2IntegrationTest test
Checklist
./mvnw test passes locally (targeted EC2 integration test and package build pass; full suite not run)
Adds AWS-compatible supported usage classes to EC2 DescribeInstanceTypes.
Defaults catalog entries to on-demand and spot and validates the field.
Projects the values into instance-type response maps and serializes the EC2 Query XML list.
Adds AWS SDK compatibility coverage for representative amd64 and arm64 instance types.
Includes an unrelated Step Functions test-comment clarification with no behavioral effect.
The required greptile_confidence label could not be added because GitHub CLI authentication is unavailable.
Confidence Score: 5/5
The PR appears safe to merge with no outstanding correctness, compatibility, or repository-rule issues.
Catalog defaults survive YAML deserialization, every described instance type receives the projected values, the XML structure matches the AWS Query list shape, and SDK compatibility coverage verifies the response.
luiseterc
changed the title
ec2: include supported usage classes in DescribeInstanceTypes
fix(ec2): include supported usage classes in DescribeInstanceTypes
Sep 10, 2026
@hectorvent The current Build and Test failure is isolated to shard 3 and is unrelated to this EC2 PR. CloudTrailLogWriterBoundedRetryIntegrationTest.retryStateStaysBoundedAndDeliversRetainedPrefixAfterDestinationRecovery fails at line 85 because it expects events/0000.txt but receives events/1000.txt. The test retains 1,024 records across two S3 log objects, while the object names include random suffixes; deliveredRecords() concatenates records in S3 listing order and therefore assumes an ordering the keys do not guarantee. Shards 1, 2, and 4, native builds, compatibility tests, and repository checks all pass. This looks like a CloudTrail test-ordering flake from the existing implementation in #3298, not a regression from #3347.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the EC2
DescribeInstanceTypesresponse so it includes the supported usage classes required by Karpenter and other AWS-compatible clients. Fixes #3346.Type of change
fix:)feat:)feat!:orfix!:)AWS Compatibility
Floci previously omitted
supportedUsageClassesfromDescribeInstanceTypes. Karpenter 1.8.8 interprets the missing field as no compatible capacity types and rejects on-demand NodeClaims beforeCreateFleet; the same directCreateFleetrequest succeeds. The catalog now returnson-demandandspot, and the query handler serializes both values using the AWS EC2 Query response shape.The change covers
m5.large,t4g.medium, andm6gd.large, the instance types exercised by the compatibility gate.Changes
supportedUsageClassesdata to the instance-type catalog, defaulting toon-demandandspot.<supportedUsageClasses><item>...</item></supportedUsageClasses>inDescribeInstanceTypes.Validation
./mvnw -q -DskipTests package./mvnw -q -Dtest=Ec2IntegrationTest testChecklist
./mvnw testpasses locally (targeted EC2 integration test and package build pass; full suite not run)