What if you could tell your infrastructure exactly what to fix without lifting a finger?
Why Terraform taint and untaint (deprecated)? - Purpose & Use Cases
Start learning this pattern below
Jump into concepts and practice - no test required
Imagine you manage a big garden with many plants. One plant gets sick, so you want to remove it and plant a new one. Doing this by hand means digging up the sick plant carefully and planting a new seed, which takes time and effort.
Manually digging up and replacing plants is slow and can damage nearby plants. You might forget which plant was sick or accidentally remove a healthy one. This causes confusion and extra work.
Terraform's taint and untaint commands let you mark a resource as needing replacement or keep it safe without manual digging. This way, Terraform knows exactly what to replace or keep, making updates smooth and error-free.
terraform apply
# Manually delete resource outside Terraform
terraform applyterraform taint <resource> terraform apply terraform untaint <resource>
This lets you quickly and safely replace or preserve parts of your infrastructure without guesswork or manual errors.
When a server has a hidden problem, you can mark it as 'tainted' so Terraform replaces it on the next update, avoiding downtime or manual tracking.
Manual fixes are slow and risky.
Taint/untaint mark resources for replacement or preservation.
This makes infrastructure updates safer and easier.
Practice
terraform taint command do to a resource?Solution
Step 1: Understand the purpose of
This command marks a resource as needing recreation on the nextterraform taintterraform apply.Step 2: Compare with other options
It does not delete immediately, prevent changes, or update without recreation.Final Answer:
Marks the resource to be recreated on the next apply -> Option AQuick Check:
terraform taint = mark for recreation [OK]
- Thinking taint deletes resource immediately
- Confusing taint with preventing changes
- Assuming taint updates resource in place
Solution
Step 1: Recall the correct command for removing taint
The command to remove the taint mark isterraform untaintfollowed by the resource name.Step 2: Verify other options
Other commands likeremove-taint,clean, orresetdo not exist in Terraform.Final Answer:
terraform untaint <resource_name> -> Option CQuick Check:
Untaint command syntax = terraform untaint [OK]
- Using non-existent commands like remove-taint
- Confusing untaint with terraform apply
- Omitting the resource name
terraform taint aws_instance.exampleterraform applyWhat will happen to the resource
aws_instance.example?Solution
Step 1: Understand effect of taint before apply
Taint marks the resource to be destroyed and recreated on next apply.Step 2: Apply triggers recreation
Whenterraform applyruns, it destroys the tainted resource and creates a new one.Final Answer:
The resource will be recreated during apply -> Option DQuick Check:
taint + apply = recreate resource [OK]
- Thinking resource is only destroyed without recreation
- Assuming no change happens after taint
- Expecting an error from taint command
terraform taint aws_instance.example by mistake. Which command fixes this so the resource is not recreated on next apply?Solution
Step 1: Identify how to remove taint
Theterraform untaintcommand removes the taint mark, preventing recreation.Step 2: Check other commands
destroydeletes resource,refreshupdates state, andplan -refresh=falseskips state refresh but does not remove taint.Final Answer:
terraform untaint aws_instance.example -> Option AQuick Check:
Untaint removes taint mark [OK]
- Using destroy instead of untaint
- Confusing refresh with untaint
- Trying to fix with plan options
terraform taint and terraform untaint are deprecated, which command replaces their functionality to recreate a resource?Solution
Step 1: Understand deprecation and replacement
Terraform deprecated taint/untaint and recommendsterraform apply -replaceto recreate resources.Step 2: Verify other options
refresh,destroy, andplando not support-replaceto recreate resources.Final Answer:
terraform apply -replace=<resource_name> -> Option BQuick Check:
Replace flag with apply recreates resource [OK]
- Trying to use -replace with refresh or destroy
- Not knowing taint/untaint are deprecated
- Confusing plan with apply for replacement
