Damien
adbc4ff64b
Add komodo VM to production
Terraform Deploy / Validate (push) Successful in 9s
Terraform Deploy / Plan (push) Successful in 9s
Terraform Deploy / Apply (push) Successful in 1m1s
2026-06-10 10:10:34 +02:00
Damien
fa33c842db
Remove komodo virtual machine from prod configuration
Terraform Deploy / Validate (push) Successful in 10s
Terraform Deploy / Plan (push) Successful in 11s
Terraform Deploy / Apply (push) Successful in 17s
2026-06-10 10:08:56 +02:00
Damien
06df079bfb
Add lock_passwd false to Alpine user config
2026-06-10 10:08:06 +02:00
9bce5603fc
Merge pull request 'Add production VMs for IP Fabric and Komodo' ( #18 ) from vm/ipfabric_komodo into dev
...
Terraform Deploy / Validate (push) Successful in 5s
Terraform Deploy / Plan (push) Successful in 5s
Terraform Deploy / Apply (push) Successful in 1m35s
Reviewed-on: #18
2026-06-10 07:44:02 +00:00
Damien
66106c5ac0
Add production VMs for IP Fabric and Komodo
Terraform PR / Validate (pull_request) Successful in 4s
Terraform PR / Plan (pull_request) Successful in 6s
2026-06-10 09:41:54 +02:00
6c4e3c31b0
Merge pull request 'Remove unused virtual machines from prod config' ( #17 ) from vm/delete_all into dev
...
Terraform Deploy / Validate (push) Successful in 5s
Terraform Deploy / Plan (push) Successful in 6s
Terraform Deploy / Apply (push) Successful in 11s
Reviewed-on: #17
2026-06-10 07:40:24 +00:00
Damien
2ef6995c74
Remove unused virtual machines from prod config
Terraform PR / Validate (pull_request) Successful in 5s
Terraform PR / Plan (pull_request) Successful in 8s
2026-06-10 09:32:32 +02:00
Damien
3ce22b493c
Add shell specification to Terraform plan steps
Terraform Deploy / Validate (push) Successful in 5s
Terraform Deploy / Apply (push) Has been cancelled
Terraform Deploy / Plan (push) Has been cancelled
2026-06-10 09:29:24 +02:00
452ebb1ac0
Merge pull request 'Add DNS server configuration for Alpine Linux' ( #16 ) from fix/alpine_dns into dev
...
Terraform Deploy / Validate (push) Successful in 4s
Terraform Deploy / Apply (push) Has been cancelled
Terraform Deploy / Plan (push) Has been cancelled
Reviewed-on: #16
2026-06-10 07:15:26 +00:00
a5d1e2b817
Merge branch 'dev' into fix/alpine_dns
Terraform PR / Validate (pull_request) Successful in 4s
Terraform PR / Plan (pull_request) Has been cancelled
2026-06-10 07:12:31 +00:00
Damien
41dae6a086
Add DNS server configuration for Alpine Linux
Terraform PR / Validate (pull_request) Successful in 5s
Terraform PR / Plan (pull_request) Has been cancelled
2026-06-10 08:49:50 +02:00
43ba14df60
Merge pull request 'chore/fix_qemu_alpine' ( #15 ) from chore/fix_qemu_alpine into dev
...
Terraform Deploy / Validate (push) Successful in 5s
Terraform Deploy / Plan (push) Successful in 4s
Terraform Deploy / Apply (push) Successful in 15m18s
Reviewed-on: #15
2026-06-10 06:22:44 +00:00
Damien
a9fdb3ac45
Add DNS configuration for VMs
Terraform PR / Validate (pull_request) Successful in 5s
Terraform PR / Plan (pull_request) Successful in 5s
2026-06-10 08:18:37 +02:00
Damien
a66142632c
Add Alpine and systemd cloud-init templates
2026-06-10 08:09:42 +02:00
Damien
f3f84168c3
Remove legacy cloud-init template
...
The user-data.yml.tftpl file was replaced with OS-specific templates to
support
different init systems. The new templates are
user-data-systemd.yml.tftpl and
user-data-alpine.yml.tftpl, selected based on the VM's OS type.
2026-06-10 08:09:36 +02:00
b652694b26
Merge pull request 'Add komodo VM to prod configuration' ( #14 ) from vm/komodo into dev
...
Terraform Deploy / Validate (push) Successful in 5s
Terraform Deploy / Plan (push) Successful in 5s
Terraform Deploy / Apply (push) Successful in 15m14s
Reviewed-on: #14
2026-06-09 17:35:44 +00:00
Damien
4a2704c6f3
Add komodo VM to prod configuration
Terraform PR / Validate (pull_request) Successful in 9s
Terraform PR / Plan (pull_request) Successful in 5s
2026-06-09 17:22:20 +02:00
Damien
96394ab1b1
Update Terraform workflow file paths and output handling
...
Terraform Deploy / Validate (push) Successful in 5s
Terraform Deploy / Plan (push) Successful in 5s
Terraform Deploy / Apply (push) Successful in 1m39s
- Change single quotes to double quotes in path filters for consistency
- Modify command redirection to use > instead of | tee for cleaner
output handling
- Add explicit cat command to display plan output in logs
- Standardize whitespace formatting throughout files
2026-05-03 21:07:27 +02:00
Damien
1ff49e1a2e
Fix virtual_machines variable declaration syntax
...
Terraform Deploy / Validate (push) Successful in 5s
Terraform Deploy / Plan (push) Successful in 4s
Terraform Deploy / Apply (push) Has been skipped
Remove redundant outer object wrapper in virtual_machines declaration
that was causing Terraform configuration error.
2026-05-03 20:15:21 +02:00
Damien
befd57f21f
Add IPFabric VM configuration to production Terraform variables
...
Terraform Deploy / Validate (push) Successful in 4s
Terraform Deploy / Plan (push) Successful in 7s
Terraform Deploy / Apply (push) Has been skipped
The virtual_machines map is now populated with configuration for an
IPFabric VM, including specifications for OS, CPU, memory, disk size, IP
address, gateway, and associated tags.
2026-05-03 20:02:31 +02:00
12e413f2a7
Merge pull request 'feat: support SSH key injection via Gitea secrets for CI pipelines' ( #12 ) from feat/ci-ssh-key-support into dev
...
Terraform Deploy / Validate (push) Successful in 7s
Terraform Deploy / Plan (push) Successful in 9s
Terraform Deploy / Apply (push) Has been skipped
Reviewed-on: #12
2026-05-03 17:41:11 +00:00
f57f68b6f3
feat: add SSH key env vars to PR workflow
...
Terraform PR / Validate (pull_request) Successful in 6s
Terraform PR / Plan (pull_request) Successful in 10s
Inject PROXMOX_SSH_PRIVATE_KEY and ADMIN_SSH_PUBLIC_KEY
secrets as TF_VAR_ environment variables for CI.
2026-05-03 17:04:10 +00:00
b4fa69f00a
feat: add SSH key env vars to deploy workflow
...
Inject PROXMOX_SSH_PRIVATE_KEY and ADMIN_SSH_PUBLIC_KEY
secrets as TF_VAR_ environment variables for CI.
2026-05-03 17:03:33 +00:00
8fcf033145
feat: support SSH public key content for CI
...
Use admin_ssh_public_key content when provided, otherwise
fall back to reading from admin_ssh_public_key_path file.
2026-05-03 17:03:00 +00:00
c495b40def
feat: support SSH private key injection for CI
...
Use proxmox_ssh_private_key variable when available, otherwise
fall back to SSH agent for local development.
2026-05-03 17:02:47 +00:00
3bb9c97d69
feat: add SSH key variables for CI support
...
Add proxmox_ssh_private_key for provider SSH in CI pipelines.
Add admin_ssh_public_key as content-based alternative to file path.
Both default to empty string for backward compatibility with local usage.
2026-05-03 17:02:31 +00:00
Damien
02979f9bb9
Remove ipfabric VM configuration
Terraform Deploy / Validate (push) Successful in 5s
Terraform Deploy / Plan (push) Successful in 7s
Terraform Deploy / Apply (push) Has been skipped
2026-04-15 11:36:38 +02:00
Damien
e4889aa9bc
feat(prod): add IP Fabric virtual machine configuration
...
Terraform Deploy / Validate (push) Successful in 12s
Terraform Deploy / Plan (push) Successful in 4s
Terraform Deploy / Apply (push) Has been skipped
Update the production terraform variables to define the 'ipfabric'
virtual machine. This replaces the empty VM map with specific
resource allocations:
- Resources: 4 vCPUs, 16GB RAM, 128GB Storage
- Network: Static IP 192.168.1.161
- OS tag: ipfabric
This configuration enables the provisioning of the IP Fabric node in the
production environment.
2026-02-05 13:53:37 +01:00
darnodo
e412154bef
chore(prod): remove netlab vm configuration from tfvars
...
Terraform Deploy / Validate (push) Successful in 15s
Terraform Deploy / Plan (push) Successful in 5s
Terraform Deploy / Apply (push) Has been skipped
Remove the configuration for the "netlab" virtual machine (192.168.1.161).
This clears the virtual_machines map in the production environment, effectively decommissioning the instance.
2026-01-12 17:47:38 +01:00
darnodo
03fbc40de2
Remove IPFabric VM
Terraform Deploy / Validate (push) Has been cancelled
Terraform Deploy / Plan (push) Has been cancelled
Terraform Deploy / Apply (push) Has been cancelled
2025-12-20 14:50:02 +01:00
darnodo
1fa826ae7a
feat(prod): add ipfabric virtual machine configuration
...
Terraform Deploy / Validate (push) Has been cancelled
Terraform Deploy / Plan (push) Has been cancelled
Terraform Deploy / Apply (push) Has been cancelled
Adds the 'ipfabric' instance to the production virtual_machines inventory.
This provisions the server with 8 cores, 16GB memory, and 128GB disk
assigned to IP 192.168.1.162.
2025-12-17 20:38:59 +01:00
darnodo
df71a05e92
feat(terraform): replace centos with ipfabric in supported os list
...
Terraform Deploy / Validate (push) Has been cancelled
Terraform Deploy / Plan (push) Has been cancelled
Terraform Deploy / Apply (push) Has been cancelled
Update the `supported_os` local variable in `01-virtual-machines.tf` to
reflect current provisioning requirements. This change removes `centos`
and adds `ipfabric` to the set of allowed operating system templates.
2025-12-17 17:01:42 +01:00
darnodo
3f5a82d87a
Create NetLab VM
Terraform Deploy / Validate (push) Successful in 6s
Terraform Deploy / Plan (push) Successful in 5s
Terraform Deploy / Apply (push) Has been skipped
2025-12-14 16:47:07 +01:00
darnodo
293ce5be0d
Remove Netlab VM
Terraform Deploy / Validate (push) Successful in 6s
Terraform Deploy / Plan (push) Successful in 5s
Terraform Deploy / Apply (push) Has been skipped
2025-12-13 14:33:52 +01:00
darnodo
6d7a0e64ab
feat(vm): enable qemu-guest-agent and set stop_on_destroy
...
Terraform Deploy / Validate (push) Successful in 14s
Terraform Deploy / Plan (push) Successful in 5s
Terraform Deploy / Apply (push) Has been skipped
- Add `qemu-guest-agent` enable/start command to `user-data.yml.tftpl` to ensure the agent is active immediately after provisioning.
- Set `stop_on_destroy = true` in the Proxmox VM resource definition to ensure graceful shutdown during Terraform destroy operations.
2025-12-11 19:12:31 +01:00
darnodo
2ce5c373f2
feat(prod): configure 'netlab' virtual machine in terraform
...
Terraform Deploy / Validate (push) Successful in 6s
Terraform Deploy / Plan (push) Successful in 5s
Terraform Deploy / Apply (push) Has been skipped
Add the configuration for the "netlab" VM in the production environment. This machine is provisioned with:
- OS: Debian
- 8 CPU cores
- 16GB RAM
- 64GB Disk
- Static IP 192.168.1.161
2025-12-09 20:51:31 +01:00
9b0fc389c5
Merge pull request 'Test destroy' ( #9 ) from destroy_TestVM into dev
...
Terraform Deploy / Validate (push) Successful in 4s
Terraform Deploy / Plan (push) Successful in 4s
Terraform Deploy / Apply (push) Has been skipped
Reviewed-on: #9
2025-12-08 18:13:48 +00:00
darnodo
b47482b3c8
Test destroy
Terraform PR / Validate (pull_request) Successful in 5s
Terraform PR / Plan (pull_request) Successful in 5s
2025-12-08 19:13:00 +01:00
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
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
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
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
darnodo
1baaeffe91
style(terraform): adjust indentation for monitoring VM in prod tfvars
...
Terraform CI/CD / Validate (pull_request) Successful in 6s
Terraform CI/CD / Plan (pull_request) Successful in 6s
Terraform CI/CD / Apply (pull_request) Has been skipped
Update the indentation of the `virtual_machines` map in `terraform/prod/terraform.tfvars` from 4 spaces to 2 spaces to maintain consistency with the surrounding HCL code style. No functional changes were made to the configuration values.
2025-12-08 17:20:05 +01:00
darnodo
aa3b32ee53
VM Test
Terraform CI/CD / Validate (pull_request) Failing after 5s
Terraform CI/CD / Plan (pull_request) Has been skipped
Terraform CI/CD / Apply (pull_request) Has been skipped
2025-12-08 17:16:28 +01:00
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
darnodo
bb39dfa29e
ci: add GIT_TOKEN authentication to checkout steps
...
Terraform CI/CD / Validate (push) Successful in 6s
Terraform CI/CD / Plan (push) Successful in 8s
Terraform CI/CD / Apply (push) Has been skipped
The workflow was failing to checkout the repository in certain contexts or was requiring authentication that wasn't previously provided. This change:
- Adds the `GIT_TOKEN` secret to the environment variables.
- Updates the `git clone` commands in the `terraform-plan`, `terraform-apply`, and `terraform-destroy` jobs to include the `${GIT_TOKEN}@` prefix in the clone URL.
This ensures that the workflow can successfully clone the repository even if it's private or requires authenticated access.
2025-12-08 11:56:05 +01:00
darnodo
a02582aaea
ci(workflow): hardcode gitea server url in terraform workflow
...
Terraform CI/CD / Validate (push) Failing after 2s
Terraform CI/CD / Plan (push) Has been skipped
Terraform CI/CD / Apply (push) Has been skipped
Replaces the dynamic `${{ gitea.server_url }}` variable with the explicit URL `https://gitea.arnodo.fr ` in the Terraform workflow configuration. This change affects git clone operations and API calls for posting PR comments, likely to resolve issues with variable expansion or DNS resolution within the runner environment.
2025-12-08 11:31:46 +01:00
darnodo
6efb997684
chore(terraform): update version constraint and allow tfvars
...
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 `*.tfvars` from .gitignore to allow tracking variable files.
- Enforce Terraform version to be greater than or equal to 1.5.0 in prod configuration.
2025-12-08 10:22:31 +01:00
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
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