# 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.

_\[Video: atmos terraform destroy]_

## Usage

Execute the `terraform destroy` command like this:

```shell
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.

:::info 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`:

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

These settings can also be controlled via environment variables:

```shell
export ATMOS_COMPONENTS_TERRAFORM_AUTO_GENERATE_BACKEND_FILE=true
```

## Examples

### Basic Destroy

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

### Auto-Approve Destroy

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

### Targeted Destroy

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

## 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.
  ```shell
  atmos terraform destroy vpc -s dev --skip-init
  ```
- **`--dry-run` (optional)**

  Show what would be executed without actually running the command.
  ```shell
  atmos terraform destroy vpc -s dev --dry-run
  ```

## Native Terraform Flags

- **`-auto-approve`**

  Skip interactive approval before destroying.
  ```shell
  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.
  ```shell
  atmos terraform destroy vpc -s dev -target=aws_instance.web -target=aws_instance.db
  ```
- **`-parallelism=N`**

  Limit the number of concurrent operations (default: 10).
  ```shell
  atmos terraform destroy vpc -s dev -parallelism=5
  ```

## Related Commands

- [`atmos terraform plan`](/cli/commands/terraform/plan) - Generate execution plan
- [`atmos terraform apply`](/cli/commands/terraform/apply) - Apply changes
- [`atmos terraform init`](/cli/commands/terraform/init) - Initialize working directory
