Terraform Import for Existing Resources
Import recreated RDS instance—brief outage during wrong resource address. This post is about making terraform import for existing resources boring in the best way — predictable under load, auditable under review, and reversible under stress.
What broke first on dashboards
Import recreated RDS instance—brief outage during wrong resource address.
On-call sees green infrastructure metrics while business KPIs diverge — classic sign the gate is not on the critical path.
Root cause — not the obvious answer
Root cause tied to import without plan review—unintended destroys in apply.
terraform import was treated as a one-time setup task instead of an operational contract with owners and SLOs.
Fix path we kept
Move terraform import into the promote path with explicit failure semantics. Add partition-level coverage, not sample-only checks.
Add CI enforcement so misconfigurations cannot merge.
Reference configuration
# terraform-import-existing — plan-time guard
resource "null_resource" "example" {
triggers = {
validated = var.environment != "prod" || var.approved
}
}
Day-two ownership
Assign a named owner team, review thresholds quarterly, and rehearse rollback.
New hires should execute a safe canary using only the runbook within their first week.
What to do this week
If you only do one thing this week: put terraform import on the critical path for one tier-1 workflow and measure what it catches.
Plan review discipline
Every infrastructure PR gets a speculative plan comment, cost delta when available, and policy check output. Reviewers approve the plan — not just the HCL diff. Destroy operations require explicit approval workflow outside normal merge paths.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Operating terraform import at scale
After the first successful deploy of terraform import for existing resources, most incidents trace to assumptions that stopped being true: traffic doubled, schemas drifted, or credentials rotated without updating consumers. Schedule a quarterly review of terraform import settings with the on-call rotation — not only the primary author.
Handoff to adjacent teams
Terraform pipelines touch ingestion, serving, and finance. Document interfaces where terraform import gates hand off to downstream owners so failures are not bounced without context.
Further reading
- https://developer.hashicorp.com/terraform/docs
- https://developer.hashicorp.com/terraform/language/tests
Frequently asked questions
When should teams prioritize Terraform Import for Existing Resources?
When bringing existing cloud resources under IaC.
What is the most common mistake with terraform import?
Import without plan review—unintended destroys in apply.
Can engineers run apply locally?
Discourage for shared workspaces — CI with plan comments, OIDC, and policy gates. Local plan is fine; local apply without locking is how duplicate VPCs happen.
How do module tests differ from integration tests?
Module tests assert outputs and resource shapes with mock providers; integration tests apply to ephemeral accounts. Both belong in the publish pipeline.
Hiring a senior Android / Flutter engineer?
I architect and ship production mobile software — Kotlin, Jetpack Compose, Flutter — for robotics, EV infrastructure, fintech, and real-time systems. Open to remote roles in Europe and the US.
Get in touch →