[1.3.0] - 2026-08-03
Minor release: cluster installer (Waves 1–2) and SSH Docker lab release gate (live Apply, Patroni promote, unicast keepalived VIP — 0 SKIP), plus cluster Grafana metrics and root install entrypoints.
Added
- Cluster installer (Waves 1–2) — inventory/plan/render/apply scripts (
scripts/cluster/), templates underdeploy/cluster/templates/, SECURITY notes, and installer tests (scripts/tests/cluster-installer-w1|w2). - SSH Docker lab release gate — offline-capable node image +
up-ssh.sh/run-apply-ssh.sh/run-drills-ssh.shfor live Apply, Patroni promote ≤60s, and unicast keepalived VIP move (0 SKIP). Seedeploy/cluster/lab/README.md. - Cluster observability — Prometheus gauges
datasafe_cluster_node_*/ overall / HA; Grafana dashboarddatasafe-cluster.json; optional Prometheusfile_sdtargets. - Root install entrypoints —
install.ps1/install.sh/install.cmdwith optionalidentityprofile; getting-started installer docs (EN/RU). - Public login options —
GETlogin-options for LDAP/OIDC console buttons without leaking secrets. - Compose layout — overlays and env examples under
deploy/compose/(paths updated in scripts/docs).
Changed
- HAProxy cluster templates bind VIP addresses only; Patroni listens on fabric
NODE_IPso colocated LB + Postgres do not clash. - Lab Apply deploys storage-server after etcd/Patroni quorum; secrets file uses Patroni superuser password.
Honesty
- SSH lab unicast VRRP proves the Apply/drill path on Docker Desktop; it is not bare-metal L2 multicast parity.
- Offline compose lab may still SKIP VIP/Patroni by design — use the SSH lab for the no-skip gate.
- Grafana cluster panels reflect
Cluster.Nodesconfigured in Admin (empty → single local fallback).
Container images (on tag): ghcr.io/direktorbani/datasafe-storage-server:v1.3.0, ghcr.io/direktorbani/datasafe-console:v1.3.0.
Container images
ghcr.io/direktorbani/datasafe-storage-server:v1.3.0ghcr.io/direktorbani/datasafe-console:v1.3.0
CycloneDX SBOM files and cosign signatures are attached. See SECURITY.md for cosign verify instructions.