What's new in chart-v0.13.0
An appVersion move from 0.12.0 to 0.13.0, plus one template change: volumeClaimTemplates now spells out apiVersion and kind. values.yaml is untouched, so a values file renders the same objects as 0.12.0 apart from those two lines, the image tag, the chart version labels and the checksum they feed.
The chart version jumps 0.12.0 to 0.13.0 directly. The 0.12.1 section in the chart changelog was written for a chart-only release that was never tagged, so its fix ships here instead.
Behavior
volumeClaimTemplatesrendersapiVersion: v1andkind: PersistentVolumeClaim. A claim template needs neither, but the API server defaults them on the live object, so a GitOps controller diffing the cluster against the rendered chart saw two lines it could never reconcile and held the applicationOutOfSyncforever. Emitting them makes the two sides match. Only relevant withworkload.statefulset.persistence.enabled, and noStatefulSetfield is mutated, so this change alone does not roll the pods.- A mounted acknowledgments ConfigMap is re-read every minute, and mount it as a directory. The daemon used to hold its startup snapshot for its whole lifetime, so a team decision recorded in the file needed a pod restart to apply. It now polls the configured
[daemon.ack] toml_pathonce a minute. AsubPathmount freezes the file at mount time and defeats that reload entirely, which is why the deployment guide now recommends a plain directory mount with the key projected inside it. - A ConfigMap projection no longer stops the daemon from starting. A mounted ConfigMap is projected through a
..data/indirection, so the configured path is a symlink, and the loader refused to follow any symlink at all. A link resolving under its own directory is now accepted, one resolving anywhere else stays refused. If you gave up on mounting that file because the pod would not come up, this is the release that unblocks it. - A vanished or unreadable acknowledgments file keeps the previous acks. An unmounted volume, a deleted ConfigMap or a half-written file leaves the daemon serving what it already had, with a warning logged once rather than once a minute. Nothing silently un-acknowledges what the team decided to accept, and
[daemon.ack] enabled = falsestops the poll rather than repopulating a map that startup deliberately left empty. - The upgrade rolls the pods. The image tag falls back to
.Chart.AppVersionwhenimage.tagis empty, which is the default, so the pod spec moves from0.12.0to0.13.0. Thechecksum/configannotation also changes, since the ConfigMap carries the chart version in its labels. Pinningimage.tagexplicitly keeps the old image and skips the rollout. - Nothing else in the daemon changes. The rest of
0.13.0is about thepg-statandmysql-statPrometheus scrapes, which are batch subcommands this chart does not run. Routes, metrics and wire formats are unchanged:/api/findings,/api/correlations,/metricsand the OTLP listeners answer in exactly the same shapes, and the archived per-window JSON keeps its shape. Findings, thresholds and signatures are untouched, so no acknowledgment and no baseline moves on this upgrade.
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.13.0Upgrade an existing release:
helm upgrade perf-sentinel oci://ghcr.io/robintra/charts/perf-sentinel --version 0.13.0Verify that the rollout picked up the new image:
kubectl get pod -l app.kubernetes.io/name=perf-sentinel \
-o jsonpath='{.items[*].spec.containers[*].image}'Read docs/HELM-DEPLOYMENT.md for the sizing guidance, the Ingress postures, the NetworkPolicy peer an ingress controller needs, and the acknowledgments ConfigMap mount. The v0.13.0 binary notes carry the full account of the changes above.
If you are upgrading from chart-v0.11.1 or earlier, read the chart-v0.12.0 notes first: that release makes a stale or misspelled key in config.toml stop the daemon at startup, and it moves io_waste_ratio on identical traffic.
Full Changelog: chart-v0.12.0...chart-v0.13.0