Commit Graph
499 Commits
Author SHA1 Message Date
mrcharles 6414fee6ec feat(sensors): labeled per-zone thermal layer in lmsensors-extend [#736]
Hosts opt in via /etc/snmp/lmsensors-zone-types (one zone type per
line, e.g. Jetson GPU-therm); each type renders its own zone-<type>
chip block so HA templates anchor on the chip name. Default behavior
unchanged; no snmpd restarts (extend re-execs per poll).
2026-09-02 21:16:34 -05:00
mrcharles c71d66e129 docs: remote-access decision question for founder [#626][#344] 2026-09-02 21:07:27 -05:00
mrcharles b958dd762f docs: ask 14 answered — dockerd bounce applied [#731]
Meat: https://projects.knownelement.com/issues/731#note-3929
2026-09-02 20:42:28 -05:00
mrcharles a4d4c1c91a feat(perf): reusable guest perf pack deploy script [#737]
Idempotent in-guest tuning: sysctl profile, fq/bbr, THP->madvise with
boot persistence (yields to tuned), fstrim.timer. First applied to
pfv-k8s-wnode-tsys3.

Ticket: https://projects.knownelement.com/issues/737
2026-09-02 20:37:03 -05:00
mrcharles 17c555adf5 docs(questions): v4 badge doorman modernization round [#345]
Opens the actuator/reader-format/whitelist questions for the badge
system modernization on #345/#355.

Findings note: https://projects.knownelement.com/issues/355#note-3955
2026-09-02 20:29:17 -05:00
mrcharles 4de1457eaa docs(agents): dhcpd AppArmor /etc/dhcp path constraint field lesson [#728] 2026-09-02 20:23:38 -05:00
mrcharles 1dbf16c9df feat(dns): zone-snapshot tooling + sync rule; refresh stale snapshots [#630][#728]
Founder rule: every Technitium/DNS/DHCP change ends with a same-session
SoR sync — zone-snapshot.sh then drift-check green, then commit. Added
the tool (tar-pulls the DZ store from the primary via the chokepoint),
wrote the rule into AGENTS.md (DNS change discipline + Key Scripts rows),
refreshed 4 stale snapshots (knel.net, 1/3.168.192 reverse, 119.70.100
— incl. the deleted ultix-offstage PTR). drift-check: ALL IN SYNC.
Also: last tsrouter mentions retired (AGENTS.md, setup.sh header).
2026-09-02 20:19:23 -05:00
mrcharles c2b7c91079 fix(dhcp): retire ultix-offstage reservation — VM 5112 deleted [#728][#420]
Founder ruling 2026-09-02: ultix-offstage is retired. Removed the host
block (bc:24:11:1f:9d:83 -> 192.168.3.79) from both SoR confs and deployed
to the live pair serially with health gates; failover reports both-normal.
A record + PTR deleted from Technitium both nodes; #307 inventory rows
annotated. Tailscale device removal is a founder console action.
2026-09-02 20:18:09 -05:00
mrcharles ffda5a68f0 feat(switches): add show-only audit cmds for 4 consoles [#732]
Fleet perf audit found only 2/6 consoles had repo cmds sets; these four
were improvised show-only and used for the 2026-09-02 conman pulls.

Report: https://community.turnsys.com/t/298/66
Ticket: https://projects.knownelement.com/issues/732
2026-09-02 20:14:14 -05:00
mrcharles d9aa989957 docs(agents): HA snmp two-layer + package dupe-key field lessons [#344] 2026-09-02 20:02:54 -05:00
mrcharles 76e50de25f fix(dns): retire tailscale-router references; netinfra pair is prod [#728]
Founder ruling 2026-09-02: tailscale-router retired, subnet routing now
pfv-netinfra-01/02 (both advertise 192.168.0.0/22 + exit routes, verified).
Drop dead tsrouter alias from the chokepoint script; setup/verify now use
the primary as production source; refresh verify record list (tsys-nsm is
also a dead name; add tsys-wazuh CNAME + tsys-siem).

archive/KNELServerBuild copies left as read-only history by design.
2026-09-02 19:42:15 -05:00
mrcharles e6f33ca32a docs: ask 13 answered — Cloudron API token received+verified [#727]
Stored 0600 in ~/.creds/cloudron.env; API verified (profile/apps 200).
Meat: https://projects.knownelement.com/issues/727#note-3928
2026-09-02 19:07:43 -05:00
mrcharles 13fcb13182 move cloudron kuma artifacts to KNEL/cloudron [#727]
cloudron-apps.txt + kuma-cloudron-sync.py now live at
KNEL/cloudron monitoring/ (path re-rooted there).
Meat: https://projects.knownelement.com/issues/727#note-3913
2026-09-02 18:51:20 -05:00
mrcharles e824a1fc72 docs: Cloudron asks 13/14 — API token + dockerd window [#727]
Bootstrap of KNEL/cloudron repo + script capture.
Meat: https://projects.knownelement.com/issues/727#note-3913
2026-09-02 18:44:50 -05:00
mrcharles 77811927e3 docs: finish questions consolidation — drop merged files [#344]
Leftover unstaged state from the parallel 09-02 sessions: delete
questions-v1/v2, HomeAssistant/needfromcharles.md, night-grind-plan.md
(content lives in questions-09022206.md / questions-v3.md / git history);
drop superseded UniFi API-key ask (#619 multicast fix made it moot).

Details: https://projects.knownelement.com/issues/344#note-3911
2026-09-02 18:26:14 -05:00
mrcharles 0c6aabbb4d fix(rules): accept any questions-v*.md version + restore questions file
The required-files check pinned questions-v1.md, which breaks every time
the Q&A file versions up (v2 was closed out by the parallel session,
leaving nothing matching). Now glob-accepts any version. questions-v3.md
restores the file; active question channel is ~/PTKR.md per founder.

Detail: https://projects.knownelement.com/issues/441 (latest notes)

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 18:12:52 -05:00
mrcharles e56442e694 docs(agents): HA todo HUD field lessons (get_items/rename pattern) [#441]
How to read and rename founder todo-list items via HA REST for the
Redmine [#NNN] sync-back workflow.

Detail: https://projects.knownelement.com/issues/441 (latest notes)

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 18:08:53 -05:00
mrcharles aa8239b74a docs: consolidate open asks into questions-09022206.md [#344]
💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 18:01:52 -05:00
mrcharles bacd7058a1 kuma: monitor the 7 booking instances + penpot [#685]
These 8 apps were the postgres connection hogs - invisible to monitoring
until now. Detail: https://projects.knownelement.com/issues/685
2026-09-02 17:57:56 -05:00
mrcharles dd74fccc08 feat(dhcp): reservations — DIRIGERA hub + 2 WiZ bulbs (forward/reverse DNS added) [#712][#344]
💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 17:57:16 -05:00
mrcharles 326860a80b docs: full-session close-out [#682] 2026-09-02 17:36:15 -05:00
mrcharles da3f365faa docs(agents): field lessons — 2026-09-02 HA deep session 2026-09-02 17:33:21 -05:00
mrcharles 4f9e7d521e feat(pdu): garage PDU SNMP relay on tsys-librenms (AP7830 v1-only) [#344]
💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 17:24:19 -05:00
mrcharles 069273531d docs(agents): no-wiki-in-Redmine ruling + fix tooling-cli paths [#441]
Discourse is the sole documentation space; Redmine wikis stay disabled
(verified 0/62 projects). Also repointed the stale redmine/discourse CLI
AGENTS.md references to ukrrs/connectors/KNEL-AIMiddleware.

Detail: https://projects.knownelement.com/issues/441 (latest note)

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 17:03:54 -05:00
mrcharles ebefbe47a7 feat(netinfra): NTP + Technitium zones into git SoR; drift-check full stack [#630]
ntp.conf captured (nodes byte-identical); 171 Technitium DZ zone files
captured from the primary; drift-check now covers dhcpd/pihole/ntp on
both nodes plus a zones md5-manifest check. Live run caught real drift:
node-02 dhcpd.conf was a stale primary copy missing the #614 minisplit
reservation — reconciled git->02 with dhcpd -t gate, serial restart,
failover "Both servers normal", all 7 checks in sync. Red-green unit
tests extended (gen_manifest, tracked-file invariants).

Results: https://projects.knownelement.com/issues/630#note-2
2026-09-02 16:33:33 -05:00
mrcharles bdf61ebe49 fix(kuma): Cloudron monitors under dedicated group; zero IP literals [#435]
New "Cloudron" group (id 277); all 55 app monitors moved there
(canary-verified). Deleted IP-literal monitor id=8 (dup of DNS-named
id=210) and repointed appletv monitor to new DNS name
stl-appletv-livingroom.knel.net. Fleet-wide IP literals in Kuma: 0.
Sync tool default group updated to 277.

Results: https://projects.knownelement.com/issues/435#note-5
2026-09-02 16:26:46 -05:00
mrcharles 14e7e4dabb docs: session close-out — HA software queue worked, masters #682/#683 cut [#344]
💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 15:21:33 -05:00
mrcharles f393a5ba5f feat(idrac): drac-extend — IPMI temps via snmpd extend (tsys6/7) [#625]
💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 14:56:21 -05:00
mrcharles 8bc1dc6612 feat(kuma): Cloudron HTTP-200 coverage + group discipline [#435]
55 http monitors added under "Cloud Systems" (blue/green: canary first,
verified green); 9 root-level strays re-homed into founder's groups
(root now zero). New tools: inventory (read-only dump), cloudron-sync
(idempotent diff/add from committed app list), regroup (lib-based moves;
raw editMonitor times out on this build). fleet-sync now requires
--group-id so it can never place monitors at root again.

Results: https://projects.knownelement.com/issues/435#note-4
2026-09-02 13:23:27 -05:00
mrcharles 53b847985e feat(ha): websocket driver tool; Govee integration live end-to-end [#620]
💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 12:59:36 -05:00
mrcharles a2ff60908e feat(mdns): one-shot browse tool; iDRAC SNMP live both DRACs; Govee creds [#619][#625]
💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 12:44:44 -05:00
mrcharles 2c12d7b39e docs(ha): session close-out — iDRAC creds ask, lock verdict, hygiene log [#619][#625]
💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 12:21:35 -05:00
mrcharles 4bf0c31609 chore: session close-out — k8s cluster rebuilt, 8/8 nodes Ready [#367][#368]
Details: https://projects.knownelement.com/issues/367
2026-09-02 12:10:07 -05:00
mrcharles 57946b7140 docs(ha): DHCP-table lock verdict — no lock OUIs, BLE-only likely [#619]
💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 12:08:40 -05:00
mrcharles 1f44a193a2 feat(k8s): cnode disks on TS5-SSD; worker roster — ultix-streaming replaces tsys5
- cnodes 102/705/603 moved to TS5-SSD storage by founder (etcd apply 4-5s -> <1s)
- wnode-tsys5 slot retired; ultix-streaming joins in its place (5 workers)
- ultix-offstage unreachable; stays excluded until back on tailnet

[#367][#368] https://projects.knownelement.com/issues/368
2026-09-02 12:03:26 -05:00
mrcharles babd6d2e25 fix(mdns): accumulate probe records across responses; unit tests [#619]
Live proof: ecobee answers unicast mDNS with PTR only
(_hap._tcp.local -> "Main Floor._hap._tcp.local"), so the old
replace-on-probe wiped learned records every cycle. Merge by
(name, type) instead. CONFIG_PATH now env-overridable for tests.
Details: https://projects.knownelement.com/issues/619#note-5

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-02 12:02:00 -05:00
mrcharles d3c5ae8beb fix(k8s): time-box remote cmds; k3s kubectl in post-setup; codify VM tuning
- join-workers.sh: timeout wrappers (30s token / 60s pre-clean / 300s install)
- post-setup.sh: bare kubectl/etcdctl do not exist on cnodes; use k3s kubectl
  and etcd-snapshot for health checks (taints silently failed before)
- k8s/proxmox-tuning.sh: codifies 2026-09-01 VM tuning (ssd=1,discard=on,
  queues=2, cpuunits, startup order) — dry-run default, RUN=1 applies

[#367][#368] https://projects.knownelement.com/issues/367
2026-09-01 19:32:51 -05:00
mrcharles c45be04bf5 feat(mdns): hap-bridge daemon — unicast probe to multicast replay [#619] 2026-09-01 18:43:04 -05:00
mrcharles aa510aac30 docs: ask for UniFi Integration API key [#619] 2026-09-01 18:38:40 -05:00
mrcharles 133b68ab40 fix(sensors): numeric parser anchors on degree symbol (label-digit bug) [#618] 2026-09-01 18:22:52 -05:00
mrcharles 6c8f839eaa fix(sensors): allowlist netinfra pair (TS subnet-route hairpin sources) [#618] 2026-09-01 18:16:19 -05:00
mrcharles 375a9fb3b2 fix(sensors): rocommunity6 for IPv6 ACL sources (snmpd config error) [#618] 2026-09-01 18:07:01 -05:00
mrcharles 7b922c507c feat(sensors): numeric -n mode + lmsensors_n extend for HA SNMP migration [#618] 2026-09-01 18:02:09 -05:00
mrcharles 196d0f597e docs: unattended night-grind plan for approval [#344] 2026-09-01 17:37:47 -05:00
mrcharles 3b1bf0adcb chore: HomeAssistant ops dir (config-repo pointer, needfromcharles asks); tidy test junk [#344] 2026-09-01 17:35:13 -05:00
mrcharles adfdcafeab feat(dns): git SoR + drift-check for pihole/dhcpd; serial-restart rule [#469][#420] 2026-09-01 17:07:23 -05:00
mrcharles e2d6e5c52f docs: session close-out — HA plant monitoring live, VM pipeline flowing [#344] 2026-09-01 16:12:39 -05:00
mrcharles 47323976e0 feat(dhcp): reserve pfv-minisplit-dongle 192.168.1.149 [#614][#629][#420] 2026-09-01 15:36:37 -05:00
mrcharles ab75a1713c fix(dns): reload Technitium when zone sync changes files (TDD) [#469][#344] 2026-09-01 13:41:27 -05:00
mrcharles a9a37266c7 docs(framework): field lessons + session close-out for pfv-bms stabilization [#344] 2026-09-01 13:08:30 -05:00