Skip to content

feat(helm): add secret/config consumption wiring (cert mounts, reloader, extraConfig)#3734

Closed
djwhitt wants to merge 1 commit into
feat/helm-external-secretsfrom
davidwhittington/helm-wiring-on-eso
Closed

feat(helm): add secret/config consumption wiring (cert mounts, reloader, extraConfig)#3734
djwhitt wants to merge 1 commit into
feat/helm-external-secretsfrom
davidwhittington/helm-wiring-on-eso

Conversation

@djwhitt

@djwhitt djwhitt commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Stacks the secret/config consumption wiring from #3728 onto the feat/helm-external-secrets branch (#3729), so the chart that #575 deploys can actually use the secrets ESO materializes. #3729 renders the ExternalSecrets; this adds the half that reads them.

Targets feat/helm-external-secrets so everything lands on the branch supabase/k8s-observability#575 points at. Supersedes #3728 (which was a parallel branch off feat/helm) — close that one once this merges.

What this adds (cherry-picked from the approved #3728)

  • Cert-file mount: logflare.certFilesSecret / certFilesMountPath mount the logflare-cert-files Secret as files and set DB_SSL_CA_CERT_PATH / DB_SSL_CLIENT_CERT_PATH / DB_SSL_CLIENT_KEY_PATH / LOGFLARE_TLS_CERT_PATH / LOGFLARE_TLS_KEY_PATH. Without this, ESO creates logflare-cert-files but the app never sees the certs (it reads them from disk).
  • logflare.extraConfig: free-form non-secret env vars rendered into the ConfigMap — for the long tail of per-env config (e.g. SPOOL_*, LIBCLUSTER_TOPOLOGY, LOGFLARE_LOG_LEVEL).
  • logflare.reloader: optional Stakater Reloader annotation so the Deployment rolls on ConfigMap/Secret changes.

All default-off; existing rendering is unchanged. Includes the helm-unittest coverage from #3728. Clean cherry-pick — no version double-bump (Chart.yaml stays at #3729's 0.2.0).

Follow-ups (not blocking)

  • README now documents cert files two ways — the dedicated certFilesSecret (this PR) and the generic volumes/volumeMounts example (feat(helm): add optional ESO ExternalSecret templates #3729). Worth consolidating on certFilesSecret since it also wires the *_PATH env vars.
  • supabase/k8s-observability#575's valuesObject should set certFilesSecret: logflare-cert-files (rather than manual volumes) to get the mount + path env vars.

Depends on / stacks with #3719 and #3729.

Builds on the initial chart to support the full secret/config surface a
production deployment needs:

- certFilesSecret / certFilesMountPath: mount a Secret of cert/key files
  (DB SSL + gRPC TLS) as files, and point the DB_SSL_*_PATH / LOGFLARE_TLS_*_PATH
  env vars at the mount. Logflare reads these from disk, so envFrom can't carry
  them. (Requires the configurable-path support in logflare runtime.exs.)
- reloader: optional Stakater Reloader annotation so the Deployment rolls when
  its ConfigMap or referenced Secrets change (the chart can't checksum Secrets
  it doesn't own).
- extraConfig: free-form passthrough of non-secret env vars into the ConfigMap,
  for the long tail of configuration not modeled as first-class values.

Adds helm-unittest coverage for each and documents them in the README. All new
behavior is default-off, so existing rendering is unchanged.
@djwhitt

djwhitt commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

Closing in favor of #3728 — the separate stacked PR adds more confusion than it's worth.

@djwhitt djwhitt closed this Jul 24, 2026
@djwhitt
djwhitt deleted the davidwhittington/helm-wiring-on-eso branch July 24, 2026 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant