Fix NATS auth: wrap env-var passwords in << >> so the server expands them #306

Merged
benvin merged 1 commits from benvin/logging-deploy-fixes-2 into main 2026-07-29 19:28:27 +10:00
@@ -22,16 +22,19 @@ config:
size: 180Gi size: 180Gi
storageClassName: cephrbd-fast-delete storageClassName: cephrbd-fast-delete
# Per-user auth with publish/subscribe separation. Passwords are injected as # Per-user auth with publish/subscribe separation. Passwords are injected as
# env vars from the Vault-synced nats-auth Secret (NATS expands $VAR in config). # env vars from the Vault-synced nats-auth Secret. The `<< $VAR >>` wrapping is
# REQUIRED by this chart: it renders the value UNQUOTED in nats.conf so the
# NATS server expands the env var. A plain `$VAR` is JSON-quoted ("$VAR") and
# NATS then treats it as a literal string — which broke auth for every client.
merge: merge:
authorization: authorization:
users: users:
# Bootstrap Job (stream/consumer management) — full JetStream API. # Bootstrap Job (stream/consumer management) — full JetStream API.
- user: log-admin - user: log-admin
password: $NATS_ADMIN_PASSWORD password: << $NATS_ADMIN_PASSWORD >>
# Edge publishers (k8s DaemonSet + VM ingest) — publish only. # Edge publishers (k8s DaemonSet + VM ingest) — publish only.
- user: log-producer - user: log-producer
password: $NATS_PRODUCER_PASSWORD password: << $NATS_PRODUCER_PASSWORD >>
permissions: permissions:
publish: publish:
allow: allow:
@@ -42,7 +45,7 @@ config:
# Consumers (transform tier + archiver) — pull + ack only, no publish # Consumers (transform tier + archiver) — pull + ack only, no publish
# to log subjects. # to log subjects.
- user: log-consumer - user: log-consumer
password: $NATS_CONSUMER_PASSWORD password: << $NATS_CONSUMER_PASSWORD >>
permissions: permissions:
publish: publish:
allow: allow: