This CLI tool is used to orchestrate Terraform Cloud runs. Its goal is not to cover the entire administation of Terraform Cloud, but instead to solve a very simple workflow.
That workflow is to trigger common actions against workspaces by referencing tags only.
For example, I would like to create a destroy run on all workspace that match the tag ‘demo’, or I would like to cancel all runs on workspaces that match the tags ‘dev’.
Required environment variables
|TFC_ORGANIZATION||The name of your Terraform Cloud organization|
|TFC_TEAM_TOKEN||Terraform Cloud team token|
List all workspaces that match the tag
$ tfctl search -t test Searching organization: devopstower tfc-aws-network-dev tfc-aws-virtual-machine-dev tfc-aws-virtual-machine-prod tfc-aws-network-prod
Run a plan on all workspaces that match the tag
$ tfctl plan -t test Searching organization: devopstower Targeting the following workspaces [tfc-aws-network-dev] Plan only started: ws-BvDUwoSB4cELmfmc - run-pt5NodM5GTckfMor
Run a destroy on all workspaces that match the tag
$ tfctl destroy -t test Searching organization: devopstower Targeting the following workspaces [tfc-aws-network-dev] Destroy run started: ws-BvDUwoSB4cELmfmc - run-kF62JTa21eqQUdjt
Cancel (or discard) all runs on all workspaces that match both tags
$ tfctl cancel -t azure,demo Searching organization: devopstower Targeting the following workspaces [tfc-azure-webapp] Run cancelled: run-Z7kVEntjzwz3ddMw Run discarded: run-KUyRJxwJE5fWxEWX
$ tfctl --help Usage: tfctl [command] Available Commands: apply Start an apply run, this run will automatically apply. cancel Cancel all run on any workspace that matches the supplied tag. completion Generate the autocompletion script for the specified shell destroy Start a destroy run, auto-apply disable by default. help Help about any command plan Start a plan only run, auto-apply disable by default. search List workspaces that match the supplied tags.
go build -o tfctl .
- Add support for user customizatible API endpoints for use with private TFE instance.