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.
- 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
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.
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.
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.
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.
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.
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.
- 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.
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
- 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
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.
- 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
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.
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.
- 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.
- 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
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.
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.
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
Clarify pipelines for Prometheus metrics and Loki logs with better
structure and comments. Fix label for logs from "job" to "unit" and
correct forwarding to Loki destination. Remove duplicate endpoint block.