Skip to content

Commit e59534e

Browse files
committed
task: decrypt and use terraform data from generated-terraform branch
Part of #1631 [skip ci]
1 parent 1f2b84f commit e59534e

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

.github/workflows/provision-by-terraform.yml

+34-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ jobs:
2929
persist-credentials: false
3030

3131
- name: Checkout terraform data to a subdirectory
32+
working-directory: infra/terraform
3233
run: |
3334
git fetch --depth=1 origin generated-terraform
3435
git worktree add terraform-data generated-terraform
@@ -56,20 +57,52 @@ jobs:
5657
tfenv install
5758
tfenv use
5859
60+
- name: Install ansible-vault
61+
# The command pip3 install --user ansible==2.10.17 doesn't work as we have an old version
62+
# See https://docs.ansible.com/ansible/2.10/installation_guide/intro_installation.html#installing-devel-from-github-with-pip
63+
run: python3 -m pip install --user https://github.com/ansible/ansible/archive/refs/tags/v2.10.17.tar.gz
64+
5965
- name: Show tools versions
6066
run: |
6167
tfenv --version
6268
terraform -version
69+
ansible-vault --version
70+
71+
- name: Decrypt terraform files
72+
working-directory: infra/terraform
73+
env:
74+
# https://docs.github.com/en/actions/security-guides/encrypted-secrets#using-encrypted-secrets-in-a-workflow
75+
VAULT_PASSWORD: ${{ secrets.VAULT_PASSWORD }}
76+
run |
77+
echo -n "$VAULT_PASSWORD" >vault-pass.txt
78+
79+
for FILENAME in terraform.tfstate terraform.tfvars; do
80+
echo "Decrypting ${FILENAME}.enc to $FILENAME"
81+
ansible-vault decrypt \
82+
--vault-password-file vault-pass.txt \
83+
--output "terraform-data/$FILENAME" \
84+
"terraform-data/${FILENAME}.enc"
85+
done
6386

6487
- name: Run terraform init
6588
working-directory: infra/terraform
6689
run: terraform init
6790

6891
- name: Run terraform plan
6992
working-directory: infra/terraform
70-
run: terraform plan -detailed-exitcode
93+
run: >-
94+
terraform plan \
95+
-detailed-exitcode \
96+
-var-file terraform-data/terraform.tfvars \
97+
-state terraform-data/terraform.tfstate \
98+
-out terraform.tfplan
99+
71100
72101
- name: Cleanup
73102
if: always()
103+
working-directory: infra/terraform
74104
run: |
105+
for FILENAME in vault-pass.txt terraform.tfplan terraform-data/terraform.tfstate terraform-data/terraform.tfvars; do
106+
[ ! -f "$FILE" ] || rm -fv "$FILE"
107+
done
75108
[ ! -d terraform-data ] || git worktree remove terraform-data

.gitignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@ infra/terraform/terraform.tfstate.backup
3939
infra/docker/application-prod.properties
4040
infra/docker/mysql_backup_mystamps.sql.gz
4141

42-
# created by src/main/scripts/ci/deploy.sh
42+
# created by src/main/scripts/ci/deploy.sh or .github/workflows/provision-by-terraform.yml
4343
vault-pass.txt
44+
45+
# created by src/main/scripts/ci/deploy.sh
4446
mystamps_rsa
4547
prod_vars.yml
4648

0 commit comments

Comments
 (0)