Skip to content

Consolidate PRs #191, #195, #200 into 4.2.0 - #216

Merged
ranyhb merged 5 commits into
masterfrom
feature/enhancements-4.2.0
Aug 26, 2026
Merged

ranyhb merged 5 commits into
masterfrom
feature/enhancements-4.2.0

Conversation

@ranyhb

@ranyhb ranyhb commented Aug 25, 2026 •

Copy link
Copy Markdown
Collaborator

Consolidates the three remaining actionable PRs into a 4.2.0 release. Supersedes and closes #191, #195, #200. Each is a separate commit with the original author credited via Co-authored-by.

PR Author Change
#200 @brianrudolf Emit SQLALCHEMY_ENABLE_POOL_PRE_PING
#195 @seslly Honor postgresql.auth.existingSecret for the database password
#191 @Mason0920 topologySpreadConstraints on all workloads

Two of these fix values that silently did nothing

#200 — redash.sqlAlchemyEnablePoolPrePing has been in values.yaml with a documented default of "true", but the shared env helper never emitted the variable. Rendered output contained zero occurrences of SQLALCHEMY_ENABLE_POOL_PRE_PING, so anyone who set it got nothing. Now emitted across all six workloads.

#195 — REDASH_DATABASE_PASSWORD was hardcoded to the password key of <release>-postgresql. Pointing the bundled PostgreSQL at an existing secret left Redash referencing a secret that does not exist. The upstream patch referenced postgresql.auth.secretKeys.userPasswordKey, which this chart never declared, so the key would have resolved empty when only existingSecret was set — both values are now declared and documented.

Verified across all three paths:

values rendered secretKeyRef
default {name: test-postgresql, key: password} (unchanged from master)
existingSecret=my-pg {name: my-pg, key: password}
+ userPasswordKey=pgpass {name: my-pg, key: pgpass}

#191 was reimplemented, not applied

The upstream patch made the chart fail to render entirely:

Error: parse error at (redash/templates/worker-deployment.yaml:83): bad character U+0024 '$'

It wrote .Values.$workerConfig.topologySpreadConstraints — a variable can't be used as a field name. Three further problems: it used indent 8 where every surrounding block uses nindent 8 (malformed YAML), declared the value as {} though the field is a list, and predated the Knative template.

Reimplemented in the chart's existing style, reading the merged $workerConfig so per-worker overrides work:

test-redash-adhocworker        maxSkew=9 key=topology.kubernetes.io/zone   <- workers.adhoc override
test-redash-genericworker      maxSkew=1 key=kubernetes.io/hostname        <- worker default
test-redash-scheduledworker    maxSkew=1 key=kubernetes.io/hostname

Applied to server, all workers, scheduler, migrations and the Knative Service. Knative gates this PodSpec field, so it needs the corresponding config-features flag there.

Verification

helm lint and helm template pass in default and Knative mode. Rendered manifests parsed as YAML: 31 documents, imagePullSecrets on all 6 pod controllers, 3/3 distinct worker selectors. With no values set, topologySpreadConstraints appears zero times — no behaviour change for existing releases. The 4.1.0 probe helper and clusterDomain still behave correctly.

No upgrade steps: unlike 4.1.0, nothing here touches an immutable field.

🤖 Generated with Claude Code

Review in cubic

ranyhb and others added 4 commits August 26, 2026 00:29
values.yaml has documented redash.sqlAlchemyEnablePoolPrePing with a
default of "true" since it was added, but the shared env helper never
emitted the variable, so setting it did nothing.

Upstream: #200

Co-authored-by: brianrudolf <brianrudolf@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
REDASH_DATABASE_PASSWORD was hardcoded to the `password` key of the
chart-managed `<release>-postgresql` secret. A release pointing the
bundled PostgreSQL at an existing secret left Redash referencing a
secret that does not exist.

Adds the accompanying postgresql.auth.existingSecret and
postgresql.auth.secretKeys.userPasswordKey values, which the upstream
PR referenced but never declared, so the key does not resolve empty
when only existingSecret is set. Default renders are unchanged.

Upstream: #195

Co-authored-by: seslly <seslly@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Exposes topologySpreadConstraints for the server, workers, scheduler
and migrations job, alongside the existing nodeSelector/affinity/
tolerations settings.

Reimplemented rather than applied: the upstream patch referenced
`.Values.$workerConfig.topologySpreadConstraints` in the worker
template, which is not valid template syntax and made the whole chart
fail to render with `bad character U+0024 '$'`. Workers read the
merged $workerConfig, so per-worker overrides of the shared
worker.topologySpreadConstraints default work. The upstream patch also
used `indent 8` where the surrounding blocks use `nindent 8`, which
would have emitted malformed YAML, and declared the value as `{}`
though the field is a list.

Also applied to the Knative Service template, which the upstream PR
predates. Note that Knative gates this PodSpec field, so it needs the
corresponding config-features flag enabled.

Upstream: #191

Co-authored-by: Mason0920 <Mason0920@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 10 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread charts/redash/templates/_helpers.tpl Resolved
@ranyhb
ranyhb merged commit d0c3d38 into master Aug 26, 2026
34 of 42 checks passed
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