feat: Make snapshotID optional for volumeInitializationRate when AMI is selected via amiSelectorTerms #8486
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.
Fixes #8389
Description
This PR implements the enhancement requested in #8389 to make
snapshotIDoptional forvolumeInitializationRatewhen AMI is selected viaamiSelectorTerms. This enables users to benefit from faster EBS volume initialization while using dynamic AMI selection, reducing operational overhead.Currently, Karpenter requires an explicit
snapshotIDwhen usingvolumeInitializationRatein block device mappings. This prevents dynamic AMI selection viaamiSelectorTermswhile still benefiting from faster EBS volume initialization, creating operational overhead for users who want to manage AMIs dynamically.Solution
Updated the CEL validation rule to allow
volumeInitializationRatewithout explicitsnapshotIDwhen the EC2NodeClass hasamiSelectorTermsconfigured. When AMIs are selected dynamically, they contain block device mapping information with snapshots that AWS can use for volume initialization.How was this change tested?
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.