From 4b1b0e3b2216e2565ae486b2d8fffb8ea102df1f Mon Sep 17 00:00:00 2001 From: John Coffey Date: Sat, 15 Aug 2026 18:19:44 -0700 Subject: [PATCH] Fix two Helm chart bugs found running against a real kind cluster templates/enterprise-auth.yaml never set POSTGRES_ADDR/DATABASE/ USERNAME/PASSWORD at all -- enterprise-auth silently fell back to its localhost:5432 default and could never actually reach Postgres, crash-looping forever. Fixed to match api.yaml's existing pattern (Service DNS name + Secret-sourced password), plus a wait-for-postgres initContainer for the same startup-ordering reason api.yaml has one. templates/clickhouse.yaml was missing CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT -- same real bug docker-compose.yml had, now fixed there too: the official image's default user lacks CREATE USER privilege without it, so tenantprovision's -provision-tenant could never actually provision a tenant through this chart. Neither of these had ever been caught before because this chart had never been installed against a real cluster -- both surfaced and were fixed running the full "Trying the two-tenant example" walkthrough against a real kind cluster, ending with both tenants reaching status.phase: Active and real generated ClickHouse credentials in their Secrets, closing /docs/phase-4-runbook.md's last remaining gap. --- deploy/helm/sentry/templates/clickhouse.yaml | 10 ++++++++++ deploy/helm/sentry/templates/enterprise-auth.yaml | 13 +++++++++++++ 2 files changed, 23 insertions(+) diff --git a/deploy/helm/sentry/templates/clickhouse.yaml b/deploy/helm/sentry/templates/clickhouse.yaml index 88c59ec..9166aeb 100644 --- a/deploy/helm/sentry/templates/clickhouse.yaml +++ b/deploy/helm/sentry/templates/clickhouse.yaml @@ -29,6 +29,16 @@ spec: secretKeyRef: name: {{ .Release.Name }}-clickhouse key: password + # Same reasoning as docker-compose.yml's identical setting -- + # enterprise/internal/tenantprovision needs CREATE USER/GRANT + # on this admin connection, which the official image's + # default user doesn't have without this. Confirmed the hard + # way: -provision-tenant failed with "Not enough + # privileges... grant CREATE USER ON *.*" against a real kind + # cluster before this was added -- this chart had never + # actually been exercised against a live cluster before that. + - name: CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT + value: "1" ports: - name: http containerPort: 8123 diff --git a/deploy/helm/sentry/templates/enterprise-auth.yaml b/deploy/helm/sentry/templates/enterprise-auth.yaml index ba6f4d0..e1a99e3 100644 --- a/deploy/helm/sentry/templates/enterprise-auth.yaml +++ b/deploy/helm/sentry/templates/enterprise-auth.yaml @@ -16,6 +16,8 @@ spec: labels: {{- include "sentry.selectorLabels" (list $ "enterprise-auth") | nindent 8 }} spec: + initContainers: + {{- include "sentry.waitForTCP" (list "postgres" (printf "%s-postgres" .Release.Name) "5432") | nindent 8 }} containers: - name: enterprise-auth image: "{{ .Values.enterprise.image.repository }}:{{ .Values.enterprise.image.tag }}" @@ -26,6 +28,17 @@ spec: secretKeyRef: name: {{ .Release.Name }}-enterprise-auth key: sessionSigningKey + - name: POSTGRES_ADDR + value: "{{ .Release.Name }}-postgres:5432" + - name: POSTGRES_DATABASE + value: sentry_metadata + - name: POSTGRES_USERNAME + value: sentry + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: {{ .Release.Name }}-postgres + key: password {{- if .Values.enterprise.oidc.issuerURL }} - name: OIDC_ISSUER_URL value: {{ .Values.enterprise.oidc.issuerURL | quote }}