Commit Graph
10 Commits
Author SHA1 Message Date
Damien 7bae079670 refactor(ci): remove old unified workflow
Replaced by:
- terraform-pr.yml (for pull requests)
- terraform-deploy.yml (for push to dev)

Refs #3
2025-12-08 16:27:03 +00:00
Damien 804b94a837 feat(ci): create dedicated deploy workflow for Terraform
Terraform Deploy / Validate (push) Successful in 4s
Terraform Deploy / Plan (push) Successful in 4s
Terraform Deploy / Apply (push) Has been skipped
- Separate workflow for push events to dev only
- Apply job runs when plan detects changes
- Use has_changes output (true/false) instead of exitcode

Refs #3
2025-12-08 16:26:44 +00:00
Damien 349f967fc0 feat(ci): create dedicated PR workflow for Terraform
- Separate workflow for pull_request events only
- No Apply job visible in PR checks
- Simplified checkout using gitea.head_ref directly

Refs #3
2025-12-08 16:26:26 +00:00
Damien e22b8c4aaf Merge pull request 'VM Test' (#8) from deploy_TestVM into dev
Terraform CI/CD / Validate (push) Successful in 5s
Terraform CI/CD / Plan (push) Successful in 4s
Terraform CI/CD / Apply (push) Has been skipped
Reviewed-on: #8
2025-12-08 16:21:13 +00:00
Damien bf80e60d7f fix(ci): use head_ref for PR checkout instead of ref_name
Terraform CI/CD / Validate (push) Successful in 5s
Terraform CI/CD / Plan (push) Successful in 5s
Terraform CI/CD / Apply (push) Has been skipped
- gitea.ref_name returns PR number for pull_request events
- Use gitea.head_ref (source branch) for PRs
- Use gitea.ref_name for push events
- Remove unnecessary git checkout sha step
- Clean up redundant Save Plan Output step

Refs #3
2025-12-08 15:56:31 +00:00
Damien ba4b530635 fix(ci): replace actions/checkout with git clone
Terraform CI/CD / Validate (push) Failing after 1s
Terraform CI/CD / Plan (push) Has been skipped
Terraform CI/CD / Apply (push) Has been skipped
- Remove actions/checkout@v4 (requires Node.js not in Alpine image)
- Use native git clone instead
- Remove actions/upload-artifact and download-artifact (require Node.js)
- Re-run plan in apply job instead of artifact transfer
- Add workflow file to paths trigger for testing

Refs #3
2025-12-08 09:00:24 +00:00
Damien 6036783cd5 feat(ci): Add Terraform CI/CD pipeline (#4)
## Description

Mise en place d'un pipeline CI/CD Gitea Actions pour automatiser le déploiement Terraform.

## Changements

- Ajout du workflow `.gitea/workflows/terraform.yml`
- Utilisation de l'image custom `gitea.arnodo.fr/damien/terraform-ci:latest` (Terraform 1.5.7 + TFLint)
- Exécution dans des containers Docker (pas sur le host)

## Pipeline

| Job | Trigger | Actions |
|-----|---------|---------|
| **validate** | Push + PR | `terraform fmt -check`, `tflint`, `terraform validate` |
| **plan** | Push + PR | `terraform plan` + commentaire automatique sur la PR |
| **apply** | Push sur `dev` uniquement | `terraform apply` (si changements détectés) |

## Secrets configurés

- [x] `AWS_ACCESS_KEY_ID`
- [x] `AWS_SECRET_ACCESS_KEY`
- [x] `PROXMOX_URL`
- [x] `PROXMOX_API_TOKEN`
- [x] `TAILSCALE_AUTH_KEY`
- [x] `GIT_TOKEN`

## Test

Cette PR va déclencher les jobs `validate` et `plan`. Le job `apply` se déclenchera après le merge sur `dev`.

Closes #3

Reviewed-on: #4
2025-12-08 08:52:43 +00:00
Damien f4d55cc062 fix: use legacy S3 backend syntax for Terraform compatibility
Replace 'endpoints' block with 'endpoint' string and remove
unsupported arguments for older Terraform versions.
2025-12-07 13:33:55 +00:00
Damien 086bc029c0 feat: add Scaleway S3 backend for Terraform state
Configure remote state storage using Scaleway Object Storage bucket
'netlab-terraform-backend' for centralized state management.
2025-12-07 13:31:02 +00:00
Damienanddarnodo 90232da467 docs: add Proxmox setup guide for Terraform (#2)
## Summary

Add Proxmox setup documentation for Terraform with dedicated role and minimal privileges.

## Changes

- Add `docs/proxmox-setup.md` with complete setup guide
- Dedicated `TerraformRole` (no Administrator role needed)
- Both Web UI and CLI procedures
- SSH configuration for bpg/proxmox provider

## Privileges (Proxmox 9.1)

| Category  | Privileges |
|-----------|------------|
| Datastore | `Allocate`, `AllocateSpace`, `AllocateTemplate`, `Audit` |
| System    | `Audit`, `Console`, `Modify` |
| VM        | `Allocate`, `Audit`, `Clone`, `Config.*`, `Console`, `Migrate`, `PowerMgmt`, `Snapshot`, `Snapshot.Rollback`, `GuestAgent.Audit`, `GuestAgent.FileRead` |
| Pool      | `Allocate`, `Audit` |
| SDN       | `Use` |

> ⚠️ `VM.Monitor` deprecated in Proxmox 9 — use `VM.GuestAgent.Audit` and `VM.GuestAgent.FileRead` instead.

## Related

Closes #1

Co-authored-by: darnodo <sepales.pret0h@icloud.com>
Reviewed-on: #2
2025-12-07 13:08:16 +00:00