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 is drift detection in the context of CI/CD?
Drift detection is the process of identifying differences between the desired infrastructure state defined in code and the actual state running in the cloud or environment.
Click to reveal answer
beginner
Why is drift detection important in Terraform-based CI/CD pipelines?
It ensures that the infrastructure matches the code, preventing unexpected changes or errors caused by manual updates or external modifications.
Click to reveal answer
beginner
Which Terraform command is commonly used to detect drift?
The command terraform plan compares the current infrastructure state with the configuration files and shows any differences.
Click to reveal answer
intermediate
How can drift detection be automated in a CI/CD pipeline?
By running terraform plan as part of the pipeline and failing the build if unexpected changes are detected.
Click to reveal answer
beginner
What is a common real-life analogy for drift detection?
It's like checking your house keys against a checklist before leaving to make sure nothing is missing or changed unexpectedly.
Click to reveal answer
What does Terraform's terraform plan command do in drift detection?
AShows differences between code and actual infrastructure
BDeletes all infrastructure
CDeploys new infrastructure without checking
DOnly formats the code files
✗ Incorrect
terraform plan compares the current infrastructure state with the configuration and shows any differences, helping detect drift.
Why should drift detection be part of a CI/CD pipeline?
ATo send notifications to users
BTo speed up code compilation
CTo backup code files
DTo automatically detect and prevent unexpected infrastructure changes
✗ Incorrect
Including drift detection in CI/CD helps catch infrastructure changes that don't match the code, avoiding errors.
What happens if drift is detected during a CI/CD pipeline run?
AThe pipeline can fail to alert the team
BThe pipeline ignores it and continues
CThe infrastructure is deleted
DThe code is automatically changed
✗ Incorrect
Failing the pipeline on drift detection alerts the team to fix the mismatch before deployment.
Which of these is NOT a cause of drift?
AManual changes made directly in the cloud console
BConfiguration files left unchanged
CExternal scripts modifying resources
DInfrastructure as code updates
✗ Incorrect
Unchanged configuration files do not cause drift; drift happens when actual state differs from code.
What is a simple way to fix drift once detected?
AIgnore the drift and continue
BDelete all resources manually
CRun <code>terraform apply</code> to align infrastructure with code
DRestart the CI/CD server
✗ Incorrect
Applying the Terraform configuration updates the infrastructure to match the code, fixing drift.
Explain what drift detection is and why it matters in a Terraform CI/CD pipeline.
Think about how code and real infrastructure can get out of sync.
You got /3 concepts.
Describe how you would automate drift detection in a CI/CD pipeline using Terraform commands.
Consider what commands show differences and how the pipeline should respond.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of drift detection in a Terraform CI/CD pipeline?
easy
A. To find differences between the Terraform code and the actual infrastructure
B. To speed up the deployment process by skipping validation
C. To automatically delete unused resources without approval
D. To generate documentation for the infrastructure
Solution
Step 1: Understand drift detection concept
Drift detection compares the current real infrastructure state with the Terraform code to find differences.
Step 2: Identify the purpose in CI/CD
In CI/CD, drift detection helps catch unexpected changes before applying new updates.
Final Answer:
To find differences between the Terraform code and the actual infrastructure -> Option A
Quick Check:
Drift detection = find differences [OK]
Hint: Drift detection = spot differences before apply [OK]
Common Mistakes:
Thinking drift detection speeds deployment
Assuming it deletes resources automatically
Confusing it with documentation generation
2. Which Terraform command is commonly used in CI/CD pipelines to detect drift before applying changes?
easy
A. terraform plan
B. terraform apply
C. terraform init
D. terraform destroy
Solution
Step 1: Recall Terraform commands
terraform plan shows the changes Terraform will make without applying them.
Step 2: Identify drift detection command
terraform plan detects differences (drift) between code and real infrastructure before apply.
Final Answer:
terraform plan -> Option A
Quick Check:
Detect drift = terraform plan [OK]
Hint: Use terraform plan to preview changes [OK]
Common Mistakes:
Using terraform apply which changes infrastructure
Confusing terraform init with drift detection
Using terraform destroy which deletes resources
3. Given the following Terraform plan output snippet in a CI/CD pipeline:
# aws_instance.example will be updated in-place
~ tags = {
- "Environment" = "dev"
+ "Environment" = "prod"
}
What does this output indicate about drift?
medium
A. Terraform will ignore the tag change
B. The instance will be destroyed and recreated
C. No drift is detected; tags remain unchanged
D. The tag "Environment" has drifted from "dev" to "prod" and will be updated
Solution
Step 1: Analyze the plan output
The '~' symbol means in-place update. The tag "Environment" changes from "dev" to "prod".
Step 2: Understand drift implication
This shows drift: the real infrastructure tag differs from code and will be updated.
Final Answer:
The tag "Environment" has drifted from "dev" to "prod" and will be updated -> Option D
Quick Check:
~ means update tag from dev to prod [OK]
Hint: Look for ~ symbol to spot in-place updates [OK]
Common Mistakes:
Thinking resource will be destroyed instead of updated
Ignoring tag changes as no drift
Assuming Terraform ignores tag differences
4. You run terraform plan in your CI/CD pipeline but it does not detect drift even though manual changes were made outside Terraform. What is the most likely cause?
medium
A. Terraform automatically ignores manual changes
B. You forgot to run terraform apply first
C. Terraform state file is outdated or corrupted
D. The provider plugin is missing
Solution
Step 1: Understand drift detection dependency
Terraform relies on the state file to compare real infrastructure with code.
Step 2: Identify cause of missed drift
If the state file is outdated or corrupted, Terraform cannot detect manual changes (drift).
Final Answer:
Terraform state file is outdated or corrupted -> Option C
Quick Check:
State file outdated = missed drift detection [OK]
Hint: Check state file freshness if drift not detected [OK]
Common Mistakes:
Assuming terraform apply affects drift detection
Believing Terraform ignores manual changes by design
5. In a CI/CD pipeline, you want to automatically detect drift and fail the pipeline if any drift is found before applying changes. Which approach best achieves this?
hard
A. Run terraform apply directly and rely on errors to detect drift
B. Run terraform plan and parse its output to detect changes, then fail if changes exist
C. Skip drift detection and always apply changes
D. Manually check infrastructure outside the pipeline
Solution
Step 1: Understand CI/CD drift detection goal
The goal is to detect drift and fail early before applying changes.
Step 2: Choose correct command and method
terraform plan shows drift without applying; parsing its output allows pipeline to fail if drift exists.
Step 3: Evaluate other options
Applying directly risks unwanted changes; manual checks are slow; skipping detection is unsafe.
Final Answer:
Run terraform plan and parse its output to detect changes, then fail if changes exist -> Option B
Quick Check:
Plan + parse output = fail on drift [OK]
Hint: Use terraform plan output to gate pipeline success [OK]