thoras-config-controller Secret in the release namespace. If
a credential later changes, Thoras restarts the components that use it so you
don’t have to.
On a fresh install, workload pods briefly report
CreateContainerConfigError
while Thoras performs its first reconcile. This clears on its own.Supplying your own credentials
Each credential resolves in this order of precedence:- A Secret you manage, referenced via
*.existingSecretor*SecretRef*values. - A value pinned in
values.yaml. - Generated by Thoras into the
thoras-config-controllerSecret (default).
Rotating a credential
Generated values are not intended to be rotated in place. To control rotation, take ownership of the value by pinning it invalues.yaml or by pointing the
chart at a Secret you manage.
- Existing Secret: update the value in your Secret. Thoras picks up the change within about a minute.
- Pinned value: change it in
values.yamland runhelm upgrade.
- Rotating the dashboard cookie secret signs every active dashboard session out.
- The bundled TimescaleDB password has no rotation path. Use external TimescaleDB if you need to rotate the database password.
Legacy secret seeding
featureFlags.enableLegacySecretSeeding (default true) keeps rendering the
chart 4.x api-client-secret and thoras-timescale-password Secrets so their
values can be migrated on upgrade. Nothing consumes them afterwards.
- Fresh installs: set it to
false. - Upgrading from 4.x: leave it on for the upgrade, then set it to
falseonce the pods are healthy. - GitOps and
helm template: set it tofalse. The legacy Secrets use Helmlookup, which those workflows cannot evaluate.
Further reading
- Chart README: Secrets, Rotating secrets, and Thoras Config Controller values.
- Default (htpasswd) dashboard auth
- ArgoCD

