This small utility extracts terraform workspaces managed by the crossplane terraform provider.
Crossplane terraform workspaces are reconciled only at runtime or aka by the cluster.
However it is good practice to validate things beforehand. This utility extracts terraform resource from crossplane managed workspaces
which makes it possible to run things like terraform fmt
and terraform validate
beforehand.
brew tap doodlescheduling/tfxunpack
brew install tfxunpack
docker pull ghcr.io/doodlescheduling/tfxunpack:v0
Flag | Short | Env | Default | Description |
---|---|---|---|---|
--file |
-f |
FILE |
/dev/stdin |
Path to input |
--out |
-o |
OUTPUT |
/ |
Path to output directory. If not set it will create a folder called tfmodule in the current directory. |
--workers |
`` | WORKERS |
Number of CPU cores |
Number of workers to process the manifest |
--fail-fast |
`` | FAIL_FAST |
false |
Exit early if an error occurred |
--allow-failure |
`` | ALLOW_FAILURE |
false |
Do not exit > 0 if an error occurred |
This app works also great on CI, in fact this was the original reason why it was created.
name: tfxunpack
on:
- pull_request
jobs:
build:
strategy:
matrix:
cluster: [staging, production]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- run:
kustomize build ${{ matricx.cluster }} > out.yaml
- uses: docker://ghcr.io/doodlescheduling/tfxunpack:v0
env:
FILE: out.yaml
- uses: hashicorp/setup-terraform@v3
- name: Install terraform dependencies
run: |
cd tfmodule
terraform validate
- name: Validate terraform
run: |
terraform validate