Skip to content

Latest commit

 

History

History
43 lines (28 loc) · 3.04 KB

README.md

File metadata and controls

43 lines (28 loc) · 3.04 KB

🚀 GitOps supercharged Kubernetes cluster ⛵

💻 Virtualized infrastructure with Proxmox

🔧 VM provisioning and cluster bootstrapping with Ansible

🤖 Application workload management with Flux


⚙️  Hardware

Node CPU RAM Storage Function Operating System
Minisforum NBP5 i5 13500H 32GB DDR5 1TB m.2 1x k3s Master
1x k3s Worker (with iGPU)
Proxmox 8.x
Custom NAS build N5105 32GB DDR4 256GB m.2
16TB HDD
10TB HDD
TrueNAS
1x k3s Master
1x k3s Worker
Proxmox 8.x
Topton router N5105 16GB DDR4 512GB m.2 OPNSense
1x k3s Master
Proxmox 8.x

📂  Repository structure

  • bootstrapping directory contains Ansible playbooks and roles. It's used to spin up VMs inside proxmox, configure those VMs, and lastly bootstrap the k3s Kubernetes cluster.
  • cluster directory contains Kubernetes application workloads with following sub-dirs:
    • flux directory is the entrypoint to Flux
    • core directory (depends on flux) are important infrastructure applications (grouped by namespace). Flux is configured to not prune these resources automatically.
    • apps directory (depends on core) is where common applications (grouped by namespace) are placed. Flux will prune resources here if they are not tracked by Git anymore

🔏  Secret and configuration management

Secrets are encrypted with sops using age before being pushed into this repository. Flux is configured to automatically decrypt these secrets inside the cluster. This allows secret values to be configured in cluster-secrets.yaml and in cluster-settings.yaml.


🤖  Automation

  • Renovate helps keep workloads up-to-date by scanning the repo and opening pull requests when it detects a new container image update or a new helm chart in the upstream repository
  • Container images: Some self-managed container images are automatically built using Github Actions once a new version is detected in the upstream container image registry. Both AMD64 and ARM architectures supported and Trivy is used to scan and provide vulnerability reporting for the produced images. NOTE: This is no longer maintained.