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-controllerkubeflowNoCreates HTTPRoutes for Kubeflow notebooks
NVIDIA Device Pluginnvidia-gpu-operatorNoGPU device plugin + NFD
n8nn8nhttps://n8n.madhan.appYesWorkflow automation
CloudNativePGcnpg-systemNoPostgreSQL operator
Grafanagrafanahttps://grafana.madhan.appYesDashboards
VictoriaMetricsvictoria-metricshttps://vmselect.madhan.appYes (vmui)Metrics storage + Alertmanager
VictoriaLogsvictoria-logshttps://victorialogs.madhan.appYesLog storage
OpenTelemetryopentelemetryNoMetrics + log collection
Metrics Serverkube-systemNokubectl top and HPA
argocd-monitorargocdNoServiceMonitors for Argo CD components
Falcofalcohttps://falco.madhan.appYes (sidekick-ui)Runtime syscall security
TrivytrivyNoVulnerability scanning
KyvernokyvernoNoAdmission control and background scans
Headlampheadlamphttps://headlamp.madhan.appYesKubernetes dashboard
OpenBaoopenbaohttps://openbao.madhan.appYesSecrets management
Secrets Store CSI Driverkube-systemNoMounts OpenBao secrets into pods
Harborharborhttps://harbor.madhan.appYesContainer registry
Longhornlonghorn-systemhttps://longhorn.madhan.appYesDistributed block storage
NetBird peernetbirdNoIn-cluster WireGuard routing peer
ReloaderreloaderNoAuto-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.