feat(deploy): iac/ Vault provisioning + workflow (uses app_roles module from tools) (#99)
All checks were successful
CI/CD Pipeline / Build Docker Cache (push) Successful in 12s
Docker Push / Docker Push (push) Successful in 4m12s
CI/CD Pipeline / CI Pipeline (push) Successful in 6m10s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 11s

Co-authored-by: Gabriel Radureau <arcodange@gmail.com>
Co-committed-by: Gabriel Radureau <arcodange@gmail.com>
This commit was merged in pull request #99.
This commit is contained in:
2026-05-06 13:20:26 +02:00
committed by arcodange
parent 3be6a2b7ef
commit 3fee1e9ed7
4 changed files with 92 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
---
name: Hashicorp Vault
on:
workflow_dispatch: {}
push: &vaultPaths
paths:
- 'iac/*.tf'
pull_request: *vaultPaths
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
.vault_step: &vault_step
name: read vault secret
uses: https://gitea.arcodange.lab/arcodange-org/vault-action.git@main
id: vault-secrets
with:
url: https://vault.arcodange.lab
caCertificate: ${{ secrets.HOMELAB_CA_CERT }}
jwtGiteaOIDC: ${{ needs.gitea_vault_auth.outputs.gitea_vault_jwt }}
role: gitea_cicd_dance-lessons-coach
method: jwt
path: gitea_jwt
secrets: |
kvv1/google/credentials credentials | GOOGLE_BACKEND_CREDENTIALS ;
jobs:
gitea_vault_auth:
name: Auth with gitea for vault
runs-on: ubuntu-latest-ca
outputs:
gitea_vault_jwt: ${{steps.gitea_vault_jwt.outputs.id_token}}
steps:
- name: Auth with gitea for vault
id: gitea_vault_jwt
run: |
echo -n "${{ secrets.vault_oauth__sh_b64 }}" | base64 -d | bash
tofu:
name: Tofu - Vault
needs:
- gitea_vault_auth
runs-on: ubuntu-latest-ca
env:
OPENTOFU_VERSION: 1.8.2
TERRAFORM_VAULT_AUTH_JWT: ${{ needs.gitea_vault_auth.outputs.gitea_vault_jwt }}
VAULT_CACERT: "${{ github.workspace }}/homelab.pem"
steps:
- *vault_step
- uses: actions/checkout@v4
- name: prepare vault self signed cert
run: echo -n "${{ secrets.HOMELAB_CA_CERT }}" | base64 -d > $VAULT_CACERT
- name: terraform apply
uses: dflook/terraform-apply@v1
with:
path: iac
auto_approve: true