| Field |
Value |
| Issuer |
HashiCorp |
| Exam Code |
TA-003 |
| Format |
Multiple-choice and multiple-select |
| Duration |
60 minutes |
| Passing Score |
~70% (HashiCorp does not publish exact threshold) |
| Cost |
$70.50 USD |
| Retake Policy |
Wait 24 hours between attempts |
| Terraform Version |
Terraform 1.x (check HashiCorp site for exact version) |
| Wiki Coverage |
~80% |
Exam Domains & Wiki Mapping
Understand Infrastructure as Code Concepts
| Objective |
Topic Pack |
Coverage |
| Explain what IaC is |
terraform |
✅ Full |
| Describe advantages of IaC patterns |
terraform, gitops |
✅ Full |
| Understand IaC vs configuration management vs provisioning |
terraform, ansible |
✅ Full |
| Explain declarative vs imperative approaches |
terraform |
✅ Full |
| Objective |
Topic Pack |
Coverage |
| Install Terraform and describe the plugin-based architecture |
terraform |
✅ Full |
| Describe the provider model and the role of providers |
terraform |
✅ Full |
| Write Terraform configuration using HCL |
terraform |
✅ Full |
| Understand Terraform resource types (resource, data, provider blocks) |
terraform |
✅ Full |
| Use variables, outputs, and locals |
terraform, terraform-deep-dive |
✅ Full |
| Understand variable types, defaults, validation, and sensitivity |
terraform-deep-dive |
✅ Full |
| Objective |
Topic Pack |
Coverage |
Understand the init command and provider installation |
terraform |
✅ Full |
Validate and format configuration (validate, fmt) |
terraform |
✅ Full |
Generate and review an execution plan (plan) |
terraform |
✅ Full |
Apply changes to infrastructure (apply) |
terraform |
✅ Full |
Destroy infrastructure (destroy) |
terraform |
✅ Full |
Understand terraform import for existing resources |
terraform-deep-dive |
✅ Full |
Use terraform taint and terraform untaint (deprecated in favor of -replace) |
terraform-deep-dive |
⚠️ Partial |
| Use workspaces to manage multiple environments |
terraform-deep-dive |
✅ Full |
| Objective |
Topic Pack |
Coverage |
| Describe the Terraform workflow (Write, Plan, Apply) |
terraform |
✅ Full |
Understand the role of init in the workflow |
terraform |
✅ Full |
| Understand plan output and change indicators (+, -, ~) |
terraform |
✅ Full |
| Describe GitOps workflows with Terraform |
gitops, terraform-deep-dive |
✅ Full |
| Understand collaborative workflows (VCS integration, PR-based) |
gitops |
⚠️ Partial |
Implement and Maintain State
| Objective |
Topic Pack |
Coverage |
Describe the default local backend and terraform.tfstate |
terraform-deep-dive |
✅ Full |
| Describe state locking and its importance |
terraform-deep-dive |
✅ Full |
| Handle backend configuration (S3, GCS, Azure, Consul, HCP) |
terraform-deep-dive |
✅ Full |
| Describe sensitive data in state and best practices |
terraform-deep-dive, secrets-management |
✅ Full |
Use terraform state subcommands (list, show, mv, rm, pull, push) |
terraform-deep-dive |
✅ Full |
| Understand state file structure and drift detection |
terraform-deep-dive |
✅ Full |
Read, Generate, and Modify Configuration
| Objective |
Topic Pack |
Coverage |
| Understand Terraform's type system (string, number, bool, list, map, object) |
terraform-deep-dive |
✅ Full |
| Create and use complex types (list of objects, maps) |
terraform-deep-dive |
✅ Full |
| Use built-in functions (lookup, merge, join, split, file, templatefile) |
terraform-deep-dive |
✅ Full |
| Use dynamic blocks for repeated nested configuration |
terraform-deep-dive |
✅ Full |
Use for_each and count for resource iteration |
terraform-deep-dive |
✅ Full |
Understand resource dependencies (implicit and explicit with depends_on) |
terraform |
✅ Full |
| Use provisioners as a last resort |
terraform-deep-dive |
⚠️ Partial |
Use terraform console for expression testing |
terraform |
✅ Full |
| Objective |
Topic Pack |
Coverage |
| Describe the benefits of HCP Terraform (remote state, runs, team mgmt) |
terraform-deep-dive |
⚠️ Partial |
| Understand remote execution and sentinel policies |
terraform-deep-dive |
❌ Gap |
| Understand workspace management in HCP Terraform |
terraform-deep-dive |
⚠️ Partial |
| Describe run triggers and VCS integration |
gitops |
⚠️ Partial |
| Understand the difference between HCP Terraform and Terraform Enterprise |
— |
❌ Gap |
Study Plan
Phase 1: Foundations (Week 1)
Goal: Solid understanding of Terraform basics, HCL syntax, and core workflow.
- Days 1–3: Core concepts and CLI
- Read: terraform — IaC concepts, HCL syntax, providers, resources
- Read: gitops — understand where Terraform fits in GitOps workflows
- Practice: Write a simple configuration (provider, resource, variable, output)
- Practice: Run full workflow:
init > plan > apply > destroy
-
Practice: Use terraform fmt, terraform validate, terraform console
-
Days 4–7: Variables, state, and modules
- Read: terraform-deep-dive — state management, backends, modules
- Practice: Configure a remote backend (S3 + DynamoDB for locking)
- Practice: Use
terraform state commands: list, show, mv, rm
- Practice: Create a reusable module, use it from another configuration
- Practice: Use
for_each and count to create multiple resources
Phase 2: Deep Dive (Week 2)
Goal: Advanced features, module patterns, and HCP Terraform awareness.
- Days 8–10: Advanced HCL and functions
- Read: terraform-deep-dive — dynamic blocks, complex types, functions
- Read: crossplane — understand alternatives (exam may compare)
- Practice: Use dynamic blocks for security group rules
- Practice: Use built-in functions:
lookup(), merge(), join(), file(), templatefile()
-
Practice: Create configurations with complex variable types (list of objects, nested maps)
-
Days 11–14: HCP Terraform and exam prep
- External: HashiCorp HCP Terraform documentation — remote runs, Sentinel, workspaces
- External: HashiCorp learn tutorials on HCP Terraform
- Review: Compare Terraform workspaces (CLI) vs HCP Terraform workspaces
- Review: Understand Sentinel policy-as-code (conceptual — you won't write policies)
- Practice: Take HashiCorp practice exam (available on their site)
Phase 3: Exam Simulation (Days 15–17)
Goal: Timed practice and gap remediation.
- Take 2–3 full-length practice exams
- Review every wrong answer and map to the specific domain
- Focus on conceptual questions about state, backends, and HCP Terraform
- Drill: given a code snippet, identify what
plan output will look like
- Drill: given a scenario, choose the right Terraform command
- Review:
terraform import workflow, terraform state mv use cases
- Review: module versioning constraints (pessimistic operator
~>)
Gap Analysis
| Gap |
Exam Weight |
Recommended External Resource |
| HCP Terraform remote execution and Sentinel policies |
Medium |
HashiCorp Learn — HCP Terraform tutorials |
| HCP Terraform vs Terraform Enterprise differences |
Low |
HashiCorp pricing and feature comparison page |
| Private module registries in HCP Terraform |
Low |
HCP Terraform private registry documentation |
| Provisioners in depth (local-exec, remote-exec, when = destroy) |
Low |
Terraform provisioners documentation (note: HashiCorp discourages their use) |
| VCS-driven workflows in HCP Terraform |
Low |
HCP Terraform VCS integration docs |
Exam-Day Strategy
Time Management
- ~57 questions in 60 minutes = ~1 min per question
- This is a fast-paced exam — don't overthink any single question
- Flag uncertain questions and review at the end
- Most questions are straightforward if you know the concepts
Question Triage
- Read the full question — look for keywords that map to specific commands or concepts
- "Which command..." questions: recall the exact CLI command and its purpose
- "What happens when..." questions: think through Terraform's behavior step by step
- Code snippet questions: trace through the HCL mentally, identify outputs or plan changes
- Scenario questions: identify the requirement (scale, collaborate, secure state) and match to feature
Common Traps
count vs for_each: count uses index (fragile), for_each uses map keys (stable)
terraform refresh is deprecated as a standalone command — it now runs as part of plan and apply
terraform taint is deprecated in favor of terraform apply -replace=<resource>
- Local state vs remote state: the exam tests understanding of why remote state matters (locking, sharing, security)
- Workspaces in CLI vs HCP Terraform — they work differently (CLI = separate state files, HCP = separate configurations)
- Sentinel is HCP Terraform / Enterprise only — not available in open-source Terraform
depends_on is explicit dependency — implicit dependency comes from resource references
Key Concepts to Memorize
- Terraform workflow: Write > Init > Plan > Apply
- Provider lock file:
.terraform.lock.hcl — committed to VCS
- State lock: prevents concurrent operations, DynamoDB for S3 backend
- Module sources: local (
./), registry (hashicorp/consul/aws), GitHub, S3
- Variable precedence: env vars < terraform.tfvars < *.auto.tfvars < -var flag < -var-file flag
terraform plan output symbols: + create, - destroy, ~ update in place, -/+ destroy then create
If You're Stuck
- Eliminate answers that reference non-existent commands or flags
- If a question mentions "collaboration" or "team," think HCP Terraform
- If a question mentions "policy enforcement," think Sentinel
- Trust your understanding of the core workflow — the exam favors practical knowledge
- Flag and move on — 60 minutes goes fast
Cross-References
Pages that link here