43 Commits

Author SHA1 Message Date
Damien
eaa329e70d Update prod VM disk size to 80GB
All checks were successful
Terraform Deploy / Validate (push) Successful in 5s
Terraform Deploy / Plan (push) Successful in 7s
Terraform Deploy / Apply (push) Successful in 4m0s
2026-06-21 13:01:37 +02:00
Damien
eee527a9bc Increase IP Fabric VM disk size to 64GB
Some checks failed
Terraform Deploy / Validate (push) Successful in 5s
Terraform Deploy / Plan (push) Successful in 4s
Terraform Deploy / Apply (push) Failing after 2m24s
2026-06-21 12:58:30 +02:00
Damien
fc32f62aa2 Add IP Fabric VM to production
All checks were successful
Terraform PR / Validate (pull_request) Successful in 7s
Terraform PR / Plan (pull_request) Successful in 6s
2026-06-21 12:40:48 +02:00
Damien
28e0ee7369 Update prod VM configuration for Komodo
All checks were successful
Terraform Deploy / Validate (push) Successful in 6s
Terraform Deploy / Plan (push) Successful in 5s
Terraform Deploy / Apply (push) Successful in 2m27s
Replace IP Fabric VM with Komodo VM using Alpine OS and increased
resources
2026-06-14 15:39:47 +02:00
Damien
df9934b48a Remove komodo VM from prod configuration
Some checks failed
Terraform Deploy / Validate (push) Successful in 6s
Terraform Deploy / Plan (push) Successful in 5s
Terraform Deploy / Apply (push) Has been cancelled
2026-06-14 15:35:24 +02:00
Damien
b1b165c752 Add komodo VM to production
All checks were successful
Terraform Deploy / Validate (push) Successful in 4s
Terraform Deploy / Plan (push) Successful in 4s
Terraform Deploy / Apply (push) Successful in 49s
2026-06-10 10:43:28 +02:00
Damien
0e2593234a Remove komodo virtual machine from prod
All checks were successful
Terraform Deploy / Validate (push) Successful in 5s
Terraform Deploy / Plan (push) Successful in 4s
Terraform Deploy / Apply (push) Successful in 8s
2026-06-10 10:42:09 +02:00
Damien
adbc4ff64b Add komodo VM to production
All checks were successful
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
All checks were successful
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
66106c5ac0 Add production VMs for IP Fabric and Komodo
All checks were successful
Terraform PR / Validate (pull_request) Successful in 4s
Terraform PR / Plan (pull_request) Successful in 6s
2026-06-10 09:41:54 +02:00
Damien
2ef6995c74 Remove unused virtual machines from prod config
All checks were successful
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
41dae6a086 Add DNS server configuration for Alpine Linux
Some checks failed
Terraform PR / Validate (pull_request) Successful in 5s
Terraform PR / Plan (pull_request) Has been cancelled
2026-06-10 08:49:50 +02:00
Damien
a9fdb3ac45 Add DNS configuration for VMs
All checks were successful
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
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
Damien
4a2704c6f3 Add komodo VM to prod configuration
All checks were successful
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
1ff49e1a2e Fix virtual_machines variable declaration syntax
All checks were successful
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
All checks were successful
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
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
darnodo
b47482b3c8 Test destroy
All checks were successful
Terraform PR / Validate (pull_request) Successful in 5s
Terraform PR / Plan (pull_request) Successful in 5s
2025-12-08 19:13:00 +01:00
darnodo
1baaeffe91 style(terraform): adjust indentation for monitoring VM in prod tfvars
All checks were successful
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
Some checks failed
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
darnodo
6efb997684 chore(terraform): update version constraint and allow tfvars
Some checks failed
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
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
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
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
darnodo
531a05a173 docs: fix markdown table alignment in prod README
Reformat the Proxmox template requirements table in `terraform/prod/README.md` to improve readability and ensure consistent spacing between columns. This purely aesthetic change aligns the headers and cell contents properly.
2025-12-07 13:32:03 +01:00
87d357fcb1 Update .gitignore, enhance README formatting, and remove obsolete AWX Kubernetes configurations 2025-10-05 10:51:38 +02:00
darnodo
90b49eee17 Update docs and rename domain suffix
The commit message should be:

``` Translate docs to French and update domain examples

Change the example domain from lab.home.arnodo.fr to taila5ad8.ts.net
and convert documentation to French. Remove LXC container configuration
that was not being used. ```

This message captures the key changes: 1. Translation of documentation
to French 2. Update of domain examples throughout the codebase 3.
Removal of unused LXC container configuration

The changes warrant a body since there are multiple related but distinct
changes being made. The message follows the Git commit style guidelines,
using imperative mood and keeping the first line under 50 characters.
2025-07-03 19:59:02 +02:00
darnodo
7cd93ba978 Add Cloud-Init automation with Tailscale
The commit rephrases the README to focus on Cloud-Init setup and removes
unused Ansible code, making Tailscale configuration automatic.

Subject line: Replace Ansible with automated Cloud-Init configuration

Body: Refactors infrastructure bootstrapping to leverage Cloud-Init
instead of Ansible for initial VM setup, particularly with respect to
Tailscale installation and authentication.

This simplifies the architecture by: - Removing manual post-provisioning
Ansible steps - Automating Tailscale setup via Cloud-Init - Updating
documentation to reflect new workflow
2025-07-03 09:28:09 +02:00
darnodo
64f24ad742 Cleaning VM Creation
- Remove useless tf files
- add extra disks capacity
2025-06-17 20:02:00 +02:00
darnodo
6a00eb2708 first commit 2025-06-09 11:58:11 +02:00