Prerequisites¶
Before deploying the homelab, ensure the following hardware, software, and credentials are in place.
Hardware¶
Proxmox Host¶
A machine running Proxmox VE with:
- SSH access as
root(password or key-based) - Sufficient CPU, memory, and storage for the Kubernetes VMs you plan to provision
NAS¶
A Unifi NAS (or compatible NFS server) with:
- NFS enabled
- A
/datashare created and exported to the subnet your K8s nodes will use
Credentials¶
PIA VPN¶
A Private Internet Access (PIA) VPN subscription. You will need your PIA username and password to create the VPN secret used by the Gluetun container in the *arr stack.
Local Machine¶
Install the following tools on the machine you will run deployments from:
| Tool | Purpose |
|---|---|
| Packer | Build K8s node VM templates on Proxmox |
| Terraform | Provision VMs on Proxmox |
| Ansible | Configure Proxmox hosts and bootstrap Kubernetes |
| kubectl | Interact with the Kubernetes cluster |
| Vault CLI | Manage secrets in HashiCorp Vault |
| Velero CLI | Manage cluster backups |
| SSH key pair | Used by Terraform and Ansible to access VMs |
Tip
Run make deps to install the required Ansible Galaxy collections. All other tools listed above must be installed manually.
What You Do NOT Need to Set Up Manually¶
Everything else is automated by make pve-configure, including:
- Cloning the required repositories to the Proxmox host
- Enabling IOMMU / PCI passthrough
- Creating the cloud-init VM template
- Generating a Proxmox API token for Terraform
You only need a fresh Proxmox VE install with root SSH access to get started.