2026-08-09 - 2026-11-09

Overview

149 Active Pull Requests
3 Active Issues
Excluding merges, 1 author has pushed 191 commits to main and 732 commits to all branches. On main, 338 files have changed and there have been 31792 additions and 2706 deletions.

147 Pull requests merged by 4 users

Merged #156 feat(dns): public names via the Cloudflare Tunnel (Phase 2) — proxied CNAMEs, Plex/Headlamp LAN-only 2026-11-09 01:27:07 +00:00

Merged #155 chore(cloudflared): rotate tunnel credential (old secret exposed in a transcript) 2026-11-08 22:11:24 +00:00

Merged #154 fix(cloudflared): fsGroup so uid 65532 can read the 0440 credentials Secret 2026-11-08 21:57:47 +00:00

Merged #153 Added cloudflare creds and tunnel config 2026-11-08 21:34:25 +00:00

Merged #152 feat(cloudflared): Cloudflare Tunnel connector, Phase 1 (isolated, no traffic change) 2026-11-08 18:43:43 +00:00

Merged #151 chore(deps): Update gitea.home.keithjackson.dev/home-network/conformance-runner:main Docker digest to 63e1aa7 2026-11-08 14:15:18 +00:00

Merged #150 chore(deps): Update gitea.home.keithjackson.dev/home-network/agent-runner:main Docker digest to 89ce7ee 2026-11-08 08:17:22 +00:00

Merged #131 chore(deps): Update Helm release longhorn to <1.14.0 2026-11-08 06:55:55 +00:00

Merged #149 feat(ci): run L0/L1 offline checks, mutation suites and yamllint in bounded parallel pools 2026-11-08 06:53:42 +00:00

Merged #147 feat(ci): run the merge gate inside the CI-built toolbox image, pinned by digest 2026-11-08 06:51:00 +00:00

Merged #146 feat(gitea-actions): act_runner capacity 2, dind sized for two concurrent jobs 2026-11-08 06:47:05 +00:00

Merged #136 chore(deps): Update quay.io/oauth2-proxy/oauth2-proxy Docker tag to v7.15.6 2026-11-08 06:45:31 +00:00

Merged #148 fix(keycloak): one owner for the keycloak ServiceMonitor (26.8 operator 409 loop blocks Flux) 2026-11-08 06:37:13 +00:00

Merged #145 chore(renovate): hand-migrate docker key, track gitea/runner, keep range lower bounds 2026-11-08 06:17:59 +00:00

Merged #144 fix(keycloak): install the 26.8.2 operator's new CRDs (operator CrashLoop) 2026-11-08 06:16:56 +00:00

Merged #121 chore(deps): Update dependency keycloak/keycloak-k8s-resources to v26.8.2 2026-11-08 05:53:30 +00:00

Merged #142 feat(gitea): upgrade 1.27.3 -> 28.3.0 2026-11-08 05:41:34 +00:00

Merged #143 feat(devcontainer): bake velero CLI into the toolbox, pinned to prod server v1.18.2 2026-11-08 05:30:29 +00:00

Merged #113 chore(deps): Update actions/upload-artifact action to v7 2026-11-08 04:52:05 +00:00

Merged #112 chore(deps): Update actions/checkout action to v7 2026-11-08 04:48:40 +00:00

Merged #114 chore(deps): Update docker Docker tag to v29 2026-11-08 04:39:05 +00:00

Merged #124 chore(deps): Update ghcr.io/cloudnative-pg/postgresql Docker tag to v16.15 2026-11-08 04:28:19 +00:00

Merged #130 chore(deps): Update Helm release headlamp to <0.47.0 2026-11-08 04:28:02 +00:00

Merged #141 feat(conformance): L0 guard — external-dns annotationPrefix must match the tree (stacked on #140) 2026-11-08 00:08:29 +00:00

Merged #140 fix(dns): pin external-dns annotationPrefix — v0.23 ignored every alpha annotation 2026-11-08 00:01:06 +00:00

Merged #129 chore(deps): Update Helm release external-dns to <1.24.0 2026-11-07 12:12:00 +00:00

Merged #117 feat: PM-Agent also need to look at PR comments 2026-11-07 12:07:34 +00:00

Merged #135 chore(deps): Update python Docker tag to v3.15.2 2026-11-07 12:06:07 +00:00

Merged #127 chore(deps): Update gitea/act_runner Docker tag to v0.6.1 2026-11-07 12:04:55 +00:00

Merged #128 chore(deps): Update gitea/gitea Docker tag to v1.27.3 2026-11-07 11:44:36 +00:00

Merged #138 chore(deps): Update registry.k8s.io/sig-storage/snapshot-controller Docker tag to v8.7.0 2026-11-07 09:22:38 +00:00

Merged #137 chore(deps): Update registry.gitlab.com/crafty-controller/crafty-4 Docker tag to v4.11.0 2026-11-07 09:19:37 +00:00

Merged #134 chore(deps): Update nginxinc/nginx-unprivileged Docker tag to v1.31.7 2026-11-07 09:10:44 +00:00

Merged #133 chore(deps): Update lscr.io/linuxserver/radarr Docker tag to v5.28.0 2026-11-07 09:07:46 +00:00

Merged #132 chore(deps): Update lscr.io/linuxserver/qbittorrent Docker tag to v5.3.0 2026-11-07 09:04:44 +00:00

Merged #126 chore(deps): Update ghcr.io/seerr-team/seerr Docker tag to v3.5.1 2026-11-07 08:46:57 +00:00

Merged #125 chore(deps): Update ghcr.io/gethomepage/homepage Docker tag to v2.7.0 2026-11-07 08:43:58 +00:00

Merged #123 chore(deps): Update favonia/cloudflare-ddns Docker tag to v1.18.0 2026-11-07 08:37:59 +00:00

Merged #122 chore(deps): Update docker.io/library/alpine Docker tag to v3.24 2026-11-07 08:35:01 +00:00

Merged #120 chore(deps): Update velero/velero-plugin-for-aws Docker tag to v1.14.4 2026-11-07 08:29:02 +00:00

Merged #119 chore(deps): Update semaphoreui/semaphore Docker tag to v2.19.17 2026-11-07 08:26:05 +00:00

Merged #118 chore(deps): Update lscr.io/linuxserver/jackett Docker tag to v0.24.3025-ls29 2026-11-07 08:23:06 +00:00

Merged #104 chore(deps): Update Helm release cilium to v1.20.4 2026-11-07 03:07:19 +00:00

Merged #111 chore(deps): Update plexinc/pms-docker Docker tag to v1.43.6.11085-d1e52e169 2026-11-05 08:27:22 +00:00

Merged #110 chore(deps): Update lscr.io/linuxserver/jackett Docker tag to v0.24.3009-ls26 2026-11-05 08:24:23 +00:00

Merged #109 chore(deps): Update pihole/pihole Docker tag to v2026.10.1 2026-11-04 08:22:16 +00:00

Merged #108 chore(deps): Update docker.io/moby/buildkit Docker tag to v0.34.2 2026-11-04 08:19:20 +00:00

Merged #107 chore(deps): Update lscr.io/linuxserver/sonarr Docker tag to v4.0.20 2026-11-03 08:22:33 +00:00

Merged #106 chore(deps): Update kubevirt-cdi 2026-11-03 08:19:37 +00:00

Merged #105 chore(deps): Update intel/intel-gpu-plugin Docker tag to v0.37.1 2026-11-02 08:22:07 +00:00

Merged #102 chore(deps): Update dependency intel/intel-device-plugins-for-kubernetes to v0.37.1 2026-11-01 08:18:56 +00:00

Merged #100 chore(pm-agent): pin agent-runner to the run-394 digest (466f63e, PR #99), bump config-generation 2026-10-31 17:23:19 +00:00

Merged #99 fix(pm-agent): log the CLI's stdout envelope when triage fails; add PM_DECISION_MAX_TURNS 2026-10-31 17:12:41 +00:00

Merged #98 chore(pm-agent): take the dispatcher out of dry run (operator-approved), config-generation 4 2026-10-31 16:52:17 +00:00

Merged #96 chore(pm-agent): pin agent-runner to the run-383 digest (ddd04d4), bump config-generation 2026-10-31 16:34:49 +00:00

Merged #95 Added the credentials 2026-10-31 16:20:12 +00:00

Merged #61 feat(pm-agent): pull credential + admission rule 7, first published digest pinned, dry-run first start, token scopes fixed 2026-10-31 15:46:54 +00:00

Merged #94 feat(images): pin pihole, jackett and plex to the digests already running; Renovate follows them 2026-10-31 15:45:17 +00:00

Merged #89 chore(deps): Pin dependencies 2026-10-31 15:35:30 +00:00

Merged #92 chore(deps): Update gitea.home.keithjackson.dev/home-network/conformance-runner:main Docker digest to 65cc7c1 2026-10-31 15:26:58 +00:00

Merged #93 chore(deps): Update gitea.home.keithjackson.dev/home-network/toolbox:main Docker digest to d435fab 2026-10-31 08:25:12 +00:00

Merged #90 chore(deps): Update gitea.home.keithjackson.dev/home-network/agent-runner:main Docker digest to c4eba5b 2026-10-31 08:22:14 +00:00

Merged #87 fix(renovate): never auto-merge the oauth2-proxy sidecar or Renovate's own version 2026-10-30 08:21:22 +00:00

Merged #88 feat(renovate): track the Keycloak operator (the real Keycloak version), never auto-merge it 2026-10-30 08:14:02 +00:00

Merged #86 fix(renovate): edit catalog sources, track CNPG imageName, honour update.range, guard real-run auto-merges 2026-10-30 07:43:28 +00:00

Merged #85 fix(renovate): document and probe the five token scopes Renovate needs; lint daemon-bound actions 2026-10-30 07:10:02 +00:00

Merged #84 fix(renovate): run Renovate as the job container; the action needs a Docker daemon jobs do not get 2026-10-30 06:36:11 +00:00

Merged #82 fix(keycloak-passkey): passkey reconciler with review fixes — bind only on git's say-so (default false), protect real sub-flows, body-id screening, failure alert 2026-10-30 05:59:11 +00:00

Merged #83 fix(buildkit): allow buildkitd egress to Gitea so the Gateway stops 403ing the registry push 2026-10-30 05:50:12 +00:00

Merged #81 feat(images): build, verify and publish the three images in CI on rootless BuildKit; Renovate carries the digests 2026-10-30 05:15:16 +00:00

Merged #80 fix(renovate): the workflow still named renovate.json, so every run since #79 died with ENOENT 2026-10-30 04:48:43 +00:00

Merged #79 fix(renovate): the config was INVALID, so the first manual run errored out 2026-10-18 14:29:34 +00:00

Merged #77 fix(renovate): the cron fired outside Renovate's own window, so it would never open a PR 2026-10-18 14:28:59 +00:00

Merged #78 fix(pihole): make the split-horizon answer cacheable (local-ttl=60) 2026-10-18 08:19:28 +00:00

Merged #76 fix(conformance): one regex made the merge gate take 28 minutes instead of 2 2026-10-18 07:51:51 +00:00

Merged #75 fix(unattended-upgrades): Debian has no reboot-sentinel package, so ship the writer 2026-10-18 07:40:20 +00:00

Merged #73 feat(upgrades): automate node reboots (kured) and wire Renovate, which had never run 2026-10-18 06:28:30 +00:00

Merged #71 feat(shutdown): configure graceful node shutdown, and never scale a Delete-policy StatefulSet 2026-10-18 05:51:20 +00:00

Merged #74 fix(coredns): hold in-cluster DNS at 2 replicas via an HPA, because k3s owns the Deployment 2026-10-18 05:50:46 +00:00

Merged #72 feat(keycloak): add passkey (WebAuthn passwordless) login, additive and optional 2026-10-18 05:44:04 +00:00

Merged #70 fix(oauth2-proxy): gate startup on Keycloak discovery, or a cold boot CrashLoops the proxy 2026-10-18 04:14:52 +00:00

Merged #68 Expand plex volume 2026-10-10 16:13:46 +00:00

Merged #67 fix(bulk-nfs): repoint at the TrueNAS (192.168.2.30); the PVs must be recreated, not reconciled 2026-10-07 06:26:45 +00:00

Merged #66 fix(vpn-ingress): content-hash the peer register, or a merged peer never reaches the tunnel 2026-10-06 07:58:49 +00:00

Merged #65 Added my phone to peers 2026-10-06 07:42:04 +00:00

Merged #64 fix(vpn-ingress): new-peer.sh counted its own commented-out example as an allocated address 2026-10-06 07:31:03 +00:00

Merged #63 fix(vpn-ingress): stop trying to set net.ipv4.ip_forward — a hostNetwork pod cannot, and wg-quick dies on a failed PostUp 2026-10-06 07:09:34 +00:00

Merged #62 Changed secret 2026-10-06 06:18:14 +00:00

Merged #60 fix(vpn-ingress): keep the server key in source through SOPS, not as an out-of-band Secret 2026-10-06 06:09:05 +00:00

Merged #59 fix(node): pin gitea to the Gateway VIP — the failing certificate was the router's, not the Gateway's 2026-10-06 05:51:22 +00:00

Merged #57 feat(pm-agent): an in-cluster AI Program Manager that turns Gitea issues into pull requests 2026-10-06 04:12:31 +00:00

Merged #58 fix(runbooks): vpn-remote-access step 1 named a nonexistent script; step 2 cited the wrong gitignore rule 2026-10-06 04:12:27 +00:00

Merged #56 docs(agents): one workspace per agent run — the shared checkout is off-limits 2026-10-06 03:49:28 +00:00

Merged #55 feat(vpn-ingress): WireGuard remote access on udp/51820 — hostNetwork, because a pod identity would 403 every Gateway hostname 2026-10-06 03:41:49 +00:00

Merged #53 feat(cilium): roll the agents when cilium-config changes (merged config was silently inert) 2026-10-06 02:30:31 +00:00

Merged #52 fix(plex): advertise a resolver-independent plex.direct name again (LAN-wide outage) 2026-10-06 02:06:00 +00:00

Merged #51 fix(plex): unblock the app tier — drop the Certificate that stalled apps-wave-0, advertise http 2026-10-05 13:53:21 +00:00

Merged #48 feat(plex): one advertised hostname for local+remote, its own LE cert, and a LAN definition so LAN clients stop reading as remote 2026-10-04 21:47:32 +00:00

Merged #50 feat(cilium): export Plex's pre-SNAT client address via Hubble, scoped to tcp/32400 2026-10-04 21:47:21 +00:00

Merged #49 fix(obs): open 44180 to ns monitoring so the forward-auth gate sidecars are actually scrapable 2026-10-04 21:33:29 +00:00

Merged #47 fix(plex): advertise the plex.direct name, not the bare VIP (server vanished from the plex.tv account) 2026-10-04 07:59:14 +00:00

Merged #42 fix(cilium): point cgroup.hostRoot at the host cgroup2 root (socket-LB never covered host processes) 2026-10-04 07:10:31 +00:00

Merged #46 docs(decisions): record that PiHole HA is verified live, failover drill included 2026-10-04 07:08:19 +00:00

Merged #45 feat(pihole): two replicas on different nodes, and fix a PVC mounted where pihole never writes 2026-10-04 06:50:56 +00:00

Merged #44 feat(pihole): declare the admin password and adlists in git 2026-10-04 06:14:47 +00:00

Merged #43 feat(plex): expose tcp/32400 for remote access via a pinned LoadBalancer VIP 2026-10-04 04:46:34 +00:00

Merged #41 fix(node-baseline): pin the OIDC issuer to the Gateway VIP on prod nodes 2026-10-03 22:46:38 +00:00

Merged #40 feat(dns): publish Gateway names to the WAN via in-cluster DDNS 2026-10-03 22:25:13 +00:00

Merged #39 fix(runbooks): Plex hw transcoding WORKS — the dashboard was never the proof 2026-10-02 06:43:04 +00:00

Merged #38 fix(ci): let an administrator merge their own green PR — required_approvals 1 → 0, plus an attributed /approve-override 2026-10-02 06:17:17 +00:00

Merged #35 Added arr suite ability to connect to plex 2026-10-02 05:34:36 +00:00

Merged #37 feat(gpu): satisfy hardware.gpu: intel-quicksync with gpu.intel.com/i915 instead of a /dev/dri hostPath (the hostPath was measured not to work: device-cgroup EPERM) 2026-10-02 05:02:23 +00:00

Merged #29 feat(obs): make oauth2-proxy auth failures visible — the gates emit nothing 2026-10-02 04:55:44 +00:00

Merged #33 fix(ci): catalog/render.py's 106 selftest assertions never ran in the gate 2026-10-02 04:33:02 +00:00

Merged #34 feat(auth): declare API paths per service, so --api-route can ship at all 2026-10-02 04:31:56 +00:00

Merged #36 feat(gpu): Intel GPU device plugin v0.37.0 — nodes advertise gpu.intel.com/i915 2026-10-02 03:53:50 +00:00

Merged #32 feat(plex): hardware transcoding via hardware.gpu: intel-quicksync, plus the runbook for the manual last mile 2026-10-02 02:17:48 +00:00

Merged #27 feat(schema): declare a host hardware capability, hardware.gpu: intel-quicksync 2026-10-02 02:17:23 +00:00

Merged #30 fix(jackett): root-cause the oauth2-proxy session loss; the fix cannot be scoped to one app 2026-10-02 01:47:08 +00:00

Merged #31 feat(node-health): probe the Intel render device, read-only 2026-10-02 01:42:00 +00:00

Merged #28 fix(auth): five oauth2-proxy sidecars shared one cookie, died at 5 minutes, and served no metrics 2026-09-30 21:39:41 +00:00

Merged #26 fix(obs): the deploy notification was inhibited before it could send 2026-09-30 15:18:54 +00:00

Merged #25 feat(obs): notify on Flux deploy start and completion 2026-09-30 04:55:51 +00:00

Merged #17 feat(ci): the pipeline is the approver 2026-09-30 04:42:44 +00:00

Merged #20 feat(conformance): the in-cluster Job can now run a named commit and get its results out 2026-09-30 04:09:29 +00:00

Merged #18 feat(conformance): build the runner image the in-cluster L2/L3 Job could never have run 2026-09-30 03:59:26 +00:00

Merged #19 feat(sec): provision the narrow conformance CI trigger credential -- and refuse to arm a fake green 2026-09-30 03:58:48 +00:00

Merged #22 fix(crafty): the Keycloak gate works — Crafty's own login was the wall 2026-09-30 03:54:37 +00:00

Merged #24 chore(log): the handoff log was serialising every parallel branch 2026-09-30 03:40:19 +00:00

Merged #21 docs(ci): the wiring comment named a secret Gitea cannot accept 2026-09-30 03:22:06 +00:00

Merged #23 docs(crafty): Bedrock on 19132 RESOLVED — a player has joined; the wall was an empty allowlist 2026-09-30 03:19:04 +00:00

Merged #16 fix(sec): the R-SEC-02 admission policy was never applied 2026-09-29 18:28:54 +00:00

Merged #14 docs(decisions-log): end-of-session PM handoff 2026-09-29 18:16:22 +00:00

Merged #13 feat(sec): constrain the conformance CI trigger at admission 2026-09-29 18:16:00 +00:00

Merged #12 fix(ci): CLUSTER_AVAILABLE=true would have faked a green 2026-09-29 18:14:56 +00:00

Merged #15 fix(ci): the settings token could never have been stored 2026-09-29 18:14:30 +00:00

Merged #11 feat(ci): detect Gitea settings drift 2026-09-29 07:59:30 +00:00

Merged #10 fix(gitea): admins could override the gate 2026-09-29 07:43:53 +00:00

Merged #9 docs(ci): close out the hardening; correct a claim that shipped wrong 2026-09-29 07:32:52 +00:00

Merged #7 fix(ci): convert dind to a native sidecar; delete both wait loops 2026-09-29 07:22:50 +00:00

Merged #6 fix(ci): delete the per-branch push triggers instead of adding feat/** 2026-09-29 07:22:20 +00:00

Merged #5 docs(runbooks): the PR flow, not git push origin main 2026-09-29 07:21:28 +00:00

Merged #8 docs: correct CI/platform documentation that was stale or wrong 2026-09-29 07:20:48 +00:00

Merged #4 chore(plex): fresh plex.tv claim token 2026-09-29 06:33:04 +00:00

Merged #1 feat(plex): wire PLEX_CLAIM from a SOPS Secret (placeholder value) 2026-09-29 06:18:14 +00:00

Merged #3 docs(gitea): a skipped job reports SUCCESS, not pending 2026-09-29 06:12:31 +00:00

Merged #2 docs: delivery contract for agents + record that the merge gate does not exist 2026-09-29 05:50:32 +00:00

2 Pull requests proposed by 2 users

Proposed #101 docs: Massive amounts of historical data 2026-10-31 17:26:37 +00:00

Proposed #157 feat(dns): PiHole answers an explicit LAN name list, not a zone wildcard 2026-11-09 01:58:01 +00:00

1 Issue closed from 1 user

Closed #116 PM-Agent also need to look at PR comments 2026-11-07 12:07:34 +00:00

3 Issues created by 2 users

Opened #91 Dependency Dashboard 2026-10-30 08:20:43 +00:00

Opened #97 Massive amounts of historical data 2026-10-31 16:34:33 +00:00

Opened #116 PM-Agent also need to look at PR comments 2026-11-07 04:37:17 +00:00