What's changed
Focus on multi-replica PostgreSQL deployments: Jarvis can now run as a
highly-available deployment with several replicas behind PostgreSQL,
coordinated via leader election, snapshot distribution, and cross-pod WS
fanout — no more single-pod-only operation for production use.
Added
- Multi-replica HA on PostgreSQL — PostgreSQL-backed advisory-lock
leader election; exactly one pod polls Alertmanager and writes history,
while every pod keeps serving reads/WS from a snapshot the leader
distributes viaLISTEN/NOTIFY - Cross-pod mutation fanout — comments, claims, and silences created on
one pod now broadcast to every other pod's connected WS clients, not just
the originating pod's own - Leader pod label — the current leader pod is labeled
jarvis.kj187.de/role=leaderfor at-a-glance visibility viakubectl get pods -L - Helm chart HA surface — optional
PodDisruptionBudgetand
topologySpreadConstraintspassthrough for runningreplicaCount > 1
against PostgreSQL - ServiceMonitor customization —
metrics.serviceMonitor.relabelings,
metricRelabelings,annotations, andhonorLabelsare now
configurable in the Helm chart, defaulting to a no-op
Fixed
- db:
RecordStatusChangeis now transactional and advisory-lock
guarded, closing a race where concurrent writers for the same alert
episode could produce duplicate history events - frontend: the internal
@claimed-byfilter pseudo-label no longer
renders as a stray label chip
Documentation
- New canonical persistence guide consolidating
database backend configuration and multi-replica HA behavior into a
single source of truth, replacing scattered mentions across other docs
Full diff: v1.8.0...v1.9.0
Container image
docker pull ghcr.io/kj187/jarvis:1.9.0Digest: sha256:52d2f67164d5427534b22bae8b3b9a1936c0693f23241f12ab6e1b95287cf342
Verify image signature (cosign)
cosign verify ghcr.io/kj187/jarvis@sha256:52d2f67164d5427534b22bae8b3b9a1936c0693f23241f12ab6e1b95287cf342 \
--certificate-identity-regexp="https://github.com/kj187/jarvis/.*" \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com"Verify build provenance (GitHub attestation)
gh attestation verify oci://ghcr.io/kj187/jarvis:1.9.0 --repo kj187/jarvisHelm chart
helm install jarvis oci://ghcr.io/kj187/charts/jarvis --version 1.7.0Verify chart signature (cosign)
cosign verify ghcr.io/kj187/charts/jarvis:1.7.0 \
--certificate-identity-regexp="https://github.com/kj187/jarvis/.*" \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com"SBOM
The SPDX SBOM is attached to this release (sbom.spdx.json) and also
embedded in the image manifest (docker buildx imagetools inspect).