Tellsanguis
67d46bceac
fix(terraform): Use local-lvm storage for VM disks
...
CD - Deploy Infrastructure / Terraform Validation (push) Successful in 16s
CD - Deploy Infrastructure / Deploy on pve1 (push) Failing after 2m23s
CD - Deploy Infrastructure / Deploy on pve2 (push) Failing after 2m35s
CD - Deploy Infrastructure / Deploy on pve3 (push) Failing after 10s
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 1s
LINSTOR ne supporte pas le clonage de VMs (ni full ni linked clone).
Solution: utiliser local-lvm pour les disques des VMs.
- Ajout variables k3s_server_X_storage_pool avec default local-lvm
- Mise à jour du workflow deploy.yml
- Retour à full_clone = true
2025-11-26 18:04:58 +01:00
Tellsanguis
3cc79b75dd
fix(terraform): Use linked clones instead of full clones
...
CD - Deploy Infrastructure / Terraform Validation (push) Successful in 19s
CD - Deploy Infrastructure / Deploy on pve1 (push) Failing after 7s
CD - Deploy Infrastructure / Deploy on pve2 (push) Failing after 8s
CD - Deploy Infrastructure / Deploy on pve3 (push) Failing after 7s
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 1s
LINSTOR has issues creating new resource definitions during full clone
operations. Switching to linked clones (full_clone = false) should avoid
this issue as it uses snapshots instead of creating new disk resources.
Also removed replicate parameter as LINSTOR handles replication automatically
through its resource groups.
2025-11-26 18:00:06 +01:00
Tellsanguis
a60a54f1e7
fix(terraform): Change replicate from number to boolean
...
CD - Deploy Infrastructure / Terraform Validation (push) Successful in 15s
CD - Deploy Infrastructure / Deploy on pve1 (push) Failing after 41s
CD - Deploy Infrastructure / Deploy on pve2 (push) Failing after 42s
CD - Deploy Infrastructure / Deploy on pve3 (push) Failing after 44s
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 1s
The replicate attribute expects a boolean value (true/false), not a number.
Changed replicate = 1 to replicate = true in pve1 and pve2 configs.
2025-11-26 17:54:25 +01:00
Tellsanguis
315e67c548
style(terraform): Fix formatting alignment in disk blocks
CD - Deploy Infrastructure / Terraform Validation (push) Failing after 9s
CD - Deploy Infrastructure / Deploy on pve1 (push) Has been skipped
CD - Deploy Infrastructure / Deploy on pve2 (push) Has been skipped
CD - Deploy Infrastructure / Deploy on pve3 (push) Has been skipped
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 0s
2025-11-26 17:53:31 +01:00
Tellsanguis
2ccccc5ce1
fix(terraform): Configure storage for LINSTOR cluster topology
...
CD - Deploy Infrastructure / Terraform Validation (push) Failing after 5s
CD - Deploy Infrastructure / Deploy on pve1 (push) Has been skipped
CD - Deploy Infrastructure / Deploy on pve2 (push) Has been skipped
CD - Deploy Infrastructure / Deploy on pve3 (push) Has been skipped
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 1s
Storage configuration changes:
- Add full_clone=true for better LINSTOR compatibility
- Add replicate=1 to disk config for k3s servers on LINSTOR
- Configure etcd-witness to use local-lvm storage on thinkpad
- Add etcd_witness_storage_pool variable with local-lvm default
Fixes:
- etcd-witness now uses local storage since thinkpad is LINSTOR controller only
- k3s-server-1 and k3s-server-2 use LINSTOR replicated storage on acemagician/elitedesk
- Explicit replication flag helps LINSTOR create resources correctly
2025-11-26 17:51:03 +01:00
Tellsanguis
80d434069b
fix(terraform): Use correct Proxmox node names
...
CD - Deploy Infrastructure / Terraform Validation (push) Successful in 20s
CD - Deploy Infrastructure / Deploy on pve1 (push) Failing after 42s
CD - Deploy Infrastructure / Deploy on pve2 (push) Failing after 42s
CD - Deploy Infrastructure / Deploy on pve3 (push) Failing after 41s
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 1s
Update target_node values to match actual cluster node names:
- pve1 → acemagician (192.168.100.10)
- pve2 → elitedesk (192.168.100.20)
- pve3 → thinkpad (192.168.100.30)
This fixes the "no such cluster node" error during deployment.
2025-11-26 17:34:02 +01:00
Tellsanguis
e97e35ad0b
style(terraform): Format files with tofu fmt
...
CD - Deploy Infrastructure / Terraform Validation (push) Successful in 19s
CD - Deploy Infrastructure / Deploy on pve1 (push) Failing after 9s
CD - Deploy Infrastructure / Deploy on pve2 (push) Failing after 9s
CD - Deploy Infrastructure / Deploy on pve3 (push) Failing after 9s
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 1s
Run tofu fmt to properly format all Terraform files according to standard conventions.
2025-11-13 20:16:27 +01:00
Tellsanguis
72d95934b2
fix(terraform): Update disk and CPU syntax for provider v3.0.2-rc05
...
CD - Deploy Infrastructure / Terraform Validation (push) Failing after 7s
CD - Deploy Infrastructure / Deploy on pve1 (push) Has been skipped
CD - Deploy Infrastructure / Deploy on pve2 (push) Has been skipped
CD - Deploy Infrastructure / Deploy on pve3 (push) Has been skipped
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 1s
- Change disk slot from number (0) to string ("scsi0")
- Change disk type from "scsi" to "disk"
- Move cores and sockets into cpu {} block
These changes are required for Proxmox provider v3.0.2-rc05.
2025-11-13 20:14:00 +01:00
Tellsanguis
bd1df7d89d
fix(terraform): Update syntax for Proxmox provider v3.0.2-rc05
...
CD - Deploy Infrastructure / Terraform Validation (push) Successful in 18s
CD - Deploy Infrastructure / Deploy on pve1 (push) Failing after 8s
CD - Deploy Infrastructure / Deploy on pve2 (push) Failing after 8s
CD - Deploy Infrastructure / Deploy on pve3 (push) Failing after 9s
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 1s
- Add required 'id' argument to network blocks
- Change iothread from number (1) to boolean (true)
These changes are required for compatibility with provider v3.0.2-rc05.
2025-11-13 20:11:28 +01:00
Tellsanguis
5a5e844852
feat(terraform): Upgrade Proxmox provider to v3.0.2-rc05
...
CD - Deploy Infrastructure / Terraform Validation (push) Failing after 11s
CD - Deploy Infrastructure / Deploy on pve1 (push) Has been skipped
CD - Deploy Infrastructure / Deploy on pve2 (push) Has been skipped
CD - Deploy Infrastructure / Deploy on pve3 (push) Has been skipped
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 1s
Upgrade from v2.9 to v3.0.2-rc05 for Proxmox 9 compatibility. This version no longer requires the deprecated VM.Monitor permission.
2025-11-13 20:09:56 +01:00
Tellsanguis
912e27c30f
fix(cd): Add OpenTofu setup step to all deployment jobs
...
CD - Deploy Infrastructure / Terraform Validation (push) Successful in 17s
CD - Deploy Infrastructure / Deploy on pve1 (push) Failing after 9s
CD - Deploy Infrastructure / Deploy on pve2 (push) Failing after 8s
CD - Deploy Infrastructure / Deploy on pve3 (push) Failing after 8s
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 1s
Deployment jobs were failing with 'tofu: command not found'. Added Setup OpenTofu step to deploy-pve1, deploy-pve2, and deploy-pve3 jobs.
2025-11-13 20:03:49 +01:00
Tellsanguis
aaedb0db3a
fix(cd): Replace reusable workflow with inline CI jobs
...
CD - Deploy Infrastructure / Terraform Validation (push) Successful in 19s
CD - Deploy Infrastructure / Deploy on pve1 (push) Failing after 2s
CD - Deploy Infrastructure / Deploy on pve2 (push) Failing after 2s
CD - Deploy Infrastructure / Deploy on pve3 (push) Failing after 3s
CD - Deploy Infrastructure / Validate K3s Cluster (push) Has been skipped
CD - Deploy Infrastructure / Deployment Notification (push) Failing after 1s
Forgejo does not fully support reusable workflows (uses:). Duplicated the Terraform validation job directly in the CD workflow to avoid the blocking state.
2025-11-13 20:00:53 +01:00
Tellsanguis
f2ed93a018
fix(ci): Add workflow_call trigger to enable CD integration
...
CD - Deploy Infrastructure / ci (push) Waiting to run
CD - Deploy Infrastructure / Deploy on pve1 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve2 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve3 (push) Blocked by required conditions
CD - Deploy Infrastructure / Validate K3s Cluster (push) Blocked by required conditions
CD - Deploy Infrastructure / Deployment Notification (push) Blocked by required conditions
The CI workflow needs workflow_call to be callable by the CD workflow. Without this, the CD workflow cannot invoke CI as a reusable workflow.
2025-11-13 19:56:13 +01:00
Tellsanguis
801e130679
fix(ci): Exclude main branch from CI workflow
...
CD - Deploy Infrastructure / ci (push) Waiting to run
CD - Deploy Infrastructure / Deploy on pve1 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve2 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve3 (push) Blocked by required conditions
CD - Deploy Infrastructure / Validate K3s Cluster (push) Blocked by required conditions
CD - Deploy Infrastructure / Deployment Notification (push) Blocked by required conditions
CI workflow now runs only on feature branches and PRs. On main, only CD workflow runs (which internally calls CI). This prevents duplicate CI runs.
2025-11-13 19:52:52 +01:00
Tellsanguis
1fc96d7a46
fix(ci): Use environment variables instead of tfvars file
...
CD - Deploy Infrastructure / ci (push) Waiting to run
CD - Deploy Infrastructure / Deploy on pve1 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve2 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve3 (push) Blocked by required conditions
CD - Deploy Infrastructure / Validate K3s Cluster (push) Blocked by required conditions
CD - Deploy Infrastructure / Deployment Notification (push) Blocked by required conditions
CI - Validation / Terraform Validation (push) Successful in 20s
CI - Validation / Ansible Validation (push) Successful in 1m31s
CI - Validation / Kubernetes Validation (push) Successful in 8s
CI - Validation / Security Scan (push) Successful in 21s
Remove terraform.tfvars.example copy that was overriding secret values. Now using TF_VAR_* environment variables exclusively to properly inject secrets from Forgejo.
2025-11-13 19:47:47 +01:00
Tellsanguis
bf6be4c637
fix(terraform): Update token ID in example from terraform to opentofu
...
CD - Deploy Infrastructure / ci (push) Waiting to run
CD - Deploy Infrastructure / Deploy on pve1 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve2 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve3 (push) Blocked by required conditions
CD - Deploy Infrastructure / Validate K3s Cluster (push) Blocked by required conditions
CD - Deploy Infrastructure / Deployment Notification (push) Blocked by required conditions
CI - Validation / Terraform Validation (push) Successful in 1m6s
CI - Validation / Ansible Validation (push) Has been cancelled
CI - Validation / Kubernetes Validation (push) Has been cancelled
CI - Validation / Security Scan (push) Has been cancelled
The example file had root@pam!terraform hardcoded, which was overriding the secret value. Updated to match the actual token name.
2025-11-13 19:45:17 +01:00
Tellsanguis
9103a64669
fix(ci): Rename secrets to avoid FORGEJO_ prefix restriction
...
CD - Deploy Infrastructure / ci (push) Waiting to run
CD - Deploy Infrastructure / Deploy on pve1 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve2 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve3 (push) Blocked by required conditions
CD - Deploy Infrastructure / Validate K3s Cluster (push) Blocked by required conditions
CD - Deploy Infrastructure / Deployment Notification (push) Blocked by required conditions
CI - Validation / Terraform Validation (push) Successful in 1m4s
CI - Validation / Ansible Validation (push) Has been cancelled
CI - Validation / Kubernetes Validation (push) Has been cancelled
CI - Validation / Security Scan (push) Has been cancelled
Forgejo does not allow secret names starting with FORGEJO_. Renamed:
- FORGEJO_TOKEN -> GIT_TOKEN
- FORGEJO_REPO_URL -> GIT_REPO_URL
2025-11-13 19:41:46 +01:00
Tellsanguis
d940f3a59c
fix(ci): Downgrade upload-artifact to v3 for Forgejo compatibility
...
CD - Deploy Infrastructure / ci (push) Waiting to run
CD - Deploy Infrastructure / Deploy on pve1 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve2 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve3 (push) Blocked by required conditions
CD - Deploy Infrastructure / Validate K3s Cluster (push) Blocked by required conditions
CD - Deploy Infrastructure / Deployment Notification (push) Blocked by required conditions
CI - Validation / Terraform Validation (push) Successful in 1m5s
CI - Validation / Ansible Validation (push) Successful in 1m28s
CI - Validation / Kubernetes Validation (push) Successful in 7s
CI - Validation / Security Scan (push) Successful in 17s
upload-artifact@v4 is not supported on Forgejo/GHES. Downgrade to v3 to ensure artifact uploads work correctly.
2025-11-13 19:30:40 +01:00
Tellsanguis
739854a371
feat(ci): Update deployment workflow for Ubuntu 24.04 and LINSTOR
...
CD - Deploy Infrastructure / ci (push) Waiting to run
CD - Deploy Infrastructure / Deploy on pve1 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve2 (push) Blocked by required conditions
CD - Deploy Infrastructure / Deploy on pve3 (push) Blocked by required conditions
CD - Deploy Infrastructure / Validate K3s Cluster (push) Blocked by required conditions
CD - Deploy Infrastructure / Deployment Notification (push) Blocked by required conditions
CI - Validation / Terraform Validation (push) Failing after 1m4s
CI - Validation / Ansible Validation (push) Successful in 1m27s
CI - Validation / Kubernetes Validation (push) Successful in 8s
CI - Validation / Security Scan (push) Successful in 17s
Update all deployment jobs to use Ubuntu 24.04 LTS template and LINSTOR storage backend for improved reliability.
2025-11-13 19:06:25 +01:00
Tellsanguis
867c5e6374
feat(terraform): Update to Ubuntu 24.04 LTS and LINSTOR storage
...
CI - Validation / Terraform Validation (push) Successful in 17s
CI - Validation / Ansible Validation (push) Successful in 1m31s
CI - Validation / Kubernetes Validation (push) Successful in 8s
CI - Validation / Security Scan (push) Successful in 17s
Update default configuration to use Ubuntu 24.04 LTS template and configure LINSTOR as the storage backend for improved reliability and performance.
2025-11-13 18:54:26 +01:00
Tellsanguis
cf5ea11740
fix(flux): Update repository URL from infra to Homelab
...
CI - Validation / Terraform Validation (push) Successful in 14s
CI - Validation / Ansible Validation (push) Successful in 55s
CI - Validation / Kubernetes Validation (push) Successful in 7s
CI - Validation / Security Scan (push) Successful in 12s
- Change GitRepository URL to match new repository name
- Repository renamed from 'infra' to 'Homelab'
2025-11-11 11:06:16 +01:00
Tellsanguis
78d3a46d31
feat(ci): Add HA support for node failures
...
CI - Validation / Terraform Validation (push) Waiting to run
CI - Validation / Ansible Validation (push) Waiting to run
CI - Validation / Kubernetes Validation (push) Waiting to run
CI - Validation / Security Scan (push) Waiting to run
Modified CI/CD workflows to gracefully handle Proxmox node failures:
CI Workflow (ci.yml):
- Terraform Plan only runs on main branch (faster CI on feature branches)
- Plan failures on unavailable nodes don't block validation
- Added warning message when plan fails
Deploy Workflow (deploy.yml):
- Added continue-on-error to all deploy jobs (pve1, pve2, pve3)
- Modified cluster validation to require 2/3 nodes (quorum)
- Enhanced deployment summary with success counter
- Exit codes: 0 if >=2 nodes, 1 if 1 node, 1 if 0 nodes
This ensures the infrastructure remains operational even when one
Proxmox node is down, maintaining HA principles.
2025-11-07 11:32:42 +01:00
Tellsanguis
495bf44ca5
fix(terraform): Add missing VM configurations to tfvars example
...
Added VM configuration objects for all three nodes:
- k3s_server_1_config: 6 cores, 12GB RAM, 100G disk
- k3s_server_2_config: 6 cores, 12GB RAM, 100G disk
- etcd_witness_config: 2 cores, 2GB RAM, 20G disk
Removed undeclared 'management_bridge' variable that was causing
warnings in terraform plan.
This allows terraform plan to execute successfully in CI with
the example configuration file.
2025-11-07 11:24:29 +01:00
Tellsanguis
6178f9f0bc
fix(terraform): Update disk syntax for Proxmox provider v2.9
...
Changed from nested `disks` block (v3.0 syntax) to flat `disk` block
(v2.9 syntax):
- disks { scsi { scsi0 { disk {...} } } } → disk { slot = 0, ... }
- Added explicit slot, type, and iothread parameters
- Maintains same functionality with v2.9-compatible syntax
2025-11-07 11:20:07 +01:00
Tellsanguis
a7172070ee
fix(terraform): Downgrade Proxmox provider to stable v2.9
...
The v3.0 provider is not yet available as a stable release in the
OpenTofu/Terraform registry. Downgraded to v2.9 which is the latest
stable version.
Also fixed minor yamllint issues in flux.yml:
- Added space after comment marker
- Removed trailing blank line
2025-11-07 10:51:53 +01:00
Tellsanguis
9f2cb11aeb
fix(ansible): Resolve YAML linting violations
...
Fixed yamllint errors and warnings across all Ansible files:
- Reformatted long lines to stay within 80 character limit
- Standardized boolean values to use true/false instead of yes/no
- Fixed YAML folding syntax for multiline strings
- Removed erroneous triple quotes in k3s-server tasks
This resolves all yamllint issues reported by the CI pipeline.
2025-11-07 10:40:53 +01:00
Tellsanguis
052006adee
feat(ci): Implement multi-module Terraform workflow
2025-11-07 10:27:09 +01:00
Tellsanguis
10ef8a6c1b
fix(ci): Address tool findings and workflow errors
2025-11-07 10:21:55 +01:00
Tellsanguis
cb6b1d666b
fix(ci): Resolve dependency issues in workflow
2025-11-07 10:13:09 +01:00
Tellsanguis
aa6ac62d92
fix: CI workflow errors (OpenTofu, sudo)
2025-11-07 10:08:20 +01:00
Tellsanguis
850045e7ed
feat: Initial commit
2025-11-07 09:33:38 +01:00