You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
helm upgrade --reuse-values to 0.3.6 fails: nil pointer on patchmon.session.secret #10
Hit upgrading a live 0.3.2 release to 0.3.6. The failure is at template render, so
nothing is applied and the release is untouched — but the upgrade cannot proceed.
Cause
#7 added these dereferences to templates/secret.yaml:
--reuse-values reuses the previous release's values and does not merge in defaults
newly added by the incoming chart. A release created on ≤ 0.3.5 has a patchmon map
containing jwt, oidc, etc. but no session or encryption key, so both parent maps
are nil and the dereference fails.
Confirmed on the affected release:
$ helm get values patchmon -n patchmon | grep -A2 -E "^ (jwt|session|encryption):"
jwt:
expiresIn: 1h
refreshExpiresIn: 7d
# no session:, no encryption:
This is not an exotic path — --reuse-values is the normal way to upgrade a release
whose values live outside git, and every existing user is on ≤ 0.3.5 by definition. patchmon.jwt.secret is safe only because jwt already existed before #7.
Workaround
Supply the missing parents explicitly. Empty values fall through to the lookup, so the
existing secrets are preserved:
Worth auditing the other templates for the same pattern — any value added to an existing
map in a later chart version has this problem under --reuse-values.
Also worth a ct lint-level guard if practical: the current PR check installs the chart
fresh, which passes, and would not have caught an upgrade-path regression.
Activity
fix(secret): read pinnable secrets with dig to survive --reuse-values