Skip to content

fix(helm): default to secure, and say what insecure mode turns off - #213

Merged
xerj-org merged 1 commit into
mainfrom
fix/helm-secure-default
Aug 8, 2026
Merged

fix(helm): default to secure, and say what insecure mode turns off#213
xerj-org merged 1 commit into
mainfrom
fix/helm-secure-default

Conversation

@xerj-org

@xerj-org xerj-org commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Closes #205.

The chart shipped insecure: true, disabling TLS and auth. The two install paths disagreed:

curl https://xerj.org/get | sh    auth on, admin key auto-generated 0600
helm install xerj ./deploy/helm   auth off, TLS off

The second is what production runs. The old comment said "production users should set this to false", which is backwards. A default should be safe and dev should opt out.

What changed

insecure: false. The statefulset template already gates the flag on this value (templates/statefulset.yaml:31-33), so with it off the --insecure arg is not passed and the engine's own defaults apply: auth.enabled = true with an admin key generated 0600 on first start.

Adds NOTES.txt, which the chart did not have. The point is to make the choice visible at install time instead of buried in values.yaml:

  • insecure on: names every port left open and how to turn it off
  • insecure off: how to read the generated admin key, plus a warning that the key crosses the network in cleartext while tls.enabled is false

Note for existing users: anyone who installed with the old default and did not set insecure explicitly will get an authenticated instance on upgrade. That is the intended direction, but it is a behaviour change and should be called out in the release notes.

Not verified with helm lint or helm template because helm is not installed here. The change is a one-value flip plus a new NOTES.txt, and the template conditional was read directly to confirm the flag is gated correctly.

The chart shipped `insecure: true`, which disables TLS and auth. So the two
install paths disagreed:

  curl https://xerj.org/get | sh    auth on, admin key auto-generated 0600
  helm install xerj ./deploy/helm   auth off, TLS off

The second is what production runs. The old comment even said "production users
should set this to false", which is the wrong way round: a default should be
safe and dev should opt out of it.

Flips the default to false. The statefulset template already gates the flag on
this value, so with it off the `--insecure` arg is simply not passed and the
engine's own defaults apply (auth.enabled = true, admin key generated on first
start).

Adds NOTES.txt so the choice is visible at install time rather than buried in
values.yaml. When insecure is on it names every port left open. When it is off
it tells the operator how to read the generated admin key, and warns that the
key crosses the network in cleartext while tls.enabled is false.

Closes #205.
@xerj-org
xerj-org force-pushed the fix/helm-secure-default branch from 0124adf to 3e2a0a1 Compare August 8, 2026 05:20
@xerj-org
xerj-org merged commit 26a2275 into main Aug 8, 2026
11 checks passed
@xerj-org
xerj-org deleted the fix/helm-secure-default branch August 8, 2026 06:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Helm chart defaults to insecure: true, disabling auth and TLS

1 participant