Workloads

All workloads deployed to the cluster via CDK8s and Argo CD.

All applications are defined as CDK8s Go code in workloads/, synthesized to YAML by CI, and deployed by Argo CD from the v0.1.7-manifests branch.

App Catalog

One row per chart in workloads/main.go — 23 of them.

AppNamespaceURLUIPurpose
ComfyUIcomfyuihttps://comfyui.madhan.appYesImage generation — off by default, see ComfyUI
Ollamaollamahttps://ollama.madhan.appNo (REST)LLM inference server
Kubeflowkubeflowhttps://kubeflow.madhan.appYesNotebooks and pipelines
notebook-gateway-controllerkubeflow—NoCreates HTTPRoutes for Kubeflow notebooks
NVIDIA Device Pluginnvidia-gpu-operator—NoGPU device plugin + NFD
n8nn8nhttps://n8n.madhan.appYesWorkflow automation
CloudNativePGcnpg-system—NoPostgreSQL operator
Grafanagrafanahttps://grafana.madhan.appYesDashboards
VictoriaMetricsvictoria-metricshttps://vmselect.madhan.appYes (vmui)Metrics storage + Alertmanager
VictoriaLogsvictoria-logshttps://victorialogs.madhan.appYesLog storage
OpenTelemetryopentelemetry—NoMetrics + log collection
Metrics Serverkube-system—Nokubectl top and HPA
argocd-monitorargocd—NoServiceMonitors for Argo CD components
Falcofalcohttps://falco.madhan.appYes (sidekick-ui)Runtime syscall security
Trivytrivy—NoVulnerability scanning
Kyvernokyverno—NoAdmission control and background scans
Headlampheadlamphttps://headlamp.madhan.appYesKubernetes dashboard
OpenBaoopenbaohttps://openbao.madhan.appYesSecrets management
Secrets Store CSI Driverkube-system—NoMounts OpenBao secrets into pods
Harborharborhttps://harbor.madhan.appYesContainer registry
Longhornlonghorn-systemhttps://longhorn.madhan.appYesDistributed block storage
NetBird peernetbird—NoIn-cluster WireGuard routing peer
Reloaderreloader—NoAuto-reload pods on ConfigMap/Secret changes

Runtime Secrets (OpenBao + CSI Driver)

All apps source their runtime secrets from OpenBao via the Secrets Store CSI Driver. CDK8s generates zero Secret resources.

AppOpenBao PathPatternk8s Secret created
Grafanasecret/data/grafanaB (secretObjects)grafana-oauth-secret
Harborsecret/data/harborB (secretObjects)harbor-admin
n8nsecret/data/n8nB (secretObjects)n8n-secrets
NetBirdsecret/data/netbirdB (secretObjects)netbird-setup-key

Grafana uses both halves: its admin password is file-only, while the OIDC client secret has to be a k8s Secret because Grafana reads it as a GF_ env var.

The two patterns are explained once in Secrets.