The hierarchy is: Cluster > Namespace > Application > Component
.
ββ tofu MACHINE LAYER
β ββ modules/talos-cluster Proxmox VMs + Talos config + bootstrap
β ββ clusters/<cluster> one root module and one state file each
β ββ scripts the Proxmox identity OpenTofu runs as
β
ββ talos MACHINE CONFIG INPUTS
β ββ talenv.yaml Talos + Kubernetes versions
β ββ patches shared machine config patches
β
ββ clusters WHAT EACH CLUSTER RUNS
β ββ <cluster>
β ββ root.yaml app-of-apps root
β ββ projects.yaml AppProjects
β ββ platform/*.yaml one Application per platform component
β ββ apps/*.yaml one Application per workload
β ββ values/*.yaml per-cluster Helm values
β
ββ infrastructure PLATFORM CONTENT
β ββ base/<app>/values.yaml Helm values shared by both clusters
β ββ <cluster>/<ns>/<app>/config cluster-specific CRs
β
ββ apps WORKLOAD CONTENT
ββ base/<app> manifests shared by both clusters
ββ <cluster>/<app> kustomize overlay
- Alerting: So for example a failed Argo sync is a push notification to my phone.
- Backups: The workload data on
local-pathis currently node-local and unreplicated. - App Authentication Layer: Using Envoy Gateway with a OIDC Provider.
- SAST and DAST Scanning: Trivy, SonarQube, OWASP ZAP, etc.
- Security Review & Hardening Kubescape, etc.
- Runtime Security: Tetragon, Falco, etc.
- OS Isolation: Kata Containers or similar.
- Virtual Machines: KubeVirt
- Allow spreading of Talos nodes across physical hosts: e.g.:
nodes = { "prod-cp-1" = { vm_id = 201, ip = "10.42.5.201", pve_node = "pvebig" } "prod-cp-2" = { vm_id = 202, ip = "10.42.5.202", pve_node = "pvesmall" } "prod-cp-3" = { vm_id = 203, ip = "10.42.5.203", pve_node = "pvelaptop" } }