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 ---