Skip to content

Restructure infra repo into documentation-first homelab platform#8

Closed
azunaVT wants to merge 1 commit intomainfrom
codex/restructure-repository-for-documentation-first-direction
Closed

Restructure infra repo into documentation-first homelab platform#8
azunaVT wants to merge 1 commit intomainfrom
codex/restructure-repository-for-documentation-first-direction

Conversation

@azunaVT
Copy link
Collaborator

@azunaVT azunaVT commented Mar 10, 2026

Motivation

  • Pivot the repository from an implementation-first bare‑metal Talos/PXE focus to a documentation‑first homelab/platform roadmap that centers on Proxmox-first virtualization, virtualized Kubernetes, Argo CD GitOps, and TrueNAS as a separate storage anchor.
  • Preserve the old Talos/PXE artifacts as a clearly labeled archive for reference while avoiding retention of sensitive operational values in active docs.

Description

  • Created a documentation-first top-level layout and content, adding docs/{vision,inventory,architecture,decisions,runbooks,roadmap,archive} plus proxmox/, kubernetes/, argocd/, automation/, ai/, scripts/, and .github/ISSUE_TEMPLATE/ with starter content and README stubs.
  • Added a practical root README.md, a documentation index (docs/README.md), inventory and media-stack docs (docs/inventory/* and docs/inventory/current-media-stack.md), architecture drafts (docs/architecture/*), runbook (docs/runbooks/bootstrap-sequence.md), roadmap (milestones/backlog/current-phase/media-migration), and ADRs (docs/decisions/ADR-001 through ADR-005) in the requested ADR format.
  • Archived legacy infrastructure into docs/archive/legacy-baremetal-talos-pxe/infra/ and replaced sensitive values with a redacted terraform.auto.tfvars sample; preserved legacy Terraform/Talos modules for reference rather than deletion.
  • Added GitHub-native templates and workflow helpers: .github/ISSUE_TEMPLATE/{task,epic,decision}.yml and .github/pull_request_template.md, and ensured all new files explicitly mark TODOs where exact technical details are intentionally omitted.

Testing

  • Ran git status --short --branch to confirm working-tree changes and branch context and it completed successfully.
  • Verified the docs tree with find docs -maxdepth 4 -type f | sort and confirmed the expected files were created.
  • Committed the changes successfully with git add -A && git commit -m "Restructure repo to documentation-first homelab platform" which recorded the new layout (68 files changed).
  • Attempted git push -u origin docs/pivot-homelab-platform which failed due to no origin remote configured in this environment, so the branch has been created and committed locally but not pushed to a remote from this run.

Codex Task

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR pivots the repository into a documentation-first homelab/platform hub (Proxmox → virtualized Kubernetes → Argo CD GitOps, with TrueNAS as a separate storage anchor) while archiving the previous Talos/PXE bare-metal implementation and redacting sensitive operational values.

Changes:

  • Introduces a new docs-centric structure (docs/{vision,inventory,architecture,decisions,runbooks,roadmap,archive}) plus top-level stubs for platform areas (proxmox/, kubernetes/, argocd/, automation/, ai/, scripts/).
  • Adds foundational documentation: vision, inventories, architecture drafts, bootstrap sequence runbook, roadmap (milestones/backlog/current phase/media migration), and ADRs (ADR-001..ADR-005).
  • Archives legacy Talos/PXE Terraform/Talos artifacts under docs/archive/..., removes the previously live terraform.auto.tfvars, and adds a redacted sample tfvars in the archive; adds GitHub issue/PR templates.

Reviewed changes

Copilot reviewed 36 out of 68 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
scripts/README.md Adds scripts area stub and basic hygiene guidelines.
proxmox/README.md Adds Proxmox planning stub.
kubernetes/README.md Adds Kubernetes planning/ops stub for VM-based cluster.
infra/live/prod/terraform.auto.tfvars Removes previously live environment-specific tfvars (sensitive values).
docs/vision/homelab-vision.md Establishes platform purpose, direction, and principles.
docs/runbooks/bootstrap-sequence.md Adds conservative doc-first bootstrap sequencing runbook.
docs/roadmap/milestones.md Defines milestone progression for the new platform direction.
docs/roadmap/media-migration.md Drafts media migration roadmap and evaluation phases.
docs/roadmap/current-phase.md Documents current “Foundation / Repository Realignment” phase.
docs/roadmap/backlog.md Adds a starter backlog aligned to the roadmap.
docs/inventory/service-inventory.md Establishes service inventory baseline and TODOs.
docs/inventory/network-inventory.md Captures known network hardware and TODOs for segmentation.
docs/inventory/hardware-inventory.md Captures known hardware assets and TODOs for details.
docs/inventory/current-media-stack.md Documents current media stack baseline (compose on VM + NFS).
docs/decisions/ADR-005-media-platform-stays-separate-from-core-lab.md Records decision to keep media workstream operationally separate.
docs/decisions/ADR-004-truenas-separate.md Records decision to keep TrueNAS as separate storage anchor.
docs/decisions/ADR-003-argocd-over-flux.md Records decision preferring Argo CD over Flux going forward.
docs/decisions/ADR-002-k8s-inside-proxmox.md Records decision to run initial Kubernetes inside Proxmox VMs.
docs/decisions/ADR-001-proxmox-first.md Records decision to adopt Proxmox-first direction.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/node/variables.tf Archives legacy Talos node module inputs.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/node/templates/worker.yaml.tftpl Archives legacy worker template placeholder.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/node/templates/controlplane.yaml.tftpl Archives legacy Talos controlplane template.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/node/templates/cilium-install.yaml.tftpl Archives legacy inline manifest for Cilium install.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/node/providers.tf Archives legacy provider constraints for node module.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/node/main.tf Archives legacy Talos apply workflow for nodes.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/github_deploy_key/variables.tf Archives legacy module variables for deploy key.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/github_deploy_key/providers.tf Archives legacy provider constraints for deploy key module.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/github_deploy_key/outputs.tf Archives outputs for generated deploy key material.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/github_deploy_key/main.tf Archives deploy key creation logic.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/flux/variables.tf Archives legacy Flux module inputs.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/flux/values/components.yaml Archives Flux component selection/patching values.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/flux/providers.tf Archives Flux module provider constraints.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/flux/main.tf Archives Flux operator/instance installation logic.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/config/variables.tf Archives config module inputs (Talos, Cilium, etc.).
docs/archive/legacy-baremetal-talos-pxe/infra/modules/config/providers.tf Archives provider constraints for config module.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/config/outputs.tf Archives sensitive outputs (secrets/config/manifests).
docs/archive/legacy-baremetal-talos-pxe/infra/modules/config/main.tf Archives Talos secrets + Cilium template generation logic.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/cluster/variables.tf Archives cluster module inputs.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/cluster/providers.tf Archives provider constraints for cluster module.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/cluster/outputs.tf Archives kubeconfig connection material outputs.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/cluster/main.tf Archives Talos bootstrap + kubeconfig generation logic.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/baremetal/variables.tf Archives baremetal module inputs/validation.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/baremetal/providers.tf Archives provider constraints for baremetal module.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/baremetal/outputs.tf Archives baremetal module outputs.
docs/archive/legacy-baremetal-talos-pxe/infra/modules/baremetal/main.tf Archives PXE helper container + image factory logic.
docs/archive/legacy-baremetal-talos-pxe/infra/live/prod/variables.tf Archives legacy live/prod variables.
docs/archive/legacy-baremetal-talos-pxe/infra/live/prod/terraform.auto.tfvars Adds redacted sample tfvars for archived live/prod.
docs/archive/legacy-baremetal-talos-pxe/infra/live/prod/providers.tf Archives live/prod provider configuration.
docs/archive/legacy-baremetal-talos-pxe/infra/live/prod/main.tf Archives live/prod wiring of legacy modules.
docs/archive/legacy-baremetal-talos-pxe/infra/live/prod/.terraform.lock.hcl Archives OpenTofu lockfile for legacy live/prod.
docs/archive/legacy-baremetal-talos-pxe/infra/live/dev/.gitkeep Keeps dev live directory in archive.
docs/archive/legacy-baremetal-talos-pxe/infra/README.md Archives legacy infra README and usage notes.
docs/archive/legacy-baremetal-talos-pxe/README.md Adds archive-level explanation and safety note.
docs/archive/README.md Adds archive index description and guardrail.
docs/architecture/target-architecture.md Defines working-draft target architecture.
docs/architecture/security-model.md Defines baseline security model and TODOs.
docs/architecture/proxmox-k8s-strategy.md Captures Proxmox→K8s strategy and rationale.
docs/architecture/network-topology.md Captures draft topology and segmentation intent.
docs/architecture/media-platform.md Captures media platform current/future state framing.
docs/README.md Adds docs index entrypoint.
automation/README.md Adds automation area stub + conventions statement.
argocd/README.md Adds Argo CD area stub.
ai/README.md Adds AI workstream area stub.
README.md Adds root repository entrypoint and navigation.
.github/pull_request_template.md Adds PR template aligned to the new workflow.
.github/ISSUE_TEMPLATE/task.yml Adds Task issue template.
.github/ISSUE_TEMPLATE/epic.yml Adds Epic issue template.
.github/ISSUE_TEMPLATE/decision.yml Adds Decision issue template.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +5 to +15
cluster_nodes = {
node0 = {
hostname = "TODO.example.internal"
ip = "TODO"
mac_address = "TODO"
wake_on_lan_mac = "TODO"
install_disk = "/dev/TODO"
role = "controlplane"
bootstrap = true
}
}
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The redacted sample uses cluster_nodes key node0, but main.tf references var.cluster_nodes["nx0"]/nx1/nx2. Align the sample keys with the expected map keys (or adjust main.tf) so the sample is internally consistent.

Copilot uses AI. Check for mistakes.
@azunaVT azunaVT closed this Mar 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants