Terraform Plan Narration — Reading and Explaining Output
Learn to read and narrate terraform plan output in English.
0 / 14 completed
1 / 14
In terraform plan output, what does the symbol '+' before a resource indicate?
In terraform plan output, '+' means the resource will be created. '-' means destroyed, '~' means updated in-place, and '-/+' means destroyed and recreated.
2 / 14
What does 'forces replacement' mean in a terraform plan?
'Forces replacement' (shown as '-/+') means the attribute change requires destroying and recreating the resource — not an in-place update. This can cause downtime.
3 / 14
What does '(known after apply)' mean in terraform plan output?
'(known after apply)' means the value is computed by the cloud provider during resource creation (e.g., a generated ID or IP address) and cannot be predicted at plan time.
4 / 14
What is the meaning of '0 to add, 2 to change, 0 to destroy' in a terraform plan summary?
The plan summary shows: resources to add (create), to change (update in-place), and to destroy. '0, 2, 0' means 2 resources will be updated with no additions or deletions.
5 / 14
How should you narrate a Terraform plan that destroys a production database?
Destructive changes to production resources must be clearly narrated with the impact: 'destroy', 'production', 'destructive change', 'data loss risk', and a recommendation for careful review.
6 / 14
Alex from the Infrastructure team just posted this Terraform plan output to the code review channel:
`+ aws_instance {
ami = "$(terratest_data.latest_amazon_linux.ami_id)"
instance_type = "t2.micro"
tags = {
Name = "web-server-01"
}
}
(known after apply)
The `+` symbol in the output signifies that a new resource is being created – in this case, an AWS EC2 instance. The (known after apply) tag indicates that Terraform will modify the state to reflect this newly created instance once the 'apply' command executes. It's important to understand that Terraform plans describe *what* will happen, not *how* it happens – dynamic values are part of that process.
7 / 14
Sarah is explaining a Terraform plan to a junior developer. She says, 'The `forces replacement` flag means Terraform will automatically delete the existing resource and create a new one, even if the configuration hasn't changed.' Is Sarah's explanation correct?
The forces replacement flag in a Terraform plan is a powerful tool used when significant changes to a resource's configuration are detected. It instructs Terraform to *replace* the existing resource with a new one that matches the updated definition. This is crucial for scenarios where subtle differences can cause update failures, and a full recreation ensures consistency – however, it should be used judiciously as it introduces downtime.
8 / 14
David writes the following description for a Terraform plan that updates an S3 bucket policy:
'This plan will modify the existing S3 bucket policy to grant read access to all users. The changes are reflected in the (known after apply) section.' What is the primary purpose of including this (known after apply) information in a Terraform plan description?
The (known after apply) section in a Terraform plan description is designed to communicate the *result* of applying the plan. It's a concise summary for stakeholders—like developers and operations—to understand what changes will be visible after the infrastructure has been updated. This helps manage expectations and facilitates communication about the impact of the code.
9 / 14
Mark from Security just commented on a Terraform plan draft for the new web server deployment. He points out this section of the output: `+ aws_instance {
ami = "$(terratest_data.latest_amazon_linux.ami_id)"
instance_type = "t2.micro"
tags…`. What does the '+' symbol *primarily* indicate in this context?
The '+' symbol in Terraform plan output signifies that a resource is being *created*—Terraform doesn't automatically update existing resources unless explicitly instructed to do so. This is crucial for understanding whether a change is adding new infrastructure or modifying what's already present. Misinterpreting this can lead to unexpected deployments and potential disruptions, particularly in production environments.
10 / 14
Liam, a Senior DevOps Engineer, is reviewing a Terraform plan update for a Kubernetes cluster. The output includes `forces replacement: true` alongside a resource block. What does this flag *most accurately* mean in this scenario?
The `forces replacement: true` flag typically arises when Terraform encounters situations where direct configuration changes are insufficient to achieve the desired result. This often happens when interacting with cloud providers that require a full infrastructure rebuild for certain modifications (like updating an AMI or network settings). It's not simply about configuration differences; it's about the provider's internal requirements.
11 / 14
Chloe is drafting a PR description for a Terraform plan that updates an S3 bucket policy. The plan output includes `(known after apply)`. What does this phrase *primarily* convey to the reviewer?
`(known after apply)` is a key indicator that the Terraform state file has been updated to reflect the *actual* configuration of the resource *after* the `apply` command completes. This means that any subsequent queries or operations will use this new state, emphasizing that the plan's output only represents the state at the time of generation, not necessarily the final result.
12 / 14
Emily is creating a Slack message to explain a Terraform plan that will *delete* a production database server. What's the *most critical* piece of information she should highlight in her explanation to minimize risk and ensure understanding?
When narrating a plan that *destroys* a production resource, emphasizing data backup is paramount. This directly addresses the biggest risk – data loss – and demonstrates responsible infrastructure management. While the other options are relevant considerations (automation, rollback, versioning), they don't mitigate the fundamental concern of irreversible deletion without prior safeguarding.
13 / 14
During a code review, Ben shares this Terraform plan output: `+ aws_s3_bucket {
name = "my-unique-bucket"
lifecycle {
rule {
event = "expiry"
action = { delete_objects = true }
}
}
}`. What does the `lifecycle` block, combined with the `delete_objects = true` action, *primarily* indicate about the plan's intended behavior?
The `lifecycle` block combined with `delete_objects = true` demonstrates an automated policy. This means Terraform will *automatically* delete objects in the S3 bucket after a specified duration (defined by the 'event' parameter), rather than requiring manual intervention. A common misconception is that lifecycle rules are just metadata; this configuration triggers actual deletion.
14 / 14
Maria from the Development team posted this Terraform plan output to the Slack channel after a change:
+ aws_security_group {
name = "web-sg"
vpc_id = "vpc-12345678"
}
A developer asks her, 'What does the '+' symbol mean in this output?' Maria responds:
'It indicates that Terraform is creating a new resource.'
The '+' symbol in Terraform plan output indicates that Terraform is *creating* a new resource. It doesn't signify modification or deletion; those are indicated by other symbols or changes in the resource definition itself. This is fundamental to understanding how Terraform manages infrastructure.
What does this Terraform Operations exercise cover?
This exercise, "Terraform Plan Narration — Reading and Explaining Output", tests your understanding of terraform operations vocabulary and phrasing through 14 multiple-choice questions drawn from real workplace scenarios.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is completely free — no account, sign-up, or payment required.
How many questions does this exercise have?
This exercise has 14 questions. Each one presents a realistic sentence or scenario with multiple-choice options and an explanation once you answer.
What happens after I answer a question?
You'll see immediate feedback showing whether your answer was correct, along with a short explanation of why — then a button to move to the next question.
Can I retry the exercise if I get questions wrong?
Yes. Once you reach the results screen, click "Try again" to reset your answers and go through the exercise from the start as many times as you like.
Do I need to create an account to take this exercise?
No account is needed. Your answers are scored in your browser during the session — nothing is saved to a server, so you can jump straight in.
Is my progress saved if I leave the page?
No — progress within an exercise resets if you navigate away or reload. Each exercise is short enough to complete in a few minutes in one sitting.
Who is this Terraform Operations exercise for?
It's designed for IT professionals and learners who want to sound natural discussing terraform operations topics in English — useful for meetings, documentation, interviews, and day-to-day communication with English-speaking teams.
How is this different from reading a glossary or blog article?
Exercises like this one are active recall drills — you have to choose the correct term or phrasing yourself, which builds retention faster than passively reading a definition.
Where can I find more Terraform Operations exercises?
Browse the full Terraform Operations exercises hub for more practice, or explore other exercise categories covering vocabulary, grammar, interviews, and workplace communication.