What's new in chart-v0.2.57
Unlike the recent metadata-only bumps, this is a real chart-level template change. appVersion stays at 0.8.11, the daemon image and every wire surface are unchanged. What changes is how the chart wires the StatefulSet persistence volume.
Until now, setting workload.kind: StatefulSet with workload.statefulset.persistence.enabled: true mounted a PVC at /var/lib/perf-sentinel that nothing ever wrote to. The runtime ack store fell back to its default location, which is not writable under the chart's readOnlyRootFilesystem: true, so the ack endpoints returned 503, and the public-disclosure archive that disclose aggregates was never enabled. The persisted volume stayed empty.
The ConfigMap now points the daemon's durable state at that volume when, and only when, it is actually mounted. With persistence enabled, it appends [daemon.ack] storage_path = /var/lib/perf-sentinel/acks.jsonl and [daemon.archive] path = /var/lib/perf-sentinel/archive.ndjson to the rendered .perf-sentinel.toml, so runtime acknowledgments and the disclosure archive survive pod restarts and rescheduling. The injection is gated on the mount being present because an unwritable [daemon.archive] path is a fatal startup error, so a non-persistent deployment is never handed a path it cannot write.
Fixed
- StatefulSet persistence is now wired to the ack store and the disclosure archive. When
workload.kindisStatefulSetandworkload.statefulset.persistence.enabledis true, the rendered config points[daemon.ack] storage_pathand[daemon.archive] pathat the mounted PVC under/var/lib/perf-sentinel. Acks and the disclosure NDJSON now persist across restarts instead of being lost or never written.
Behavior
- Default deployments are unaffected. With the default
workload.kind: Deployment(or any non-persistent workload), the rendered.perf-sentinel.tomland every template are byte-for-byte identical to chart-v0.2.56. No new TOML section is injected, and no rollout is forced. - Persistent StatefulSet upgrades gain two TOML sections. If you already run with persistence enabled, the upgrade adds the two sections above to the ConfigMap, which rolls the pod via the existing
checksum/configannotation. The daemon then createsacks.jsonlandarchive.ndjsonon the PVC on first start. - Remove any hand-written
[daemon.ack]or[daemon.archive]fromconfig.tomlbefore upgrading with persistence on. TOML rejects duplicate tables, so a section you added manually plus the chart-injected one would fail config parse at startup. The chart manages these two sections whenever persistence is enabled.
Install
The chart is published as an OCI artifact on GHCR, install it directly with no helm repo add step:
helm install perf-sentinel oci://ghcr.io/robintra/charts/perf-sentinel --version 0.2.57Upgrade an existing release:
helm upgrade perf-sentinel oci://ghcr.io/robintra/charts/perf-sentinel --version 0.2.57Full Changelog: chart-v0.2.56...chart-v0.2.57