Bird
Raised Fist0
Terraformcloud~5 mins

Terraform taint and untaint (deprecated) - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does the terraform taint command do?
It marks a specific resource as needing to be destroyed and recreated on the next terraform apply. This forces Terraform to replace the resource.
Click to reveal answer
beginner
What is the purpose of terraform untaint?
It removes the 'tainted' state from a resource, so Terraform will no longer destroy and recreate it on the next apply.
Click to reveal answer
intermediate
Why are terraform taint and untaint considered deprecated?
Because Terraform now recommends using the terraform apply -replace option to replace resources, which is more explicit and easier to manage.
Click to reveal answer
intermediate
How would you replace a resource without using terraform taint?
Use terraform apply -replace=resource_address to mark the resource for replacement during the apply.
Click to reveal answer
beginner
What happens if you run terraform taint on a resource and then run terraform apply?
Terraform will destroy the tainted resource and create a new one to replace it during the apply process.
Click to reveal answer
What does terraform taint do to a resource?
ADeletes it immediately
BPrevents any changes
CMarks it for replacement on next apply
DBacks up the resource state
Which command removes the tainted state from a resource?
Aterraform untaint
Bterraform remove
Cterraform clean
Dterraform reset
Why should you avoid using terraform taint now?
AIt is deprecated in favor of <code>terraform apply -replace</code>
BIt deletes your entire infrastructure
CIt is slower than other commands
DIt requires manual state file editing
What is the effect of running terraform apply -replace=resource_address?
AIt updates the resource in place
BIt replaces the resource during apply
CIt deletes the resource without replacement
DIt ignores the resource
If a resource is tainted, what will happen on the next terraform apply?
ATerraform will fail the apply
BTerraform will skip the resource
CTerraform will update the resource without replacement
DTerraform will recreate the resource
Explain what terraform taint and terraform untaint commands do and why they are deprecated.
Think about how Terraform manages resource replacement now.
You got /4 concepts.
    Describe how you would replace a resource in Terraform without using the deprecated taint command.
    Focus on the modern recommended command.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the terraform taint command do to a resource?
      easy
      A. Marks the resource to be recreated on the next apply
      B. Deletes the resource immediately
      C. Prevents the resource from being changed
      D. Updates the resource without recreation

      Solution

      1. Step 1: Understand the purpose of terraform taint

        This command marks a resource as needing recreation on the next terraform apply.
      2. Step 2: Compare with other options

        It does not delete immediately, prevent changes, or update without recreation.
      3. Final Answer:

        Marks the resource to be recreated on the next apply -> Option A
      4. Quick Check:

        terraform taint = mark for recreation [OK]
      Hint: Taint means mark resource for rebuild next apply [OK]
      Common Mistakes:
      • Thinking taint deletes resource immediately
      • Confusing taint with preventing changes
      • Assuming taint updates resource in place
      2. Which of the following is the correct syntax to unmark a resource previously tainted in Terraform?
      easy
      A. terraform remove-taint <resource_name>
      B. terraform clean <resource_name>
      C. terraform untaint <resource_name>
      D. terraform reset <resource_name>

      Solution

      1. Step 1: Recall the correct command for removing taint

        The command to remove the taint mark is terraform untaint followed by the resource name.
      2. Step 2: Verify other options

        Other commands like remove-taint, clean, or reset do not exist in Terraform.
      3. Final Answer:

        terraform untaint <resource_name> -> Option C
      4. Quick Check:

        Untaint command syntax = terraform untaint [OK]
      Hint: Untaint command is terraform untaint resource_name [OK]
      Common Mistakes:
      • Using non-existent commands like remove-taint
      • Confusing untaint with terraform apply
      • Omitting the resource name
      3. Given the following commands executed in order:
      terraform taint aws_instance.example
      terraform apply
      What will happen to the resource aws_instance.example?
      medium
      A. Terraform will throw an error
      B. The resource will be destroyed and not recreated
      C. The resource will remain unchanged
      D. The resource will be recreated during apply

      Solution

      1. Step 1: Understand effect of taint before apply

        Taint marks the resource to be destroyed and recreated on next apply.
      2. Step 2: Apply triggers recreation

        When terraform apply runs, it destroys the tainted resource and creates a new one.
      3. Final Answer:

        The resource will be recreated during apply -> Option D
      4. Quick Check:

        taint + apply = recreate resource [OK]
      Hint: Taint then apply means resource rebuild [OK]
      Common Mistakes:
      • Thinking resource is only destroyed without recreation
      • Assuming no change happens after taint
      • Expecting an error from taint command
      4. You ran terraform taint aws_instance.example by mistake. Which command fixes this so the resource is not recreated on next apply?
      medium
      A. terraform untaint aws_instance.example
      B. terraform destroy aws_instance.example
      C. terraform refresh aws_instance.example
      D. terraform plan -refresh=false

      Solution

      1. Step 1: Identify how to remove taint

        The terraform untaint command removes the taint mark, preventing recreation.
      2. Step 2: Check other commands

        destroy deletes resource, refresh updates state, and plan -refresh=false skips state refresh but does not remove taint.
      3. Final Answer:

        terraform untaint aws_instance.example -> Option A
      4. Quick Check:

        Untaint removes taint mark [OK]
      Hint: Use untaint to cancel taint and keep resource [OK]
      Common Mistakes:
      • Using destroy instead of untaint
      • Confusing refresh with untaint
      • Trying to fix with plan options
      5. Since terraform taint and terraform untaint are deprecated, which command replaces their functionality to recreate a resource?
      hard
      A. terraform destroy -replace=<resource_name>
      B. terraform apply -replace=<resource_name>
      C. terraform refresh -replace=<resource_name>
      D. terraform plan -replace=<resource_name>

      Solution

      1. Step 1: Understand deprecation and replacement

        Terraform deprecated taint/untaint and recommends terraform apply -replace to recreate resources.
      2. Step 2: Verify other options

        refresh, destroy, and plan do not support -replace to recreate resources.
      3. Final Answer:

        terraform apply -replace=<resource_name> -> Option B
      4. Quick Check:

        Replace flag with apply recreates resource [OK]
      Hint: Use apply -replace to recreate resource now [OK]
      Common Mistakes:
      • Trying to use -replace with refresh or destroy
      • Not knowing taint/untaint are deprecated
      • Confusing plan with apply for replacement