Helm Charts / Library charts tool (push) Has been cancelled
Helm Charts / Detect changed charts (push) Has been cancelled
Helm Charts / Application charts pgcat (push) Has been cancelled
MinIO / Auth with gitea for vault (push) Failing after 8m34s
MinIO / Tofu - minio IAC (push) Has been skipped
Le fondateur : « on déploie MinIO dans le repo tools du homelab non ? » — oui, c'est bien le pattern : le dossier tools/ porte les briques PARTAGÉES (pgbouncer, clickhouse, grafana…) et le namespace tools les fait tourner ; les charts applicatifs vivent dans le repo de leur app. Décidé de longue date côté produit, jamais déployé : ADR-012 « MinIO local d'abord » (bascule R2 à 100+ utilisateurs / 10 To par mois), ADR-013 (le gratuit reste local-first, MinIO sert les paliers payants). Vérifié avant d'écrire : aucun pod ni service MinIO dans le cluster. Le chart suit la recette du repo (dépendance à la library + chart amont en SubChart, deux gardes dans templates/) : - mode STANDALONE, 1 réplique : ce qui transite est DÉRIVÉ (le master d'une vidéo reste sur l'appareil de son propriétaire, ADR-018) et Longhorn réplique déjà le volume — l'erasure coding distribué coûterait de la RAM que des Pi 5 n'ont pas à dépenser pour ça ; - 50 Gi sur longhorn ≈ 250 h de cours au palier « travail » (360p, 3,4 Mo/min) ; ⚠ Longhorn réplique : compter ×3 sur la capacité avant d'augmenter ; - ressources bornées (512 Mi / 2 Gi) : la limite protège les voisins de tools ; - API s3.arcodange.lab + console minio.arcodange.lab (Traefik) ; - bucket kadans-videos PRIVÉ — l'accès passera par des URL signées (ADR-0002) ; - identifiants JAMAIS au dépôt : iac/ les génère dans Vault (kvv2/minio/config), le Vault Secrets Operator les matérialise, le chart les lit via existingSecret. Le SA du pod est nommé (pas le amont) car le module app_roles borne l'authentification au SA portant le nom de l'app. ⚠ Le workflow minio.yaml écrit ses triggers EN TOUTES LETTRES : une ancre YAML dans un trigger Gitea Actions fait taire push ET pull_request en silence (vécu sur arcodange/kadans, issues 113→117). Les workflows plausible/crowdsec/vault de ce repo en utilisent encore — à vérifier séparément, c'est probablement pourquoi ils ne partent qu'à la main. Vérifié : helm dependency update + helm template (11 ressources rendues, SA et VaultAuth cohérents) + helm lint ✓. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01CoafGWmRVESaWX819USUUA
71 lines
2.2 KiB
YAML
71 lines
2.2 KiB
YAML
---
|
|
name: MinIO
|
|
|
|
# ⚠ Triggers écrits EN TOUTES LETTRES, sans ancre YAML (`&`/`*`).
|
|
# Une ancre dans un trigger Gitea Actions fait taire push ET pull_request —
|
|
# en silence, aucun run, aucune erreur (vécu sur arcodange/kadans, issues 113
|
|
# → 117). Les autres workflows de ce repo utilisent encore des ancres : à
|
|
# vérifier séparément, c'est probablement pour ça qu'ils ne partent qu'à la
|
|
# main (workflow_dispatch).
|
|
on:
|
|
workflow_dispatch: {}
|
|
push:
|
|
paths:
|
|
- 'minio/**/*.tf'
|
|
pull_request:
|
|
paths:
|
|
- 'minio/**/*.tf'
|
|
|
|
# cancel any previously-started, yet still active runs of this workflow on the same branch
|
|
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_minio
|
|
method: jwt
|
|
path: gitea_jwt
|
|
secrets: |
|
|
kvv1/google/credentials credentials | GOOGLE_BACKEND_CREDENTIALS ;
|
|
kvv1/gitea/tofu_module_reader ssh_private_key | TERRAFORM_SSH_KEY ;
|
|
|
|
jobs:
|
|
gitea_vault_auth:
|
|
name: Auth with gitea for vault
|
|
runs-on: ubuntu-latest
|
|
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 - minio IAC
|
|
needs:
|
|
- gitea_vault_auth
|
|
runs-on: ubuntu-latest
|
|
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: minio/iac
|
|
auto_approve: true
|