github robintra/perf-sentinel chart-v0.2.57
perf-sentinel chart v0.2.57

4 hours ago

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.kind is StatefulSet and workload.statefulset.persistence.enabled is true, the rendered config points [daemon.ack] storage_path and [daemon.archive] path at 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.toml and 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/config annotation. The daemon then creates acks.jsonl and archive.ndjson on the PVC on first start.
  • Remove any hand-written [daemon.ack] or [daemon.archive] from config.toml before 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.57

Upgrade an existing release:

helm upgrade perf-sentinel oci://ghcr.io/robintra/charts/perf-sentinel --version 0.2.57

Full Changelog: chart-v0.2.56...chart-v0.2.57

Don't miss a new perf-sentinel release

NewReleases is sending notifications on new releases.