Skip to main content

atmos terraform destroy

Use this command to destroy Terraform-managed infrastructure for an Atmos component in a stack. This operation removes all resources managed by the component.

atmos terraform destroy --help

Usage

Execute the terraform destroy command like this:

atmos terraform destroy <component> -s <stack> [options]

This command creates a plan to destroy all resources managed by the given configuration and state, and then applies that plan.

Atmos Enhancements

Atmos enhances the destroy command with:

  • Automatic terraform init before destroying
  • Workspace selection and management
  • Automatic variable file generation and passing
  • Backend configuration
  • Component validation and locking support

Configuration

Configure default behavior for terraform destroy in your atmos.yaml:

components:
terraform:
# Auto-generate backend configuration
auto_generate_backend_file: true

These settings can also be controlled via environment variables:

export ATMOS_COMPONENTS_TERRAFORM_AUTO_GENERATE_BACKEND_FILE=true

Examples

Basic Destroy

# Destroy a component in a stack (will prompt for confirmation)
atmos terraform destroy vpc -s dev

Auto-Approve Destroy

# Destroy without confirmation prompt (use with caution!)
atmos terraform destroy vpc -s dev -auto-approve

Targeted Destroy

# Destroy specific resources only
atmos terraform destroy vpc -s dev -target=aws_instance.web

Graph-backed Bulk Destroy

Run destroys for multiple components through the Terraform dependency graph:

# Destroy every Terraform component, with dependents before dependencies
atmos terraform destroy --all -s dev

# Destroy only selected components
atmos terraform destroy --components eks/apps,eks/cluster,vpc -s dev

Destroy reverses the dependency graph so dependents are destroyed before the components they depend on. For example, an application component is destroyed before its cluster, and the cluster is destroyed before the VPC.

Independent destroy nodes can run concurrently when --max-concurrency is greater than 1. Concurrent destroy requires non-interactive approval with -auto-approve.

atmos terraform destroy --all -s dev --max-concurrency 2 -auto-approve

Use --failure-mode keep-going to continue independent graph branches after one component fails. The default is fail-fast.

Arguments

component (required)

Atmos component name.

Flags

--stack / -s (required)

Atmos stack name where the component is defined.

--skip-init (optional)

Skip running terraform init before executing the command.

atmos terraform destroy vpc -s dev --skip-init
--dry-run (optional)

Show what would be executed without actually running the command.

atmos terraform destroy vpc -s dev --dry-run

Native Terraform Flags

-auto-approve

Skip interactive approval before destroying.

atmos terraform destroy vpc -s dev -auto-approve
warning

Use -auto-approve with extreme caution, especially in production environments.

-target=RESOURCE

Destroy only the specified resource. Can be used multiple times.

atmos terraform destroy vpc -s dev -target=aws_instance.web -target=aws_instance.db
-parallelism=N

Limit the number of concurrent operations (default: 10).

atmos terraform destroy vpc -s dev -parallelism=5