feat: Add ignore_task_fleet_capacity_drifts to task_instance_fleet #41
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.
Issue
EMR Managed Scaling adjusts Task fleet capacity units as the cluster is running.
Terraform later detects drift and forces them back to the originally declared low
target_on_demand_capacity
/target_spot_capacity
, triggering unintended scale downs during terraform applies.Root causes
lifecycle.ignore_changes
must be a static list (cannot be conditionally used).Workaround
Provide two mutually exclusive
aws_emr_instance_fleet
resources.One with
lifecycle.ignore_changes
on the two capacity attributes selected via a boolean variable. When the ignore variant is active, EMR owns scaling and Terraform stops planning destructive reductions.This solution duplicates code and isn't elegant. Any other ideas?