Skip to content

Helm Solution Reinvention Audit

Read-only audit run: 2026-06-11.

Goal: compare FractalOps Helm/Argo integrations against current upstream APIs, charts, and operators. Remove local control logic where upstream reconciliation already exists. Keep only thin values, policy, and integration overlays.

  1. Daytona runtime transport

  2. Redpanda event stream

  3. Temporal control plane

  4. Project / in-sandbox build plane (retired)

    • Status: removed. The in-sandbox compose build-and-ship plane and the per-project image build pipeline were deleted. docker is a permanent exit-127 wall inside the agent sandbox; dev previews run as bare processes exposed through the daytona-proxy signed preview URL (see Dev Preview Plane).
    • The only surviving image build is the platform’s own CI runtime-image release pipeline, which is GitOps-pinned and uses the single Nexus build cache. There is no privileged BuildKit Deployment / Service / TCP IngressRoute in the runtime chart, and no unauthenticated build edge.
    • Persistent project services (databases, static-site / vercel-sim hosting, big-facility compose) live on the project’s Dokploy plane, not the sandbox.
  5. GitHub Actions runner

  6. OpenBao / External Secrets / SPIRE

  7. Traefik / Pomerium route plane

  8. Argo CD delivery

  9. DataHub

  10. Hasura

  1. OpenTelemetry Collector
  • Local smell: custom collector mini-chart with empty values and no upstream presets for Kubernetes attributes or log collection.
  • Status: local collector Deployment/Service/ConfigMap removed; chart is now an upstream open-telemetry/opentelemetry-collector wrapper with only FractalOps collector config and Traefik edge overlay.
  • Replace with: upstream open-telemetry/opentelemetry-collector chart wrapper with mode, config, presets.kubernetesAttributes, and optional presets.logsCollection.
  • Sources: https://github.com/open-telemetry/opentelemetry-helm-charts, https://opentelemetry.io/docs/collector/
  1. Headlamp
  1. Nexus
  • Local smell: custom Deployment, PVC, ConfigMap, Service, and Ingress duplicate official chart behavior.
  • Status: Deployment, Service, PVC, and Ingress moved to upstream nexus/nexus chart values. FractalOps keeps only the custom Pomerium auth config, GHCR pull ExternalSecret, and NetworkPolicy overlay.
  • Replace with: official Nexus chart dependency and values for persistence, uplinks, auth config, and ingress.
  • Sources: https://github.com/nexus/charts, https://charts.nexus.org/index.yaml, https://www.nexus.org/docs/configuration
  1. Mimir

  2. Supabase Storage / Realtime

  3. ClickHouse

  4. Grafana

  5. Novu datastores

    • Local smell: Novu chart embedded raw MongoDB/Valkey Deployments, root chown initContainers, hand-written Services, and standalone PVCs.
    • Status: raw MongoDB and Valkey workloads removed. Novu now uses Bitnami MongoDB and Valkey chart dependencies. Existing novu-mongodb and novu-valkey service names remain stable for app pods; OpenBao still owns the runtime secret.
    • Replace with: upstream chart values for datastore StatefulSets, persistence, probes, securityContext, and service wiring.
    • Sources: https://github.com/bitnami/charts/tree/main/bitnami/mongodb, https://github.com/bitnami/charts/tree/main/bitnami/valkey
  6. Longhorn

  7. OpenFGA

  8. Windmill

  1. Velero

    • Local good path: main velero-values.yaml already uses official chart values for backup storage, schedules, and node agent.
    • Local cleanup: velero-config separately creates object-store credentials and a MinIO bucket job. Bucket creation belongs to storage provisioning; credentials belong to the Velero chart secret path or pre-provisioned secret.
    • Status: velero-config app removed; object-store ExternalSecret moved to Velero chart extraObjects; bucket init job removed.
    • Replace with: one Velero chart surface, official credentials values, and storage-layer bucket provisioning.
    • Sources: https://velero.io/docs/main/locations/, https://velero.io/docs/v1.17/api-types/backupstoragelocation/, https://velero.io/docs/main/file-system-backup/
  2. Penpot

    • Local good path: OIDC values mostly use the official Penpot chart.
    • Local cleanup: bundled PostgreSQL/Valkey values and stable-service wrapper are stale; current chart expects external PostgreSQL/Valkey. Hand-created assets PVC can move to chart persistence unless custom labels are required.
    • Status: stable-service wrapper and hand-created assets PVC removed; chart persistence now owns the assets claim. External PostgreSQL/Valkey cutover is still pending.
    • Replace with: external DB/Valkey connection values, chart-managed asset persistence, public/internal OIDC endpoint split, and no stable-service wrapper once dependencies are externalized.
    • Sources: https://help.penpot.app/technical-guide/configuration/, https://github.com/penpot/penpot-helm/blob/develop/charts/penpot/README.md
  3. Kyverno

  • Prefer upstream Helm chart or operator CR over local Deployment/StatefulSet templates.
  • Use CUE to produce values and policy inputs, not to recreate Helm templates.
  • Keep local charts only for FractalOps-owned services or thin integration overlays.
  • Move bootstrap/reconciliation out of shell jobs when the provider has a native controller, hook, CRD, or CLI workflow.
  • Keep Kyverno for admission/platform policy; keep OpenFGA/OPA for application authorization only when they are real decision points.