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.
This commit is contained in:
2026-08-15 18:19:44 -07:00
parent 783d66786b
commit 4b1b0e3b22
2 changed files with 23 additions and 0 deletions
@@ -29,6 +29,16 @@ spec:
secretKeyRef: secretKeyRef:
name: {{ .Release.Name }}-clickhouse name: {{ .Release.Name }}-clickhouse
key: password 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: ports:
- name: http - name: http
containerPort: 8123 containerPort: 8123
@@ -16,6 +16,8 @@ spec:
labels: labels:
{{- include "sentry.selectorLabels" (list $ "enterprise-auth") | nindent 8 }} {{- include "sentry.selectorLabels" (list $ "enterprise-auth") | nindent 8 }}
spec: spec:
initContainers:
{{- include "sentry.waitForTCP" (list "postgres" (printf "%s-postgres" .Release.Name) "5432") | nindent 8 }}
containers: containers:
- name: enterprise-auth - name: enterprise-auth
image: "{{ .Values.enterprise.image.repository }}:{{ .Values.enterprise.image.tag }}" image: "{{ .Values.enterprise.image.repository }}:{{ .Values.enterprise.image.tag }}"
@@ -26,6 +28,17 @@ spec:
secretKeyRef: secretKeyRef:
name: {{ .Release.Name }}-enterprise-auth name: {{ .Release.Name }}-enterprise-auth
key: sessionSigningKey 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 }} {{- if .Values.enterprise.oidc.issuerURL }}
- name: OIDC_ISSUER_URL - name: OIDC_ISSUER_URL
value: {{ .Values.enterprise.oidc.issuerURL | quote }} value: {{ .Values.enterprise.oidc.issuerURL | quote }}