feat: CI/CD Pipeline for Terraform Plan & Apply #3

Closed
opened 2025-12-07 14:06:33 +00:00 by Damien · 0 comments
Owner

Description

Mettre en place un pipeline CI/CD Gitea Actions pour automatiser le déploiement Terraform de l'infrastructure homelab.

Objectifs

1. Validation automatique (toutes les branches)

  • Exécution de tflint --recursive pour la validation des bonnes pratiques
  • Exécution de terraform fmt --recursive pour vérifier le formatage

2. Workflow PR (Pull Requests)

  • terraform plan exécuté automatiquement avant la review
  • Résultat du plan affiché dans un commentaire de la PR
  • terraform apply déclenché après merge

3. Workflow direct (push sur dev)

  • terraform plan + terraform apply automatique

Contraintes techniques

Runner Gitea

  • Le runner est connecté à l'environnement via Tailscale (depuis le host)
  • Accès au PVE01 via le réseau Tailscale
  • Accès au backend S3 (object storage) déjà configuré

Sécurité

  • Secrets à configurer :
    • PROXMOX_API_TOKEN - Token API Proxmox
    • TAILSCALE_AUTH_KEY - Clé d'authentification Tailscale
    • AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY - Credentials backend S3
    • AWS_ENDPOINT_URL - Endpoint S3 (si custom)

Structure du workflow

.gitea/workflows/
└── terraform.yml

Tasks

  • Créer le fichier workflow .gitea/workflows/terraform.yml
  • Configurer les secrets dans le repo Gitea
  • Tester le pipeline sur une PR
  • Documenter l'utilisation dans le README

Références

## Description Mettre en place un pipeline CI/CD Gitea Actions pour automatiser le déploiement Terraform de l'infrastructure homelab. ## Objectifs ### 1. Validation automatique (toutes les branches) - [x] Exécution de `tflint --recursive` pour la validation des bonnes pratiques - [x] Exécution de `terraform fmt --recursive` pour vérifier le formatage ### 2. Workflow PR (Pull Requests) - [x] `terraform plan` exécuté automatiquement avant la review - [x] Résultat du plan affiché dans un commentaire de la PR - [x] `terraform apply` déclenché après merge ### 3. Workflow direct (push sur dev) - [x] `terraform plan` + `terraform apply` automatique ## Contraintes techniques ### Runner Gitea - Le runner est connecté à l'environnement via Tailscale (depuis le host) - Accès au PVE01 via le réseau Tailscale - Accès au backend S3 (object storage) déjà configuré ### Sécurité - [x] Secrets à configurer : - `PROXMOX_API_TOKEN` - Token API Proxmox - `TAILSCALE_AUTH_KEY` - Clé d'authentification Tailscale - `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` - Credentials backend S3 - `AWS_ENDPOINT_URL` - Endpoint S3 (si custom) ## Structure du workflow ``` .gitea/workflows/ └── terraform.yml ``` ## Tasks - [x] Créer le fichier workflow `.gitea/workflows/terraform.yml` - [x] Configurer les secrets dans le repo Gitea - [x] Tester le pipeline sur une PR - [x] Documenter l'utilisation dans le README ## Références - Répertoire Terraform : `terraform/prod/` - Backend : S3 Object Storage (déjà configuré) - Documentation Gitea Actions : https://docs.gitea.com/usage/actions/overview
Damien reopened this issue 2025-12-08 18:36:42 +00:00
Damien added reference dev 2026-05-03 17:03:46 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Damien/iac-homelab#3