Destroy Workspaces
You can perform specific operations against your workspace configuration. Similarly to provisioning a workspace, you can tear down the infrastructure state from a workspace without deleting the workspace itself. This guide walks you through how to create a Destroy pipeline to run the init, plan and destroy commands with OpenTofu or Terraform.
- Interactive Guide
- Step-by-Step
- YAML
Follow these instructions to provision a workspace within the Harness Visual Editor.
- In the Harness project pane, select Pipelines.
- Click + Create a Pipeline to set up a new pipeline.
- Click Add Stage and select Infrastructure from the Select Stage Type pane.
- Enter a stage name, optional description, and tag, then select Set Up Stage.
- On the Workspace tab, select an existing workspace or click + Create New Workspace to create one.
- Go to the Execution tab. Under Common Operations, select Destroy to configure the workspace destruction process.
- Select Use Strategy to automatically add
init,plan, anddestroysteps, or customize the pipeline by adding steps manually. - Click Save and then Run Pipeline to execute.
The plan-destroy step generates a Terraform plan. This Terraform plan is accessible to all the steps after the IaCM Terraform plan, and can be referenced using the expression <+pipeline.stages.STAGE_ID.spec.execution.steps.STEP_ID.output.outputVariables.parsedPlan>.
To destroy a workspace via YAML, use the template below. Replace bracketed placeholders as needed.
pipeline:
name: <<PIPELINE NAME>>
identifier: <<PIPELINE IDENTIFIER>>
projectIdentifier: <<PROJECT IDENTIFIER>>
orgIdentifier: <<ORG IDENTIFIER>>
tags: {}
stages:
- stage:
name: Destroy Stage
identifier: destroy_stage
type: IACM
spec:
workspace: <<WORKSPACE ID>>
platform:
os: Linux
arch: Amd64
runtime:
type: Cloud
spec: {}
execution:
steps:
- step:
type: IACMTerraformPlugin
name: init
identifier: init
spec:
command: init
timeout: 5m
- step:
type: IACMTerraformPlugin
name: plan
identifier: plandestroy
spec:
command: plan-destroy
description: plan destroy
- step:
type: IACMTerraformPlugin
name: destroy
identifier: destroy
spec:
command: destroy
description: destroy
timeout: 5m
tags: {}
Notice the three steps to execute your init, plan and destroy commands.
After the plan is created, view resources and Terraform outputs on the Resources tab. Check which resources will be added, modified, or removed.