K3S high-availability cluster, deployed with Ansible.
- 8 x Raspberry Pi 4B with 8GB RAM
- 8 x Samsung PM883 240GB SSD, connected to same USB port
- 8 x SLK Tech Sata to USB cable
- UniFi UDM-SE cloud gateway, for dedicated network management
- UniFi USW-Pro-24-POE switch, powering the Raspberry Pi's
- ArgoCD
- Cilium
- Cloudflare Let's Encrypt certificates deployed with cert-manager
- HAProxy load balancer for controlplanes
- K3S production ready deployment
- Longhorn
- Prometheus Stack
- Renovate
- Sealed Secrets
- Ubuntu LTS 22.04 OS with unattended upgrades enabled
- Automate the k3s cluster upgrades, chart upgrades are functional
- Update Renovate configuration, for automated version upgrades
- Finalize documentation
Install dependencies in MacOS:
brew install ansible ansible-lint
brew tap esolitos/ipa
brew install esolitos/ipa/sshpass
Upgrade kubernetes.core collection:
ansible-galaxy collection install -U kubernetes.core
Deploy cluster:
ansible-playbook --ask-vault-pass provisioning.yaml
Reset cluster:
ansible-playbook --ask-vault-pass reset.yaml
Each role has their own dedicated README, for additional details and required settings.