diff --git a/runtime/history/CONTEXT-AUTO-20260804T121701Z.json b/runtime/history/CONTEXT-AUTO-20260804T121701Z.json new file mode 100644 index 0000000..f1568bb --- /dev/null +++ b/runtime/history/CONTEXT-AUTO-20260804T121701Z.json @@ -0,0 +1 @@ +{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260804T121701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-08-04T12:17:01Z","finished_at_utc":"2026-08-04T12:17:03Z","reference_register_checked":true,"reference_sha256":"5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e","error_register_checked":true,"error_register_sha256":"24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83","changes_made":false,"sanitized":true,"secrets_included":false,"private_addresses_included":false,"output":"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK"} diff --git a/runtime/history/CONTEXT-AUTO-20260804T121701Z.txt b/runtime/history/CONTEXT-AUTO-20260804T121701Z.txt new file mode 100644 index 0000000..6181878 --- /dev/null +++ b/runtime/history/CONTEXT-AUTO-20260804T121701Z.txt @@ -0,0 +1,164 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=CONTEXT-AUTO-[PRIVATE_IP]701Z +STATUS=OK +RC=0 +HOST=pve01 +COMPONENT=cluster-context +REFERENCE_SHA[PRIVATE_IP]f8edc75fcf[PRIVATE_IP]c[PRIVATE_IP]cc112ceccb6cf[PRIVATE_IP]a4deb8e +ERROR_REGISTER_SHA[PRIVATE_IP]c7fa[PRIVATE_IP]583c4aefac[PRIVATE_IP]1736ed[PRIVATE_IP]ab83 +OUTPUT_BEGIN +GENERATED_AT_UTC=[PRIVATE_IP]T12:17:01Z +Cluster information +------------------- +Name: homelab +Config Version: 3 +Transport: knet +Secure auth: on + +Quorum information +------------------ +Date: Tue Aug [PRIVATE_IP] 2026 +Quorum provider: corosync_votequorum +Nodes: 3 +Node ID: [PRIVATE_IP] +Ring ID: 1.db +Quorate: Yes + +Votequorum information +---------------------- +Expected votes: 3 +Highest expected: 3 +Total votes: 3 +Quorum: 2 +Flags: Quorate + +Membership information +---------------------- + Nodeid Votes Name +[PRIVATE_IP] [PRIVATE_IP].11 (local) +[PRIVATE_IP] [PRIVATE_IP].13 +[PRIVATE_IP] [PRIVATE_IP].12 + +Membership information +---------------------- + Nodeid Votes Name + 1 1 pve01 (local) + 2 1 pve03 + 3 1 pve02 +[{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":609000,"vmid":110},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/111","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":609084,"vmid":111},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/112","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":609045,"vmid":112},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/113","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":609088,"vmid":113},{"cpu":[PRIVATE_IP]46709,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"edge-vm","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":609025,"vmid":130},{"cpu":[PRIVATE_IP]8119,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/150","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"nextcloud","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":608998,"vmid":150},{"cpu":[PRIVATE_IP]95122,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/160","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"forum-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":609081,"vmid":160},{"cpu":[PRIVATE_IP]99034,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/170","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"core-apps","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":608994,"vmid":170},{"cpu":[PRIVATE_IP]32937,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/171","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"monitoring","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":608991,"vmid":171},{"cpu":[PRIVATE_IP]24391,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/180","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"cluster-admin","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":609078,"vmid":180},{"cpu":[PRIVATE_IP]546052,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/190","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"homelab-ops-worker","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":609021,"vmid":190},{"cpu":0,"disk":0,"diskread":0,"diskwrite":0,"id":"qemu/9130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":0,"memhost":0,"name":"edge-cold-standby","netin":0,"netout":0,"node":"pve02","status":"stopped","template":0,"type":"qemu","uptime":0,"vmid":9130},{"cgroup-mode":2,"cpu":[PRIVATE_IP]19709,"disk":[PRIVATE_IP],"id":"node/pve02","level":"","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve02","status":"online","type":"node","uptime":609121},{"cgroup-mode":2,"cpu":[PRIVATE_IP]02172,"disk":[PRIVATE_IP],"id":"node/pve01","level":"","maxcpu":24,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve01","status":"online","type":"node","uptime":609103},{"cgroup-mode":2,"cpu":[PRIVATE_IP]30636,"disk":[PRIVATE_IP],"id":"node/pve03","level":"","maxcpu":8,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve03","status":"online","type":"node","uptime":609042},{"content":"import,vztmpl,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"import,vztmpl,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve01/local","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"import,vztmpl,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve01/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve03/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"},{"id":"network/pve01/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve01","status":"ok","type":"network"},{"id":"network/pve03/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve03","status":"ok","type":"network"}] +Name Type Status Total (KiB) Used (KiB) Available (KiB) % +local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 14.17% +local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 27.36% + UNIT LOAD ACTIVE SUB DESCRIPTION +● homelab-backup-matrix-refresh.service loaded failed failed Generate unified homelab backup matrix state +● homelab-crypto-portfolio-chart-health.service loaded failed failed Crypto portfolio chart health check +● skladchik-reports-monitor-supervisor.service loaded failed failed Skladchik reports monitor full supervisor + +Legend: LOAD → Reflects whether the unit definition was properly loaded. + ACTIVE → The high-level unit activation state, i.e. generalization of SUB. + SUB → The low-level unit activation state, values depend on unit type. + +3 loaded units listed. +NEXT LEFT LAST PASSED UNIT ACTIVATES +Tue [PRIVATE_IP] 15:17:09 MSK 6s Tue [PRIVATE_IP] 15:16:07 MSK 55s ago homelab-router-watchdog.timer homelab-router-watchdog.service +Tue [PRIVATE_IP] 15:17:26 MSK 23s Tue [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-cluster-admin-webpanel-sync.timer homelab-cluster-admin-webpanel-sync.service +Tue [PRIVATE_IP] 15:17:26 MSK 23s Tue [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service +Tue [PRIVATE_IP] 15:18:14 MSK 1min 11s Tue [PRIVATE_IP] 15:13:14 MSK 3min 48s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service +Tue [PRIVATE_IP] 15:18:26 MSK 1min 23s Tue [PRIVATE_IP] 15:13:26 MSK 3min 36s ago netbird-peers-health.timer netbird-peers-health.service +Tue [PRIVATE_IP] 15:18:35 MSK 1min 32s Tue [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-cluster-admin-inventory-sync.timer homelab-cluster-admin-inventory-sync.service +Tue [PRIVATE_IP] 15:19:26 MSK 2min 23s Tue [PRIVATE_IP] 15:04:26 MSK 12min ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service +Tue [PRIVATE_IP] 15:19:43 MSK 2min 40s Tue [PRIVATE_IP] 15:14:14 MSK 2min 48s ago homelab-crypto-portfolio-chart-health.timer homelab-crypto-portfolio-chart-health.service +Tue [PRIVATE_IP] 15:21:26 MSK 4min 23s Tue [PRIVATE_IP] 15:11:26 MSK 5min ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service +Tue [PRIVATE_IP] 15:21:52 MSK 4min 49s Tue [PRIVATE_IP] 15:16:38 MSK 24s ago homelab-health-metrics.timer homelab-health-metrics.service +Tue [PRIVATE_IP] 15:22:14 MSK 5min Tue [PRIVATE_IP] 15:07:14 MSK 9min ago homelab-disk-space-health.timer homelab-disk-space-health.service +Tue [PRIVATE_IP] 15:22:26 MSK 5min Tue [PRIVATE_IP] 15:07:26 MSK 9min ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service +Tue [PRIVATE_IP] 15:24:26 MSK 7min Tue [PRIVATE_IP] 15:09:26 MSK 7min ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service +Tue [PRIVATE_IP] 15:30:00 MSK 12min Tue [PRIVATE_IP] 15:15:14 MSK 1min 48s ago homelab-incident-journal.timer homelab-incident-journal.service +Tue [PRIVATE_IP] 15:30:20 MSK 13min Tue [PRIVATE_IP] 15:15:43 MSK 1min 19s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service +Tue [PRIVATE_IP] 15:30:33 MSK 13min Tue [PRIVATE_IP] 15:16:07 MSK 55s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service +Tue [PRIVATE_IP] 15:31:06 MSK 14min Tue [PRIVATE_IP] 15:15:26 MSK 1min 36s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service +Tue [PRIVATE_IP] 15:34:08 MSK 17min Tue [PRIVATE_IP] 15:03:14 MSK 13min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service +Tue [PRIVATE_IP] 15:45:25 MSK 28min Tue [PRIVATE_IP] 15:13:14 MSK 3min 48s ago homelab-reference-refresh.timer homelab-reference-refresh.service +Tue [PRIVATE_IP] 20:08:26 MSK 4h 51min Tue [PRIVATE_IP] 14:08:26 MSK 1h 8min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service +Wed [PRIVATE_IP] 00:00:00 MSK 8h Tue [PRIVATE_IP] 00:00:07 MSK 15h ago dpkg-db-backup.timer dpkg-db-backup.service +Wed [PRIVATE_IP] 00:08:04 MSK 8h Tue [PRIVATE_IP] 00:05:08 MSK 15h ago homelab-storage-capacity.timer homelab-storage-capacity.service +Wed [PRIVATE_IP] 00:08:47 MSK 8h Tue [PRIVATE_IP] 00:08:07 MSK 15h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service +Wed [PRIVATE_IP] 00:13:19 MSK 8h Tue [PRIVATE_IP] 00:13:28 MSK 15h ago homelab-docker-health.timer homelab-docker-health.service +Wed [PRIVATE_IP] 00:18:54 MSK 9h Tue [PRIVATE_IP] 00:08:14 MSK 15h ago homelab-quality-gate.timer homelab-quality-gate.service +Wed [PRIVATE_IP] 00:51:16 MSK 9h Tue [PRIVATE_IP] 00:08:36 MSK 15h ago logrotate.timer logrotate.service +Wed [PRIVATE_IP] 01:56:09 MSK 10h Tue [PRIVATE_IP] 00:14:22 MSK 15h ago man-db.timer man-db.service +Wed [PRIVATE_IP] 03:50:00 MSK 12h Tue [PRIVATE_IP] 03:50:02 MSK 11h ago filebrowser-offhost-sync.timer filebrowser-offhost-sync.service +Wed [PRIVATE_IP] 04:05:55 MSK 12h Tue [PRIVATE_IP] 01:23:47 MSK 13h ago pve-daily-update.timer pve-daily-update.service +Wed [PRIVATE_IP] 04:48:13 MSK 13h Tue [PRIVATE_IP] 04:42:07 MSK 10h ago homelab-edge-vm-offhost-freshness.timer homelab-edge-vm-offhost-freshness.service +Wed [PRIVATE_IP] 04:58:15 MSK 13h Tue [PRIVATE_IP] 05:15:14 MSK 10h ago homelab-sops-edge-secret-coverage.timer homelab-sops-edge-secret-coverage.service +Wed [PRIVATE_IP] 05:30:03 MSK 14h Tue [PRIVATE_IP] 12:02:37 MSK 3h 14min ago apt-daily.timer apt-daily.service +Wed [PRIVATE_IP] 06:01:06 MSK 14h Tue [PRIVATE_IP] 06:53:08 MSK 8h ago apt-daily-upgrade.timer apt-daily-upgrade.service +Wed [PRIVATE_IP] 07:16:56 MSK 15h Tue [PRIVATE_IP] 07:03:50 MSK 8h ago homelab-drift-check.timer homelab-drift-check.service +Wed [PRIVATE_IP] 07:32:01 MSK 16h Tue [PRIVATE_IP] 07:39:26 MSK 7h ago homelab-service-registry-check.timer homelab-service-registry-check.service +Wed [PRIVATE_IP] 07:48:22 MSK 16h Tue [PRIVATE_IP] 07:54:17 MSK 7h ago homelab-desired-state-sync.timer homelab-desired-state-sync.service +Wed [PRIVATE_IP] 07:53:58 MSK 16h Tue [PRIVATE_IP] 07:46:07 MSK 7h ago homelab-alerting-health.timer homelab-alerting-health.service +Wed [PRIVATE_IP] 07:56:28 MSK 16h Tue [PRIVATE_IP] 07:56:07 MSK 7h ago homelab-dependency-map-check.timer homelab-dependency-map-check.service +Wed [PRIVATE_IP] 07:56:57 MSK 16h Tue [PRIVATE_IP] 07:56:50 MSK 7h ago homelab-runbook-generate.timer homelab-runbook-generate.service +Wed [PRIVATE_IP] 08:06:21 MSK 16h Tue [PRIVATE_IP] 07:59:39 MSK 7h ago homelab-duty-admin-report.timer homelab-duty-admin-report.service +Wed [PRIVATE_IP] 08:11:00 MSK 16h Tue [PRIVATE_IP] 08:03:50 MSK 7h ago homelab-overall-health.timer homelab-overall-health.service +Wed [PRIVATE_IP] 08:16:53 MSK 16h Tue [PRIVATE_IP] 08:16:35 MSK 7h ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service +Wed [PRIVATE_IP] 08:21:31 MSK 17h Tue [PRIVATE_IP] 08:12:26 MSK 7h ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service +Wed [PRIVATE_IP] 08:30:08 MSK 17h Tue [PRIVATE_IP] 08:36:50 MSK 6h ago homelab-capacity-risk.timer homelab-capacity-risk.service +Wed [PRIVATE_IP] 08:37:04 MSK 17h Tue [PRIVATE_IP] 08:52:38 MSK 6h ago homelab-cluster-passport.timer homelab-cluster-passport.service +Wed [PRIVATE_IP] 08:40:47 MSK 17h Tue [PRIVATE_IP] 08:36:17 MSK 6h ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service +Wed [PRIVATE_IP] 08:47:05 MSK 17h Tue [PRIVATE_IP] 08:54:47 MSK 6h ago immich-media-offhost-sync.timer immich-media-offhost-sync.service +Wed [PRIVATE_IP] 08:55:12 MSK 17h Tue [PRIVATE_IP] 08:50:07 MSK 6h ago homelab-golden-state-index.timer homelab-golden-state-index.service +Wed [PRIVATE_IP] 09:20:57 MSK 18h Tue [PRIVATE_IP] 09:06:50 MSK 6h ago memos-offhost-sync.timer memos-offhost-sync.service +Wed [PRIVATE_IP] 10:15:00 MSK 18h Tue [PRIVATE_IP] 10:15:14 MSK 5h 1min ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service +Wed [PRIVATE_IP] 14:20:26 MSK 23h Tue [PRIVATE_IP] 14:20:26 MSK 56min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service +Sun [PRIVATE_IP] 03:10:38 MSK 4 days Sun [PRIVATE_IP] 03:10:25 MSK 2 days ago xfs_scrub_all.timer xfs_scrub_all.service +Sun [PRIVATE_IP] 03:10:48 MSK 4 days Sun [PRIVATE_IP] 03:10:50 MSK 2 days ago e2scrub_all.timer e2scrub_all.service +Mon [PRIVATE_IP] 00:03:56 MSK 5 days Mon [PRIVATE_IP] 00:11:50 MSK 1 day 15h ago homelab-secret-sanity.timer homelab-secret-sanity.service +Mon [PRIVATE_IP] 01:11:21 MSK 5 days Mon [PRIVATE_IP] 01:17:56 MSK 1 day 13h ago fstrim.timer fstrim.service +- - - - prometheus-node-exporter-ipmitool-sensor.timer prometheus-node-exporter-ipmitool-sensor.service +- - - - prometheus-node-exporter-mellanox-hca-temp.timer prometheus-node-exporter-mellanox-hca-temp.service +- - - - prometheus-node-exporter-smartmon.timer prometheus-node-exporter-smartmon.service + +58 timers listed. +- Обрезанная, повреждённая или частично вставленная команда считается невыполненной; сначала проводится side-effect audit. +- Хвост parse-ошибки закрывается только после доказательства отсутствия изменений и временных артефактов. +- Proof: /var/lib/homelab-change-sets/operator-command-size-guard-v[PRIVATE_IP]T182653Z/report.txt + +## HOMELAB_ADMIN_CLI_CONTRACT_[PRIVATE_IP] +- Поддерживаемые команды: version, status, lint TASK_DIR, validate TASK_DIR, run TASK_DIR PHASE. +- Отдельная команда --help отсутствует. Неизвестный аргумент печатает usage и штатно возвращает RC=64. +- Нельзя трактовать RC=64 от --help как неисправность runner. +- Для проверки доступности runner использовать homelab-admin version; для структуры CLI использовать зафиксированную usage-строку. +- Proof: /var/lib/homelab-change-sets/homelab-admin-cli-contract-fix-v[PRIVATE_IP]T183338Z/report.txt + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_[PRIVATE_IP] +Collector: /usr/local/sbin/homelab-context-collect +Scheduler: hourly at minute 17 via /etc/cron.d/homelab-context-refresh +Destination: immutable Gitea runtime history with CONTEXT-AUTO UTC command IDs. + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_DIRECT_[PRIVATE_IP] +Publisher: /usr/local/sbin/homelab-context-refresh-direct +Schedule: hourly at minute 17. +Destination: immutable assistant-runtime history with CONTEXT-AUTO UTC IDs. +ANTI_REGRESSION_TOKEN=HOMELAB_VM_2CLOUD_444_OUTER_LAUNCHER_BOUNDARY_REQUIRED +- Anti-regression: validate the complete outer launcher with a shell syntax check and verify the wrapper argument boundary before issuing it. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z + +## ERROR_[PRIVATE_IP]_HOMELAB_VM_2CLOUD_DRAIN_CLOSURE_PREFLIGHT_446 +COMMAND_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-446 +- Symptom: homelab-chat-run-linked printed Usage and skipped result-feed publication as invalid input. +- Root cause: the diagnostic script was piped to wrapper stdin and the mandatory double-dash command separator was omitted. +- Correction: invoke homelab-chat-run-linked as COMMAND_ID MODE COMPONENT -- command arguments; stdin is not its command interface. +ANTI_REGRESSION_TOKEN=HOMELAB_CHAT_RUN_COMMAND_REQUIRES_DOUBLE_DASH +- Anti-regression: treat wrapper Usage as the authoritative CLI contract and syntax-check the complete launcher, not only its inner payload. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 2bafb24..f1568bb 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,38 +1 @@ -{ - "schema_version": 1, - "channel": "homelab-runtime", - "command_id": "HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-FIX2-V15R-20260804T114500Z", - "status": "OK", - "rc": 0, - "host": "pve01", - "mode": "verify", - "component": "homepage-newfilya-upstream-read-only-discovery-fix2-v15", - "started_at_utc": "2026-08-04T11:57:04Z", - "finished_at_utc": "2026-08-04T11:57:05Z", - "reference_register_checked": true, - "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e", - "error_register_checked": true, - "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83", - "command_sha256": "61c4cf57bd2ac4bb370800ee31f7bac68cefb1abea2c6b430d4b2aa0d00b9b42", - "duplicate_failed_command_blocked": false, - "block_reason": null, - "execution_started": true, - "change_declared": false, - "result_contract_valid": true, - "result_contract_status": null, - "result_contract_error": null, - "command_rc": 0, - "changes_made": false, - "rollback_started": false, - "rollback_restored": null, - "mutation_outcome": "NO_MUTATION", - "sanitized": true, - "secrets_included": false, - "private_addresses_included": false, - "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "dbb4841cf66094610efdb23ef11c213faba6cb724249d044c2ef46198b6f5757", - "sanitized_output_sha256": "dbb4841cf66094610efdb23ef11c213faba6cb724249d044c2ef46198b6f5757", - "output_truncated_in_json": false, - "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-FIX2-V15R-20260804T114500Z\",\"mutation_outcome\":\"NO_MUTATION\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"PLAN_SHA256\":null,\"action\":null,\"blockers\":[],\"body_returned\":false,\"certificate_changed\":false,\"certificate_contents_returned\":false,\"changes_made\":false,\"command_id\":\"HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-FIX2-V15R-20260804T114500Z\",\"container_restarted\":false,\"control_plane_error\":null,\"desired_state_changed\":false,\"diagnosis\":\"NEWFILYA_ORIGIN_NOT_FOUND_IN_HOMELAB\",\"dns_changed\":false,\"duration_ms\":1570,\"edge\":{\"candidate\":{\"candidate_count\":0,\"outcome\":\"NO_ORIGIN_FOUND\",\"selected\":null},\"container_env_read\":false,\"database\":{\"complete\":true,\"database_contents_returned\":false,\"database_count\":1,\"database_path_sha256\":\"36a7644962bc77f6f2ab31bf092004ded1daf0d1eb4421ac479f92a54b4c4c60\",\"database_state\":{\"bytes\":290816,\"exists\":true,\"gid\":0,\"kind\":\"regular\",\"mode\":\"0600\",\"uid\":0},\"error_code\":null,\"exact_domain_match_count\":0,\"failure_evidence\":null,\"invalid_domain_row_count\":0,\"matches\":[],\"private_addresses_returned\":false,\"proxy_column_count\":38,\"proxy_column_set_sha256\":\"eccd7b0c48fed90f433cead653e63534c592d358c52715789e49eba24ee58c6a\",\"proxy_row_count\":49,\"query_only\":true,\"secret_columns_read\":false,\"table_count\":19,\"table_set_sha256\":\"bdf695ef89b923a820e98d18d58c114ae596a4edd12d25f0f4a7728be6f98be3\",\"write_attempted\":false},\"database_contents_returned\":false,\"diagnosis\":\"NEWFILYA_UPSTREAM_DISCOVERY_COMPLETE\",\"discovery_complete\":true,\"docker\":{\"candidates\":[],\"command_audit_count\":2,\"command_audit_output_returned\":false,\"command_audit_record_set_sha256\":\"ae097d2129cb8ecc7593ea3fdfe1e1047bb419a95299dc584824452efc86501e\",\"command_audit_stage_set_sha256\":\"9b4329cee09c32749ce97143506ac06ea3379b1ca3a4c7e6187ebdc64e67f98c\",\"complete\":true,\"compose_project_count\":10,\"compose_project_set_sha256\":\"29afface2c1c26919f66e8e6258a6534297190abe93f1a9162ec0be51ca70527\",\"container_config_dump_read\":false,\"container_count\":11,\"container_env_read\":false,\"container_id_set_sha256\":\"6713647b5970e7e4c0dd9a2155de641fdd64cf11ddfad62801829f8eb7de311e\",\"error_code\":null,\"failure_evidence\":null,\"full_label_map_read\":false,\"inspect_retry_used\":false,\"metadata_source\":\"DOCKER_PS_ALLOWLISTED_FORMAT\",\"port_addresses_returned\":false,\"port_retry_count\":0,\"private_addresses_returned\":false,\"server_version_sha256\":\"ee0900fd8f48c86ef9b8a71f1b91400b153a12af9562678afa4d6c4818062316\",\"strong_candidate_count\":0,\"weak_candidate_count\":0},\"failure_evidence\":null,\"ok\":true,\"private_addresses_included\":false,\"secret_files_read\":false,\"secrets_included\":false,\"source_contents_returned\":false,\"stacks\":{\"candidates\":[],\"complete\":true,\"error_code\":null,\"failure_evidence\":null,\"file_contents_read\":false,\"private_addresses_returned\":false,\"project_name_count\":15,\"project_name_set_sha256\":\"d28ed1d80ae539b8d0ec2b41de7186ceb3ed3cc3f63228aa6f8c61770fb1d749\",\"root_states\":[{\"exists\":true,\"kind\":\"directory\",\"path_sha256\":\"5c75b0743e76bd0cd8f02c21ff1721ec2300aa158a7fac757c8815eaefd14ad9\"},{\"exists\":true,\"kind\":\"directory\",\"path_sha256\":\"cf7bed475d10bd3d370cb7b4b1fd81c7dfaf7606b688f045e1da3993bf4b7e4c\"},{\"exists\":false,\"kind\":null,\"path_sha256\":\"c56879bcce4cc3e27fa23082433ddfe16c9020f32582e7ca34c298e4df628ea5\"},{\"exists\":false,\"kind\":null,\"path_sha256\":\"b4cf5389f90ddca75c8565ebaad3ad40386b5af20dbff2e4e34134e7bfaabf89\"},{\"exists\":false,\"kind\":null,\"path_sha256\":\"fa9ef6fada33fc61cc8438cb2c1d449fe608d7318b7b307b6525d3c4d54a690a\"},{\"exists\":true,\"kind\":\"directory\",\"path_sha256\":\"1ecc38f5c1526596bbc85ca87502cce062350b7b724696914ede605f68ac5598\"}],\"strong_candidate_count\":0,\"weak_candidate_count\":0},\"status\":\"OK\",\"write_attempted\":false},\"gate\":\"OPERATOR_INPUT_REQUIRED\",\"gitea_changed\":false,\"homepage\":{\"backup_bytes\":12005,\"backup_mode\":\"0o600\",\"backup_sha256\":\"6468974ef09b3d9899bae5df4d8a7fa711d6cf16edda00b116747192277dcb2c\",\"card_count\":65,\"contains_private_dispatch_material\":false,\"failed_checks\":[],\"group_count\":7,\"hbarhub_card_exact\":true,\"homepage_api_sha256\":\"a1ece968406ec5ce5ba02197d5270d1e3ce34da451a69cc3cc5f38b6081ada0d\",\"homepage_api_target_href_counts\":{\"hbarhub.ru\":1,\"newfilya.ru\":1},\"homepage_image_id_sha256\":\"242e6332e372aaffcf7c821cff66dcbc12c42b2cd4ae282db9533b640892ac79\",\"homepage_image_reference_sha256\":\"b0c046cffbc1a48af0e6b240575c63b6f405debba0b2c50fa190616b5ea62808\",\"homepage_mount_exact\":true,\"homepage_restart_count\":0,\"newfilya_card_exact\":true,\"newfilya_monitor_enabled\":false,\"ok\":true,\"secret_file_read\":false,\"secrets_included\":false,\"services_bytes\":12308,\"services_sha256\":\"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928\",\"services_structure_sha256\":\"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82\",\"source_contents_returned\":false,\"status\":\"OK\",\"target_href_counts\":{\"hbarhub.ru\":1,\"newfilya.ru\":1}},\"homepage_changed\":false,\"mutation_outcome\":\"NO_MUTATION\",\"next_stage\":\"NEWFILYA_ORIGIN_REQUIRED\",\"npmplus_reloaded\":false,\"operator_input_required\":true,\"parent_v12_evidence\":{\"PLAN_SHA256\":null,\"capsule_bytes\":93497,\"capsule_sha256\":\"2646700d3b164edb9540d39d332d4c6fda9cc0de26d49942f9c11b0704ae6231\",\"card_count\":65,\"changes_made\":false,\"command_id\":\"HOMEPAGE-NEWFILYA-PUBLIC-TLS-READ-ONLY-PLAN-FIX3-V12-20260804T100000Z\",\"command_sha256\":\"54ecaf5977858caa5a64e76d6acafabe9618d9e28181f4e7f4854bce969e07c7\",\"diagnosis\":\"NEWFILYA_PUBLIC_TLS_PLAN_BLOCKED\",\"edge_certbot_available\":true,\"edge_domain_match_count\":0,\"edge_persistent_acme_http_route_present\":true,\"edge_primary_certificate_paths_absent\":true,\"edge_remote_stdout_sha256\":\"d7f9bd738cf4abb3b7e0caa18b98f57883fea0e3eefff7cffbcb5dfc74f27723\",\"gate\":\"BLOCKED\",\"group_count\":7,\"homepage_restart_count\":0,\"mutation_outcome\":\"NO_MUTATION\",\"newfilya_monitor_enabled\":false,\"output_sha256\":\"9f9ba05a451c9a7f4b2ff4426e3c26380738d212c6071fc73585177ed5dcda29\",\"public_acme_route_proven\":true,\"public_https_npmplus_default\":true,\"public_leaf_certificate_sha256\":\"c14d6f3eda27dcd7e8c8a44c18844f8009b4f23a74ab82d49475f138ddef0b93\",\"public_tls_verify_codes\":{\"18\":1},\"rc\":1,\"ready_for_apply\":false,\"rollback_restored\":null,\"rollback_started\":false,\"services_bytes\":12308,\"services_sha256\":\"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928\",\"services_structure_sha256\":\"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82\",\"status\":\"FAIL\",\"tls_state\":\"SELF_SIGNED\"},\"parent_v13_evidence\":{\"PLAN_SHA256\":null,\"capsule_bytes\":92904,\"capsule_sha256\":\"78faab3753d3fb6e394bd36486248787eef7d3571ca81e05457cec211f0a7e0a\",\"card_count\":65,\"changes_made\":false,\"command_id\":\"HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-V13-20260804T102000Z\",\"command_sha256\":\"10aff25da35bbe9e7bf92b770ffeead54a1246ea947abc7501673c297bfa5af6\",\"diagnosis\":\"NEWFILYA_UPSTREAM_DISCOVERY_BLOCKED\",\"edge_diagnosis\":\"NEWFILYA_UPSTREAM_DISCOVERY_EXCEPTION\",\"edge_remote_rc\":1,\"edge_remote_stdout_bytes\":669,\"edge_remote_stdout_sha256\":\"28cabc71738ea6beb1923d449c13cef3be61caeb6f6fe181b7eeb89d3931ba22\",\"gate\":\"BLOCKED\",\"group_count\":7,\"homepage_restart_count\":0,\"mutation_outcome\":\"NO_MUTATION\",\"newfilya_monitor_enabled\":false,\"output_sha256\":\"f70f5685e28f5b83652086203bbcd3b40ab0db97c3b5ff13de91816c054dc930\",\"rc\":1,\"recovered_failure_code\":\"COMMAND_RC_1\",\"recovered_failure_duration_ms\":97,\"recovered_failure_message_bytes\":23,\"recovered_failure_message_sha256\":\"e3c100135a25cf0d5865892d767cb30234d590927e66e910d937601702af4e42\",\"recovered_failure_type\":\"ValueError\",\"rollback_restored\":null,\"rollback_started\":false,\"services_bytes\":12308,\"services_sha256\":\"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928\",\"services_structure_sha256\":\"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82\",\"status\":\"FAIL\"},\"parent_v14_evidence\":{\"PLAN_SHA256\":null,\"capsule_bytes\":94764,\"capsule_sha256\":\"4bdf601c1b3f529f26feea3cfb14b21f4ecd88a746eb04dd7e50439065b9a554\",\"card_count\":65,\"changes_made\":false,\"command_id\":\"HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-FIX1-V14-20260804T113000Z\",\"command_sha256\":\"583cbadd401263023078e907b9945c6d69225a40cbdc20d38669ad246c48b6de\",\"database_complete\":true,\"database_exact_domain_match_count\":0,\"diagnosis\":\"NEWFILYA_UPSTREAM_DISCOVERY_BLOCKED\",\"docker_command_audit_count\":5,\"docker_command_audit_record_set_sha256\":\"bbcf421b53b375198d57c0e6d6579aa7ae0fbc5b5706fa43a1221895b111d538\",\"docker_command_audit_stage_set_sha256\":\"aacf3df9d159cc4f10b288a1450f061c7792e7bebddbb5f5d47e13d186ccda2c\",\"docker_complete\":false,\"docker_error_code\":\"DOCKER_INVENTORY_EXCEPTION\",\"docker_failure_argv_count\":15,\"docker_failure_code\":\"DOCKER_INSPECT_RETRY_RC_1\",\"docker_failure_message_bytes\":38,\"docker_failure_message_sha256\":\"247b4f51530ca617d64a5f98dfc8f9723a71c7906818767af76304c045ee2115\",\"docker_failure_rc\":1,\"docker_failure_stage\":\"DOCKER_INSPECT_RETRY\",\"docker_failure_stderr_bytes\":864,\"docker_failure_stderr_sha256\":\"ee53d38e73e88c08f2c93d9cb634d1bf8a55fab98acdbbb85368c1c3d0de23b9\",\"docker_failure_stdout_bytes\":531,\"docker_failure_stdout_sha256\":\"12a8eabefd2f962c72099133739ca05994b33889ca6cdd8ca31f602108c4e213\",\"docker_failure_type\":\"ProbeFailure\",\"edge_remote_rc\":1,\"edge_remote_stdout_bytes\":3151,\"edge_remote_stdout_sha256\":\"a111babba6d8a1de7e5a0f3121160d1ca1244fce966713382c77a21b6156d69f\",\"gate\":\"BLOCKED\",\"group_count\":7,\"homepage_restart_count\":0,\"mutation_outcome\":\"NO_MUTATION\",\"newfilya_monitor_enabled\":false,\"operator_input_required\":false,\"output_sha256\":\"63ab6ea2764e16a1e1be37aa85ca28c5c3594635f4988f7c3ef80bb67651b728\",\"rc\":1,\"ready_for_route_plan\":false,\"rollback_restored\":null,\"rollback_started\":false,\"services_bytes\":12308,\"services_sha256\":\"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928\",\"services_structure_sha256\":\"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82\",\"stacks_complete\":true,\"stacks_strong_candidate_count\":0,\"status\":\"FAIL\"},\"plan\":null,\"private_addresses_included\":false,\"private_keys_read\":false,\"production_site_changed\":false,\"public_proxy_changed\":false,\"rc\":0,\"read_only\":true,\"ready_for_route_plan\":false,\"required_input\":{\"accepted_origin_types\":[\"existing_homelab_service\",\"external_origin\",\"redirect_target\",\"new_static_landing\"],\"question\":\"WHAT_SHOULD_NEWFILYA_RU_SERVE\"},\"rollback_restored\":null,\"rollback_started\":false,\"sanitized\":true,\"schema\":1,\"secret_files_read\":false,\"secrets_included\":false,\"source_contents_returned\":false,\"status\":\"OK\",\"transport\":{\"core\":{\"config_view\":\"service-view\",\"mode\":\"DIRECT_QGA\",\"private_addresses_returned\":false,\"qga_step_count\":6,\"qga_step_set_sha256\":\"a47c77c34bca15e5359e489e34787b7697009017b7f6b379aa0da6c0a571a087\",\"remote_rc\":0,\"remote_stdout_bytes\":2810,\"remote_stdout_sha256\":\"8eee46305b129ee0d912f6b432810b58391df09a4d02cb76ce5fdf93336a951f\",\"socket_view\":\"service-view\",\"vm_name\":\"core-apps\",\"vmid\":170},\"edge\":{\"config_view\":\"service-view\",\"mode\":\"STRICT_SSH_TO_OWNING_NODE_THEN_DIRECT_QGA\",\"node\":\"pve03\",\"private_addresses_returned\":false,\"qga_step_count\":7,\"qga_step_set_sha256\":\"0936455bbf506e0e097db7b16ed515e0164c55485675c7dc37c9552b0137d031\",\"remote_rc\":0,\"remote_stdout_bytes\":3184,\"remote_stdout_sha256\":\"a9a7f3da75c19646198c64354ee0977635387762bd04a33265b039e0b88f5614\",\"socket_view\":\"service-view\",\"ssh_rc\":0,\"vm_name\":\"edge-vm\",\"vmid\":130}}}\n" -} +{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260804T121701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-08-04T12:17:01Z","finished_at_utc":"2026-08-04T12:17:03Z","reference_register_checked":true,"reference_sha256":"5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e","error_register_checked":true,"error_register_sha256":"24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83","changes_made":false,"sanitized":true,"secrets_included":false,"private_addresses_included":false,"output":"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK"} diff --git a/runtime/latest.txt b/runtime/latest.txt index 3ee3ec1..6181878 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,34 +1,164 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-FIX2-V15R-20260804T114500Z +COMMAND_ID=CONTEXT-AUTO-[PRIVATE_IP]701Z STATUS=OK RC=0 HOST=pve01 -MODE=verify -COMPONENT=homepage-newfilya-upstream-read-only-discovery-fix2-v15 -REFERENCE_REGISTER_CHECK=OK -REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e -ERROR_REGISTER_CHECK=OK -ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83 -COMMAND_SHA256=61c4cf57bd2ac4bb370800ee31f7bac68cefb1abea2c6b430d4b2aa0d00b9b42 -DUPLICATE_FAILED_COMMAND_BLOCKED=false -EXECUTION_STARTED=true -CHANGE_DECLARED=false -RESULT_CONTRACT_VALID=true -RESULT_CONTRACT_STATUS=NOT_APPLICABLE -RESULT_CONTRACT_ERROR=NONE -COMMAND_RC=0 -CHANGES_MADE=false -ROLLBACK_STARTED=false -ROLLBACK_RESTORED=null -MUTATION_OUTCOME=NO_MUTATION -SANITIZED=yes -SECRETS_INCLUDED=no -PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=dbb4841cf66094610efdb23ef11c213faba6cb724249d044c2ef46198b6f5757 -SANITIZED_OUTPUT_SHA256=dbb4841cf66094610efdb23ef11c213faba6cb724249d044c2ef46198b6f5757 +COMPONENT=cluster-context +REFERENCE_SHA[PRIVATE_IP]f8edc75fcf[PRIVATE_IP]c[PRIVATE_IP]cc112ceccb6cf[PRIVATE_IP]a4deb8e +ERROR_REGISTER_SHA[PRIVATE_IP]c7fa[PRIVATE_IP]583c4aefac[PRIVATE_IP]1736ed[PRIVATE_IP]ab83 OUTPUT_BEGIN -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-FIX2-V15R-20260804T114500Z","mutation_outcome":"NO_MUTATION","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} -{"PLAN_SHA256":null,"action":null,"blockers":[],"body_returned":false,"certificate_changed":false,"certificate_contents_returned":false,"changes_made":false,"command_id":"HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-FIX2-V15R-20260804T114500Z","container_restarted":false,"control_plane_error":null,"desired_state_changed":false,"diagnosis":"NEWFILYA_ORIGIN_NOT_FOUND_IN_HOMELAB","dns_changed":false,"duration_ms":1570,"edge":{"candidate":{"candidate_count":0,"outcome":"NO_ORIGIN_FOUND","selected":null},"container_env_read":false,"database":{"complete":true,"database_contents_returned":false,"database_count":1,"database_path_sha256":"36a7644962bc77f6f2ab31bf092004ded1daf0d1eb4421ac479f92a54b4c4c60","database_state":{"bytes":290816,"exists":true,"gid":0,"kind":"regular","mode":"0600","uid":0},"error_code":null,"exact_domain_match_count":0,"failure_evidence":null,"invalid_domain_row_count":0,"matches":[],"private_addresses_returned":false,"proxy_column_count":38,"proxy_column_set_sha256":"eccd7b0c48fed90f433cead653e63534c592d358c52715789e49eba24ee58c6a","proxy_row_count":49,"query_only":true,"secret_columns_read":false,"table_count":19,"table_set_sha256":"bdf695ef89b923a820e98d18d58c114ae596a4edd12d25f0f4a7728be6f98be3","write_attempted":false},"database_contents_returned":false,"diagnosis":"NEWFILYA_UPSTREAM_DISCOVERY_COMPLETE","discovery_complete":true,"docker":{"candidates":[],"command_audit_count":2,"command_audit_output_returned":false,"command_audit_record_set_sha256":"ae097d2129cb8ecc7593ea3fdfe1e1047bb419a95299dc584824452efc86501e","command_audit_stage_set_sha256":"9b4329cee09c32749ce97143506ac06ea3379b1ca3a4c7e6187ebdc64e67f98c","complete":true,"compose_project_count":10,"compose_project_set_sha256":"29afface2c1c26919f66e8e6258a6534297190abe93f1a9162ec0be51ca70527","container_config_dump_read":false,"container_count":11,"container_env_read":false,"container_id_set_sha256":"6713647b5970e7e4c0dd9a2155de641fdd64cf11ddfad62801829f8eb7de311e","error_code":null,"failure_evidence":null,"full_label_map_read":false,"inspect_retry_used":false,"metadata_source":"DOCKER_PS_ALLOWLISTED_FORMAT","port_addresses_returned":false,"port_retry_count":0,"private_addresses_returned":false,"server_version_sha256":"ee0900fd8f48c86ef9b8a71f1b91400b153a12af9562678afa4d6c4818062316","strong_candidate_count":0,"weak_candidate_count":0},"failure_evidence":null,"ok":true,"private_addresses_included":false,"secret_files_read":false,"secrets_included":false,"source_contents_returned":false,"stacks":{"candidates":[],"complete":true,"error_code":null,"failure_evidence":null,"file_contents_read":false,"private_addresses_returned":false,"project_name_count":15,"project_name_set_sha256":"d28ed1d80ae539b8d0ec2b41de7186ceb3ed3cc3f63228aa6f8c61770fb1d749","root_states":[{"exists":true,"kind":"directory","path_sha256":"5c75b0743e76bd0cd8f02c21ff1721ec2300aa158a7fac757c8815eaefd14ad9"},{"exists":true,"kind":"directory","path_sha256":"cf7bed475d10bd3d370cb7b4b1fd81c7dfaf7606b688f045e1da3993bf4b7e4c"},{"exists":false,"kind":null,"path_sha256":"c56879bcce4cc3e27fa23082433ddfe16c9020f32582e7ca34c298e4df628ea5"},{"exists":false,"kind":null,"path_sha256":"b4cf5389f90ddca75c8565ebaad3ad40386b5af20dbff2e4e34134e7bfaabf89"},{"exists":false,"kind":null,"path_sha256":"fa9ef6fada33fc61cc8438cb2c1d449fe608d7318b7b307b6525d3c4d54a690a"},{"exists":true,"kind":"directory","path_sha256":"1ecc38f5c1526596bbc85ca87502cce062350b7b724696914ede605f68ac5598"}],"strong_candidate_count":0,"weak_candidate_count":0},"status":"OK","write_attempted":false},"gate":"OPERATOR_INPUT_REQUIRED","gitea_changed":false,"homepage":{"backup_bytes":12005,"backup_mode":"0o600","backup_sha256":"6468974ef09b3d9899bae5df4d8a7fa711d6cf16edda00b116747192277dcb2c","card_count":65,"contains_private_dispatch_material":false,"failed_checks":[],"group_count":7,"hbarhub_card_exact":true,"homepage_api_sha256":"a1ece968406ec5ce5ba02197d5270d1e3ce34da451a69cc3cc5f38b6081ada0d","homepage_api_target_href_counts":{"hbarhub.ru":1,"newfilya.ru":1},"homepage_image_id_sha256":"242e6332e372aaffcf7c821cff66dcbc12c42b2cd4ae282db9533b640892ac79","homepage_image_reference_sha256":"b0c046cffbc1a48af0e6b240575c63b6f405debba0b2c50fa190616b5ea62808","homepage_mount_exact":true,"homepage_restart_count":0,"newfilya_card_exact":true,"newfilya_monitor_enabled":false,"ok":true,"secret_file_read":false,"secrets_included":false,"services_bytes":12308,"services_sha256":"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928","services_structure_sha256":"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82","source_contents_returned":false,"status":"OK","target_href_counts":{"hbarhub.ru":1,"newfilya.ru":1}},"homepage_changed":false,"mutation_outcome":"NO_MUTATION","next_stage":"NEWFILYA_ORIGIN_REQUIRED","npmplus_reloaded":false,"operator_input_required":true,"parent_v12_evidence":{"PLAN_SHA256":null,"capsule_bytes":93497,"capsule_sha256":"2646700d3b164edb9540d39d332d4c6fda9cc0de26d49942f9c11b0704ae6231","card_count":65,"changes_made":false,"command_id":"HOMEPAGE-NEWFILYA-PUBLIC-TLS-READ-ONLY-PLAN-FIX3-V12-20260804T100000Z","command_sha256":"54ecaf5977858caa5a64e76d6acafabe9618d9e28181f4e7f4854bce969e07c7","diagnosis":"NEWFILYA_PUBLIC_TLS_PLAN_BLOCKED","edge_certbot_available":true,"edge_domain_match_count":0,"edge_persistent_acme_http_route_present":true,"edge_primary_certificate_paths_absent":true,"edge_remote_stdout_sha256":"d7f9bd738cf4abb3b7e0caa18b98f57883fea0e3eefff7cffbcb5dfc74f27723","gate":"BLOCKED","group_count":7,"homepage_restart_count":0,"mutation_outcome":"NO_MUTATION","newfilya_monitor_enabled":false,"output_sha256":"9f9ba05a451c9a7f4b2ff4426e3c26380738d212c6071fc73585177ed5dcda29","public_acme_route_proven":true,"public_https_npmplus_default":true,"public_leaf_certificate_sha256":"c14d6f3eda27dcd7e8c8a44c18844f8009b4f23a74ab82d49475f138ddef0b93","public_tls_verify_codes":{"18":1},"rc":1,"ready_for_apply":false,"rollback_restored":null,"rollback_started":false,"services_bytes":12308,"services_sha256":"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928","services_structure_sha256":"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82","status":"FAIL","tls_state":"SELF_SIGNED"},"parent_v13_evidence":{"PLAN_SHA256":null,"capsule_bytes":92904,"capsule_sha256":"78faab3753d3fb6e394bd36486248787eef7d3571ca81e05457cec211f0a7e0a","card_count":65,"changes_made":false,"command_id":"HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-V13-20260804T102000Z","command_sha256":"10aff25da35bbe9e7bf92b770ffeead54a1246ea947abc7501673c297bfa5af6","diagnosis":"NEWFILYA_UPSTREAM_DISCOVERY_BLOCKED","edge_diagnosis":"NEWFILYA_UPSTREAM_DISCOVERY_EXCEPTION","edge_remote_rc":1,"edge_remote_stdout_bytes":669,"edge_remote_stdout_sha256":"28cabc71738ea6beb1923d449c13cef3be61caeb6f6fe181b7eeb89d3931ba22","gate":"BLOCKED","group_count":7,"homepage_restart_count":0,"mutation_outcome":"NO_MUTATION","newfilya_monitor_enabled":false,"output_sha256":"f70f5685e28f5b83652086203bbcd3b40ab0db97c3b5ff13de91816c054dc930","rc":1,"recovered_failure_code":"COMMAND_RC_1","recovered_failure_duration_ms":97,"recovered_failure_message_bytes":23,"recovered_failure_message_sha256":"e3c100135a25cf0d5865892d767cb30234d590927e66e910d937601702af4e42","recovered_failure_type":"ValueError","rollback_restored":null,"rollback_started":false,"services_bytes":12308,"services_sha256":"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928","services_structure_sha256":"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82","status":"FAIL"},"parent_v14_evidence":{"PLAN_SHA256":null,"capsule_bytes":94764,"capsule_sha256":"4bdf601c1b3f529f26feea3cfb14b21f4ecd88a746eb04dd7e50439065b9a554","card_count":65,"changes_made":false,"command_id":"HOMEPAGE-NEWFILYA-UPSTREAM-READ-ONLY-DISCOVERY-FIX1-V14-20260804T113000Z","command_sha256":"583cbadd401263023078e907b9945c6d69225a40cbdc20d38669ad246c48b6de","database_complete":true,"database_exact_domain_match_count":0,"diagnosis":"NEWFILYA_UPSTREAM_DISCOVERY_BLOCKED","docker_command_audit_count":5,"docker_command_audit_record_set_sha256":"bbcf421b53b375198d57c0e6d6579aa7ae0fbc5b5706fa43a1221895b111d538","docker_command_audit_stage_set_sha256":"aacf3df9d159cc4f10b288a1450f061c7792e7bebddbb5f5d47e13d186ccda2c","docker_complete":false,"docker_error_code":"DOCKER_INVENTORY_EXCEPTION","docker_failure_argv_count":15,"docker_failure_code":"DOCKER_INSPECT_RETRY_RC_1","docker_failure_message_bytes":38,"docker_failure_message_sha256":"247b4f51530ca617d64a5f98dfc8f9723a71c7906818767af76304c045ee2115","docker_failure_rc":1,"docker_failure_stage":"DOCKER_INSPECT_RETRY","docker_failure_stderr_bytes":864,"docker_failure_stderr_sha256":"ee53d38e73e88c08f2c93d9cb634d1bf8a55fab98acdbbb85368c1c3d0de23b9","docker_failure_stdout_bytes":531,"docker_failure_stdout_sha256":"12a8eabefd2f962c72099133739ca05994b33889ca6cdd8ca31f602108c4e213","docker_failure_type":"ProbeFailure","edge_remote_rc":1,"edge_remote_stdout_bytes":3151,"edge_remote_stdout_sha256":"a111babba6d8a1de7e5a0f3121160d1ca1244fce966713382c77a21b6156d69f","gate":"BLOCKED","group_count":7,"homepage_restart_count":0,"mutation_outcome":"NO_MUTATION","newfilya_monitor_enabled":false,"operator_input_required":false,"output_sha256":"63ab6ea2764e16a1e1be37aa85ca28c5c3594635f4988f7c3ef80bb67651b728","rc":1,"ready_for_route_plan":false,"rollback_restored":null,"rollback_started":false,"services_bytes":12308,"services_sha256":"0b7360dc34b9bd3e25073eae449f3c0c5a6609f7eb9f4bb2feca72b6e04fc928","services_structure_sha256":"eff9a7e610218ffdd092d704d2fcfad357db5d3b75ee0cc584c606ae4ee61f82","stacks_complete":true,"stacks_strong_candidate_count":0,"status":"FAIL"},"plan":null,"private_addresses_included":false,"private_keys_read":false,"production_site_changed":false,"public_proxy_changed":false,"rc":0,"read_only":true,"ready_for_route_plan":false,"required_input":{"accepted_origin_types":["existing_homelab_service","external_origin","redirect_target","new_static_landing"],"question":"WHAT_SHOULD_NEWFILYA_RU_SERVE"},"rollback_restored":null,"rollback_started":false,"sanitized":true,"schema":1,"secret_files_read":false,"secrets_included":false,"source_contents_returned":false,"status":"OK","transport":{"core":{"config_view":"service-view","mode":"DIRECT_QGA","private_addresses_returned":false,"qga_step_count":6,"qga_step_set_sha256":"a47c77c34bca15e5359e489e34787b7697009017b7f6b379aa0da6c0a571a087","remote_rc":0,"remote_stdout_bytes":2810,"remote_stdout_sha256":"8eee46305b129ee0d912f6b432810b58391df09a4d02cb76ce5fdf93336a951f","socket_view":"service-view","vm_name":"core-apps","vmid":170},"edge":{"config_view":"service-view","mode":"STRICT_SSH_TO_OWNING_NODE_THEN_DIRECT_QGA","node":"pve03","private_addresses_returned":false,"qga_step_count":7,"qga_step_set_sha256":"0936455bbf506e0e097db7b16ed515e0164c55485675c7dc37c9552b0137d031","remote_rc":0,"remote_stdout_bytes":3184,"remote_stdout_sha256":"a9a7f3da75c19646198c64354ee0977635387762bd04a33265b039e0b88f5614","socket_view":"service-view","ssh_rc":0,"vm_name":"edge-vm","vmid":130}}} +GENERATED_AT_UTC=[PRIVATE_IP]T12:17:01Z +Cluster information +------------------- +Name: homelab +Config Version: 3 +Transport: knet +Secure auth: on +Quorum information +------------------ +Date: Tue Aug [PRIVATE_IP] 2026 +Quorum provider: corosync_votequorum +Nodes: 3 +Node ID: [PRIVATE_IP] +Ring ID: 1.db +Quorate: Yes + +Votequorum information +---------------------- +Expected votes: 3 +Highest expected: 3 +Total votes: 3 +Quorum: 2 +Flags: Quorate + +Membership information +---------------------- + Nodeid Votes Name +[PRIVATE_IP] [PRIVATE_IP].11 (local) +[PRIVATE_IP] [PRIVATE_IP].13 +[PRIVATE_IP] [PRIVATE_IP].12 + +Membership information +---------------------- + Nodeid Votes Name + 1 1 pve01 (local) + 2 1 pve03 + 3 1 pve02 +[{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":609000,"vmid":110},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/111","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":609084,"vmid":111},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/112","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":609045,"vmid":112},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/113","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":609088,"vmid":113},{"cpu":[PRIVATE_IP]46709,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"edge-vm","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":609025,"vmid":130},{"cpu":[PRIVATE_IP]8119,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/150","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"nextcloud","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":608998,"vmid":150},{"cpu":[PRIVATE_IP]95122,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/160","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"forum-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":609081,"vmid":160},{"cpu":[PRIVATE_IP]99034,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/170","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"core-apps","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":608994,"vmid":170},{"cpu":[PRIVATE_IP]32937,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/171","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"monitoring","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":608991,"vmid":171},{"cpu":[PRIVATE_IP]24391,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/180","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"cluster-admin","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":609078,"vmid":180},{"cpu":[PRIVATE_IP]546052,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/190","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"homelab-ops-worker","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":609021,"vmid":190},{"cpu":0,"disk":0,"diskread":0,"diskwrite":0,"id":"qemu/9130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":0,"memhost":0,"name":"edge-cold-standby","netin":0,"netout":0,"node":"pve02","status":"stopped","template":0,"type":"qemu","uptime":0,"vmid":9130},{"cgroup-mode":2,"cpu":[PRIVATE_IP]19709,"disk":[PRIVATE_IP],"id":"node/pve02","level":"","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve02","status":"online","type":"node","uptime":609121},{"cgroup-mode":2,"cpu":[PRIVATE_IP]02172,"disk":[PRIVATE_IP],"id":"node/pve01","level":"","maxcpu":24,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve01","status":"online","type":"node","uptime":609103},{"cgroup-mode":2,"cpu":[PRIVATE_IP]30636,"disk":[PRIVATE_IP],"id":"node/pve03","level":"","maxcpu":8,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve03","status":"online","type":"node","uptime":609042},{"content":"import,vztmpl,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"import,vztmpl,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve01/local","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"import,vztmpl,iso,backup","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve01/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"images,rootdir","disk":[PRIVATE_IP],"id":"storage/pve03/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"},{"id":"network/pve01/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve01","status":"ok","type":"network"},{"id":"network/pve03/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve03","status":"ok","type":"network"}] +Name Type Status Total (KiB) Used (KiB) Available (KiB) % +local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 14.17% +local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 27.36% + UNIT LOAD ACTIVE SUB DESCRIPTION +● homelab-backup-matrix-refresh.service loaded failed failed Generate unified homelab backup matrix state +● homelab-crypto-portfolio-chart-health.service loaded failed failed Crypto portfolio chart health check +● skladchik-reports-monitor-supervisor.service loaded failed failed Skladchik reports monitor full supervisor + +Legend: LOAD → Reflects whether the unit definition was properly loaded. + ACTIVE → The high-level unit activation state, i.e. generalization of SUB. + SUB → The low-level unit activation state, values depend on unit type. + +3 loaded units listed. +NEXT LEFT LAST PASSED UNIT ACTIVATES +Tue [PRIVATE_IP] 15:17:09 MSK 6s Tue [PRIVATE_IP] 15:16:07 MSK 55s ago homelab-router-watchdog.timer homelab-router-watchdog.service +Tue [PRIVATE_IP] 15:17:26 MSK 23s Tue [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-cluster-admin-webpanel-sync.timer homelab-cluster-admin-webpanel-sync.service +Tue [PRIVATE_IP] 15:17:26 MSK 23s Tue [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service +Tue [PRIVATE_IP] 15:18:14 MSK 1min 11s Tue [PRIVATE_IP] 15:13:14 MSK 3min 48s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service +Tue [PRIVATE_IP] 15:18:26 MSK 1min 23s Tue [PRIVATE_IP] 15:13:26 MSK 3min 36s ago netbird-peers-health.timer netbird-peers-health.service +Tue [PRIVATE_IP] 15:18:35 MSK 1min 32s Tue [PRIVATE_IP] 15:16:26 MSK 36s ago homelab-cluster-admin-inventory-sync.timer homelab-cluster-admin-inventory-sync.service +Tue [PRIVATE_IP] 15:19:26 MSK 2min 23s Tue [PRIVATE_IP] 15:04:26 MSK 12min ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service +Tue [PRIVATE_IP] 15:19:43 MSK 2min 40s Tue [PRIVATE_IP] 15:14:14 MSK 2min 48s ago homelab-crypto-portfolio-chart-health.timer homelab-crypto-portfolio-chart-health.service +Tue [PRIVATE_IP] 15:21:26 MSK 4min 23s Tue [PRIVATE_IP] 15:11:26 MSK 5min ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service +Tue [PRIVATE_IP] 15:21:52 MSK 4min 49s Tue [PRIVATE_IP] 15:16:38 MSK 24s ago homelab-health-metrics.timer homelab-health-metrics.service +Tue [PRIVATE_IP] 15:22:14 MSK 5min Tue [PRIVATE_IP] 15:07:14 MSK 9min ago homelab-disk-space-health.timer homelab-disk-space-health.service +Tue [PRIVATE_IP] 15:22:26 MSK 5min Tue [PRIVATE_IP] 15:07:26 MSK 9min ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service +Tue [PRIVATE_IP] 15:24:26 MSK 7min Tue [PRIVATE_IP] 15:09:26 MSK 7min ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service +Tue [PRIVATE_IP] 15:30:00 MSK 12min Tue [PRIVATE_IP] 15:15:14 MSK 1min 48s ago homelab-incident-journal.timer homelab-incident-journal.service +Tue [PRIVATE_IP] 15:30:20 MSK 13min Tue [PRIVATE_IP] 15:15:43 MSK 1min 19s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service +Tue [PRIVATE_IP] 15:30:33 MSK 13min Tue [PRIVATE_IP] 15:16:07 MSK 55s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service +Tue [PRIVATE_IP] 15:31:06 MSK 14min Tue [PRIVATE_IP] 15:15:26 MSK 1min 36s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service +Tue [PRIVATE_IP] 15:34:08 MSK 17min Tue [PRIVATE_IP] 15:03:14 MSK 13min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service +Tue [PRIVATE_IP] 15:45:25 MSK 28min Tue [PRIVATE_IP] 15:13:14 MSK 3min 48s ago homelab-reference-refresh.timer homelab-reference-refresh.service +Tue [PRIVATE_IP] 20:08:26 MSK 4h 51min Tue [PRIVATE_IP] 14:08:26 MSK 1h 8min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service +Wed [PRIVATE_IP] 00:00:00 MSK 8h Tue [PRIVATE_IP] 00:00:07 MSK 15h ago dpkg-db-backup.timer dpkg-db-backup.service +Wed [PRIVATE_IP] 00:08:04 MSK 8h Tue [PRIVATE_IP] 00:05:08 MSK 15h ago homelab-storage-capacity.timer homelab-storage-capacity.service +Wed [PRIVATE_IP] 00:08:47 MSK 8h Tue [PRIVATE_IP] 00:08:07 MSK 15h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service +Wed [PRIVATE_IP] 00:13:19 MSK 8h Tue [PRIVATE_IP] 00:13:28 MSK 15h ago homelab-docker-health.timer homelab-docker-health.service +Wed [PRIVATE_IP] 00:18:54 MSK 9h Tue [PRIVATE_IP] 00:08:14 MSK 15h ago homelab-quality-gate.timer homelab-quality-gate.service +Wed [PRIVATE_IP] 00:51:16 MSK 9h Tue [PRIVATE_IP] 00:08:36 MSK 15h ago logrotate.timer logrotate.service +Wed [PRIVATE_IP] 01:56:09 MSK 10h Tue [PRIVATE_IP] 00:14:22 MSK 15h ago man-db.timer man-db.service +Wed [PRIVATE_IP] 03:50:00 MSK 12h Tue [PRIVATE_IP] 03:50:02 MSK 11h ago filebrowser-offhost-sync.timer filebrowser-offhost-sync.service +Wed [PRIVATE_IP] 04:05:55 MSK 12h Tue [PRIVATE_IP] 01:23:47 MSK 13h ago pve-daily-update.timer pve-daily-update.service +Wed [PRIVATE_IP] 04:48:13 MSK 13h Tue [PRIVATE_IP] 04:42:07 MSK 10h ago homelab-edge-vm-offhost-freshness.timer homelab-edge-vm-offhost-freshness.service +Wed [PRIVATE_IP] 04:58:15 MSK 13h Tue [PRIVATE_IP] 05:15:14 MSK 10h ago homelab-sops-edge-secret-coverage.timer homelab-sops-edge-secret-coverage.service +Wed [PRIVATE_IP] 05:30:03 MSK 14h Tue [PRIVATE_IP] 12:02:37 MSK 3h 14min ago apt-daily.timer apt-daily.service +Wed [PRIVATE_IP] 06:01:06 MSK 14h Tue [PRIVATE_IP] 06:53:08 MSK 8h ago apt-daily-upgrade.timer apt-daily-upgrade.service +Wed [PRIVATE_IP] 07:16:56 MSK 15h Tue [PRIVATE_IP] 07:03:50 MSK 8h ago homelab-drift-check.timer homelab-drift-check.service +Wed [PRIVATE_IP] 07:32:01 MSK 16h Tue [PRIVATE_IP] 07:39:26 MSK 7h ago homelab-service-registry-check.timer homelab-service-registry-check.service +Wed [PRIVATE_IP] 07:48:22 MSK 16h Tue [PRIVATE_IP] 07:54:17 MSK 7h ago homelab-desired-state-sync.timer homelab-desired-state-sync.service +Wed [PRIVATE_IP] 07:53:58 MSK 16h Tue [PRIVATE_IP] 07:46:07 MSK 7h ago homelab-alerting-health.timer homelab-alerting-health.service +Wed [PRIVATE_IP] 07:56:28 MSK 16h Tue [PRIVATE_IP] 07:56:07 MSK 7h ago homelab-dependency-map-check.timer homelab-dependency-map-check.service +Wed [PRIVATE_IP] 07:56:57 MSK 16h Tue [PRIVATE_IP] 07:56:50 MSK 7h ago homelab-runbook-generate.timer homelab-runbook-generate.service +Wed [PRIVATE_IP] 08:06:21 MSK 16h Tue [PRIVATE_IP] 07:59:39 MSK 7h ago homelab-duty-admin-report.timer homelab-duty-admin-report.service +Wed [PRIVATE_IP] 08:11:00 MSK 16h Tue [PRIVATE_IP] 08:03:50 MSK 7h ago homelab-overall-health.timer homelab-overall-health.service +Wed [PRIVATE_IP] 08:16:53 MSK 16h Tue [PRIVATE_IP] 08:16:35 MSK 7h ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service +Wed [PRIVATE_IP] 08:21:31 MSK 17h Tue [PRIVATE_IP] 08:12:26 MSK 7h ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service +Wed [PRIVATE_IP] 08:30:08 MSK 17h Tue [PRIVATE_IP] 08:36:50 MSK 6h ago homelab-capacity-risk.timer homelab-capacity-risk.service +Wed [PRIVATE_IP] 08:37:04 MSK 17h Tue [PRIVATE_IP] 08:52:38 MSK 6h ago homelab-cluster-passport.timer homelab-cluster-passport.service +Wed [PRIVATE_IP] 08:40:47 MSK 17h Tue [PRIVATE_IP] 08:36:17 MSK 6h ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service +Wed [PRIVATE_IP] 08:47:05 MSK 17h Tue [PRIVATE_IP] 08:54:47 MSK 6h ago immich-media-offhost-sync.timer immich-media-offhost-sync.service +Wed [PRIVATE_IP] 08:55:12 MSK 17h Tue [PRIVATE_IP] 08:50:07 MSK 6h ago homelab-golden-state-index.timer homelab-golden-state-index.service +Wed [PRIVATE_IP] 09:20:57 MSK 18h Tue [PRIVATE_IP] 09:06:50 MSK 6h ago memos-offhost-sync.timer memos-offhost-sync.service +Wed [PRIVATE_IP] 10:15:00 MSK 18h Tue [PRIVATE_IP] 10:15:14 MSK 5h 1min ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service +Wed [PRIVATE_IP] 14:20:26 MSK 23h Tue [PRIVATE_IP] 14:20:26 MSK 56min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service +Sun [PRIVATE_IP] 03:10:38 MSK 4 days Sun [PRIVATE_IP] 03:10:25 MSK 2 days ago xfs_scrub_all.timer xfs_scrub_all.service +Sun [PRIVATE_IP] 03:10:48 MSK 4 days Sun [PRIVATE_IP] 03:10:50 MSK 2 days ago e2scrub_all.timer e2scrub_all.service +Mon [PRIVATE_IP] 00:03:56 MSK 5 days Mon [PRIVATE_IP] 00:11:50 MSK 1 day 15h ago homelab-secret-sanity.timer homelab-secret-sanity.service +Mon [PRIVATE_IP] 01:11:21 MSK 5 days Mon [PRIVATE_IP] 01:17:56 MSK 1 day 13h ago fstrim.timer fstrim.service +- - - - prometheus-node-exporter-ipmitool-sensor.timer prometheus-node-exporter-ipmitool-sensor.service +- - - - prometheus-node-exporter-mellanox-hca-temp.timer prometheus-node-exporter-mellanox-hca-temp.service +- - - - prometheus-node-exporter-smartmon.timer prometheus-node-exporter-smartmon.service + +58 timers listed. +- Обрезанная, повреждённая или частично вставленная команда считается невыполненной; сначала проводится side-effect audit. +- Хвост parse-ошибки закрывается только после доказательства отсутствия изменений и временных артефактов. +- Proof: /var/lib/homelab-change-sets/operator-command-size-guard-v[PRIVATE_IP]T182653Z/report.txt + +## HOMELAB_ADMIN_CLI_CONTRACT_[PRIVATE_IP] +- Поддерживаемые команды: version, status, lint TASK_DIR, validate TASK_DIR, run TASK_DIR PHASE. +- Отдельная команда --help отсутствует. Неизвестный аргумент печатает usage и штатно возвращает RC=64. +- Нельзя трактовать RC=64 от --help как неисправность runner. +- Для проверки доступности runner использовать homelab-admin version; для структуры CLI использовать зафиксированную usage-строку. +- Proof: /var/lib/homelab-change-sets/homelab-admin-cli-contract-fix-v[PRIVATE_IP]T183338Z/report.txt + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_[PRIVATE_IP] +Collector: /usr/local/sbin/homelab-context-collect +Scheduler: hourly at minute 17 via /etc/cron.d/homelab-context-refresh +Destination: immutable Gitea runtime history with CONTEXT-AUTO UTC command IDs. + +AUTOMATIC_CLUSTER_CONTEXT_REFRESH_DIRECT_[PRIVATE_IP] +Publisher: /usr/local/sbin/homelab-context-refresh-direct +Schedule: hourly at minute 17. +Destination: immutable assistant-runtime history with CONTEXT-AUTO UTC IDs. +ANTI_REGRESSION_TOKEN=HOMELAB_VM_2CLOUD_444_OUTER_LAUNCHER_BOUNDARY_REQUIRED +- Anti-regression: validate the complete outer launcher with a shell syntax check and verify the wrapper argument boundary before issuing it. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z + +## ERROR_[PRIVATE_IP]_HOMELAB_VM_2CLOUD_DRAIN_CLOSURE_PREFLIGHT_446 +COMMAND_ID=HOMELAB-VM-2CLOUD-DRAIN-CLOSURE-PREFLIGHT-446 +- Symptom: homelab-chat-run-linked printed Usage and skipped result-feed publication as invalid input. +- Root cause: the diagnostic script was piped to wrapper stdin and the mandatory double-dash command separator was omitted. +- Correction: invoke homelab-chat-run-linked as COMMAND_ID MODE COMPONENT -- command arguments; stdin is not its command interface. +ANTI_REGRESSION_TOKEN=HOMELAB_CHAT_RUN_COMMAND_REQUIRES_DOUBLE_DASH +- Anti-regression: treat wrapper Usage as the authoritative CLI contract and syntax-check the complete launcher, not only its inner payload. +- Infrastructure action executed: none. +- Backup payload impact: none. +- Production impact: none. +- Status: CLOSED; UNRESOLVED_TAIL_COUNT=0. +- Registered at: [PRIVATE_IP]T11:20:32Z OUTPUT_END CHAT_OUTPUT_END