Provision Workspaces
After you create a workspace, you can perform operations against the configuration, including provisioning. This guide walks you through how to create a provision pipeline to run the init, plan and apply command 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. 
If set to runtime input, you can specify the workspace at execution time..
- Go to the Execution tab. Under Common Operations, select Provision.
- Optionally, select Use Strategy to automatically add init,plan, andapplysteps, or customize the pipeline by adding steps manually.
- Click Save and then Run Pipeline to execute.
To provision 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: Provision Stage
        identifier: provision_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
              - step:
                  type: IACMTerraformPlugin
                  name: plan
                  identifier: plan
                  spec:
                    command: plan
              - step:
                  type: IACMTerraformPlugin
                  name: apply
                  identifier: apply
                  spec:
                    command: apply
        tags: {}
Notice the three steps to execute your init, plan and apply commands.
After the plan is created, view resources and Terraform outputs on the Resources tab. Check which resources will be added, modified, or removed.