Platform

GitOps platform: CDK8s manifest generation and ArgoCD deployment.

The platform layer sits above bare infrastructure and delivers all applications via GitOps.

GitOps Flow

 flowchart TD
    DEV["Developer\nedits platform/cdk8s/cots/app.go"]
    PUSH["git push to v0.1.5"]
    CI["GitHub Actions CI\n.github/workflows/cdk8s-seal-publish.yml"]
    SYNTH["go run main.go\ncdk8s synth"]
    MANIFESTS["v0.1.5-manifests branch\napp/appname/*.yaml"]
    ARGOCD["ArgoCD\nApplicationSet watches branch"]
    CLUSTER["Kubernetes Cluster\nresources created/updated"]

    DEV --> PUSH
    PUSH --> CI
    CI --> SYNTH
    SYNTH --> MANIFESTS
    MANIFESTS --> ARGOCD
    ARGOCD --> CLUSTER

Key Properties

  • No secrets in git — CDK8s generates zero Secret resources. Bootstrap secrets are created by just create-secrets from a laptop.
  • Manifests are generated, not hand-written — The v0.1.5-manifests branch is machine-generated YAML. Never edit it by hand.
  • One CDK8s app per ArgoCD Application — Each main.go entry writes to a separate app/<name>/ directory, which becomes one ArgoCD Application.
  • ArgoCD is the single source of truth — All drift is auto-corrected (selfHeal: true), all removed resources are pruned (prune: true).

CDK8s Apps

DirectoryNamespace
app/longhornlonghorn-system
app/infisicalinfisical
app/grafanagrafana
app/victoria-metricsvictoria-metrics
app/victoria-logsvictoria-logs
app/alertmanageralertmanager
app/harborharbor
app/n8nn8n
app/nvidia-gpu-operatornvidia-gpu-operator
app/ollamaollama
app/comfyuicomfyui
app/trivytrivy
app/falcofalco
app/opentelemetryopentelemetry
app/headlampheadlamp
app/fleetfleet
app/ranchercattle-system