Skip to content

Commands

All operational commands are defined as Makefile targets. Proxmox targets (pve-*) accept PVE_HOST=<name> (default: homelabpve01). Kubernetes targets (k8s-*) accept CLUSTER=<name> (default: homelabk8s01).

Documentation

Command Description
make docs Build documentation site
make docs-serve Serve documentation site locally

Setup

Command Description
make deps Install Ansible Galaxy collections
make vault-create Create an empty vault.yml and encrypt it
make vault-edit Edit vault.yml (decrypts in-place, re-encrypts on save)
make vault-encrypt Encrypt vault.yml
make vault-decrypt Decrypt vault.yml (for manual editing)

Packer

Command Description
make packer-init Initialize Packer plugins
make packer-validate Validate Packer template
make packer-build Build K8s node VM template on Proxmox

Proxmox

Command Description
make pve-configure Configure Proxmox host (repos, IOMMU, cloud-init, API token)
make pve-ssh SSH into Proxmox host

Kubernetes

Command Description
make k8s-init Initialize Terraform for K8s VMs
make k8s-plan Preview K8s VM changes
make k8s-infra Provision K8s VMs on Proxmox
make k8s-configure Bootstrap K8s cluster via Ansible
make k8s-deploy Full deploy: VMs + cluster + ArgoCD
make k8s-destroy Tear down all K8s VMs
make k8s-bootstrap Install ArgoCD and ApplicationSet (one-time)
make k8s-backup Trigger an on-demand Velero backup
make k8s-backup-status Show Velero backup and schedule status
make k8s-restore List available Velero backups for restore
make k8s-kubeconfig Copy kubeconfig from control plane to local machine
make k8s-ssh-cp SSH into control plane

HashiCorp Vault

Command Description
make vault-init Initialize Vault and configure ESO integration (one-time)
make vault-put-secret Write a secret to Vault (SECRET_PATH=... KEY=... VAL=...)
make vault-status Show Vault seal status

Examples

Override the default host or cluster by passing variables to make:

make PVE_HOST=homelabpve02 pve-configure
make CLUSTER=homelabk8s02 k8s-deploy