From b20ad9c275e948107bfc2fc8fcef623d7ca4ef85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torjus=20H=C3=A5kestad?= Date: Sat, 31 Jan 2026 23:33:14 +0100 Subject: [PATCH] docs: mark Phase 1 of automated deployment pipeline as completed Phase 1 is now fully implemented with parameterized multi-VM deployments via OpenTofu. Updated status, tasks, and added implementation details. Co-Authored-By: Claude Sonnet 4.5 --- TODO.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/TODO.md b/TODO.md index 0000856..181c9c5 100644 --- a/TODO.md +++ b/TODO.md @@ -23,17 +23,30 @@ Automate the entire process of creating, configuring, and deploying new NixOS ho ## The Plan -### Phase 1: Parameterized OpenTofu Deployments ✓ (Partially Complete) +### Phase 1: Parameterized OpenTofu Deployments ✅ COMPLETED -**Status:** Template building works, single VM deployment works, need to parameterize +**Status:** Fully implemented and tested + +**Implementation:** +- Locals-based structure using `for_each` pattern for multiple VM deployments +- All VM parameters configurable with smart defaults (CPU, memory, disk, IP, storage, etc.) +- Automatic DHCP vs static IP detection based on `ip` field presence +- Dynamic outputs showing deployed VM IPs and specifications +- Successfully tested deploying multiple VMs simultaneously **Tasks:** -- [ ] Create module/template structure in terraform for repeatable VM deployments -- [ ] Parameterize VM configuration (hostname, CPU, memory, disk, IP) -- [ ] Support both DHCP and static IP configuration via cloud-init -- [ ] Test deploying multiple VMs from same template +- [x] Create module/template structure in terraform for repeatable VM deployments +- [x] Parameterize VM configuration (hostname, CPU, memory, disk, IP) +- [x] Support both DHCP and static IP configuration via cloud-init +- [x] Test deploying multiple VMs from same template -**Deliverable:** Can deploy a VM with custom parameters via OpenTofu +**Deliverable:** ✅ Can deploy multiple VMs with custom parameters via OpenTofu in a single `tofu apply` + +**Files:** +- `terraform/vms.tf` - VM definitions using locals map +- `terraform/outputs.tf` - Dynamic outputs for all VMs +- `terraform/variables.tf` - Configurable defaults +- `terraform/README.md` - Complete documentation ---