ICE cache bin-packing validation fix #1127
Merged
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.
1. Issue, if available:
#1126
2. Description of changes:
Fixes an issue where if an instance type offering is found to be unavailable and therefore placed in the ICE cache, the binpacking logic could still use the instance type in the packing.
The bug is occurring in the bin packing's packable validation logic. Packables (Instance Type and Offering) are validated by zone and capacity type separately even though an offering is the tuple of (zone, capacity type). This change validates an offering and removes the independent zone and capacity-type validation.
The issue was originally found while doing load tests where I ran into an Insufficient Capacity Error (ICE). After the ICE, Karpenter behaved very strangely, by throwing "Security Group does not belong to the same network as Subnet". This error is because of the overrides bug described in the issue linked.
3. How was this change tested?
4. Does this change impact docs?
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.