Repair monitor cluster upgrade without blocking K1 package configuration

This commit is contained in:
DCCONSTRUCTIONS
2026-09-08 10:44:27 +03:00
parent 6492ebcdee
commit 14f8375713
11 changed files with 160 additions and 21 deletions
@@ -135,3 +135,30 @@ Pending owner sudo: installed service/version checks, socket-only cluster,
archive growth, measured collector overhead, Core durable ACK/backfill, and
browser QA with real telemetry. A new physical K1 scan and critical scenarios
remain operator qualification, not an automatically exercised acceptance step.
## R18 installation regression and R19 correction
Owner resumed 08.09.2026. R18 install-result is 100, Node 0.8.15 half-configured,
K1 0.1.14 unpacked, Node active but K1 stopped. The exact systemd assertion is
`/etc/postgresql/16/ndc/monitor/postgresql.conf` missing: the installed Debian
PostgreSQL template expands `%I` by replacing instance dashes with path separators.
The cluster name `ndc-monitor` caused the path mismatch. This is a packaging
error, independent of the powered-off K1. Native R18 archive qualification used
a temporary directly started PostgreSQL process and did not cover this systemd
instance contract; the old lifecycle stub also accepted every systemctl command.
R19 / Node 0.8.16 uses cluster `ndcmonitor`. A guarded `pg_renamecluster` migrates
only the predecessor with exact custom data directory and port 5433, preserving
data and updating configuration paths. It refuses a conflicting destination or
foreign data path. All service references/cgroup metrics/journal filters agree.
Monitoring bootstrap failure is now diagnostic: Node postinst records it and
returns success so dpkg can configure the separate K1 plugin. The release
installer still fails its monitoring acceptance if the archive is unavailable;
it also requires K1's read-only status endpoint to answer available=true.
Regression tests execute fresh setup, repeated R18 migration, foreign-cluster
refusal, and both successful/failing monitor setup across Node/K1 lifecycle
states. They implement the actual Debian `%I` assertion rule, so the previous
hyphenated name fails. Real root-installed service and archived samples remain
an explicit post-install gate, never inferred from stub or fixture success.