ClickOps to Terraform Migration
We migrate your AWS or Azure infrastructure from ClickOps to Terraform IaC, discovering all existing resources, generating and cleaning up Terraform code, importing state, and setting up drift detection so every future change is a reviewed code change.
Problems we solve
- AWS or Azure infrastructure built entirely via Console, nobody knows what exists or why
- Attempts to write Terraform for existing resources create drift and state conflicts
- Fear of running terraform apply, last time it destroyed a resource group by accident
- Security groups and IAM policies cannot be version-reviewed before changes go live
- Duplicated environments: staging was "copied" from production manually 6 months ago
What's included
Our approach
- 01
Infrastructure discovery
We run Steampipe or AWS Config queries to produce a resource inventory. We identify which resources are safe to import, which need recreation, and which should be excluded from Terraform.
- 02
Code generation
Terraformer (AWS) or aztfexport (Azure) generates initial Terraform HCL from existing resources. The output is raw and needs review, but it gives a starting point for every discovered resource.
- 03
Code refinement
Generated code is cleaned up: magic strings replaced with variables, resources grouped into logical modules, naming conventions applied, and unnecessary attributes removed. This is the most labour-intensive phase.
- 04
State import
We run terraform import or use import blocks to bring existing resources into state. We verify the state matches reality with terraform plan, a clean plan (no changes) confirms a successful import.
- 05
Drift detection and CI
A scheduled GitHub Actions or Atlantis job runs terraform plan on a schedule and alerts on any drift between state and actual infrastructure. New resources must be created via Terraform only, ClickOps can be restricted by policy.
Tech stack
Results
We publish results only when a client has approved them. See how we publish case studies and a sample report.
FAQ
What is ClickOps and why should I stop doing it?
What is Terraformer?
What is drift in Terraform?
Will the migration break our running infrastructure?
How do we prevent ClickOps from happening again?
Related articles
Ready to get started?
Book a free technical consultation. No commitment, just an honest conversation about your goals.