Skip to content

perf-sentinel chart v0.13.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 11:35
chart-v0.13.0

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

  • volumeClaimTemplates renders apiVersion: v1 and kind: 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 application OutOfSync forever. Emitting them makes the two sides match. Only relevant with workload.statefulset.persistence.enabled, and no StatefulSet field 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_path once a minute. A subPath mount 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 = false stops the poll rather than repopulating a map that startup deliberately left empty.
  • The upgrade rolls the pods. The image tag falls back to .Chart.AppVersion when image.tag is empty, which is the default, so the pod spec moves from 0.12.0 to 0.13.0. The checksum/config annotation also changes, since the ConfigMap carries the chart version in its labels. Pinning image.tag explicitly keeps the old image and skips the rollout.
  • Nothing else in the daemon changes. The rest of 0.13.0 is about the pg-stat and mysql-stat Prometheus scrapes, which are batch subcommands this chart does not run. Routes, metrics and wire formats are unchanged: /api/findings, /api/correlations, /metrics and 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.0

Upgrade an existing release:

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

Verify 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