docs(obs): record that the gate-sidecar scrape works — four places still said it did not #54
Closed
gitea-admin
wants to merge 0 commits from
docs/oauth2-sidecar-scrape-verified into main
pull from: docs/oauth2-sidecar-scrape-verified
merge into: Home-Network:main
Home-Network:main
Home-Network:fix/wg-client-mtu-docs
Home-Network:fix/wg-home-peer-pihole-sources
Home-Network:feat/pihole-explicit-lan-names
Home-Network:feat/dns-via-cloudflare-tunnel
Home-Network:feature/cloudflare-tunnel-config
Home-Network:chore/rotate-cloudflared-tunnel
Home-Network:fix/cloudflared-creds-permission
Home-Network:feat/cloudflare-tunnel
Home-Network:feat/parallel-l0-checks
Home-Network:feat/gate-toolbox-container
Home-Network:fix/keycloak-servicemonitor-owner
Home-Network:feat/runner-capacity-2
Home-Network:chore/renovate-config-cleanup
Home-Network:fix/keycloak-operator-crds
Home-Network:feat/devcontainer-velero-cli
Home-Network:feat/gitea-28
Home-Network:feat/l0-externaldns-annotation-prefix
Home-Network:fix/public-dns-wan-a-record
Home-Network:feat/pm-agent-pr-mentions
Home-Network:docs/source-comment-audit
Home-Network:chore/pm-agent-digest-99
Home-Network:fix/pm-agent-triage-exit
Home-Network:chore/pm-agent-go-live
Home-Network:chore/pm-agent-runner-digest
Home-Network:feature/pm-agent-credentials
Home-Network:feat/pm-agent-registry-pull-secret
Home-Network:feat/pin-pihole-jackett-plex
Home-Network:fix/renovate-hold-auth-and-self
Home-Network:feat/renovate-track-keycloak-operator
Home-Network:fix/renovate-run-hygiene
Home-Network:fix/renovate-auth
Home-Network:fix/renovate-first-run
Home-Network:feat/keycloak-passkey-reconcile
Home-Network:fix/gitea-admit-buildkit
Home-Network:feat/image-pipeline
Home-Network:fix/renovate-config-filename
Home-Network:fix/vpn-ingress-l2-lease-collision
Home-Network:fix/renovate-cron-window
Home-Network:fix/renovate-invalid-config
Home-Network:fix/pihole-local-ttl
Home-Network:fix/unattended-upgrades-debian-sentinel
Home-Network:fix/ha-check-catastrophic-regex
Home-Network:feat/automated-upgrades
Home-Network:fix/coredns-ha
Home-Network:feat/keycloak-passkeys
Home-Network:fix/oauth2-proxy-oidc-startup-race
Home-Network:feat/graceful-cluster-shutdown
Home-Network:plex/volume-expamsion
Home-Network:fix/bulk-nfs-truenas
Home-Network:fix/peers-configmap-content-hash
Home-Network:vpn/add-keith-phone
Home-Network:fix/new-peer-ignores-template-comments
Home-Network:fix/vpn-ingress-ip-forward
Home-Network:feature/add-private-key-for-wireguard
Home-Network:fix/vpn-server-key-in-sops
Home-Network:docs/pm-agent-registry-pull-prereq
Home-Network:fix/vpn-runbook-ansible-command
Home-Network:feat/pm-agent-issue-to-pr
Home-Network:docs/agents-work-in-their-own-workspace
Home-Network:feat/vpn-remote-access-wireguard
Home-Network:feat/cilium-roll-out-on-config-change
Home-Network:fix/plex-resolver-independent-advertise
Home-Network:fix/plex-unblock-app-tier
Home-Network:feat/hubble-flow-export-plex
Home-Network:fix/oauth2-sidecar-metrics-scrape-netpol
Home-Network:feat/plex-vip-hostname-and-lan-networks
Home-Network:fix/plex-advertise-plexdirect
Home-Network:docs/pihole-ha-verified
Home-Network:feat/pihole-multi-replica
Home-Network:feat/pihole-declare-state
Home-Network:feat/plex-remote-access-l4
Home-Network:fix/cilium-cgroup-hostroot
Home-Network:fix/node-keycloak-hosts-pin
Home-Network:feat/public-dns-wan-target
Home-Network:fix/plex-quicksync-verification
Home-Network:sync-39-onto-main
Home-Network:fix/admin-approval-override
Home-Network:feat/quicksync-via-device-plugin
Home-Network:bugfix/arr-to-plex
Home-Network:feat/oauth2-proxy-api-route-per-app
Home-Network:feat/intel-gpu-device-plugin
Home-Network:feat/oauth2-proxy-auth-failure-visible
Home-Network:fix/render-selftest-runs-in-gate
Home-Network:feat/plex-quicksync
Home-Network:feat/sd-hardware-capability
Home-Network:fix/jackett-oauth2-proxy-session
Home-Network:feat/node-health-render-device
Home-Network:fix/oauth2-proxy-cookie-collision-fleet
Home-Network:fix/flux-deploy-notification-inhibited
Home-Network:feat/flux-deploy-notifications
Home-Network:feat/conformance-job-template
Home-Network:feat/conformance-trigger-kubeconfig
Home-Network:feat/conformance-runner-image
Home-Network:fix/crafty-oauth2-proxy-signin
Home-Network:chore/decisions-log-conflict-free
Home-Network:fix/crafty-bedrock-19132
Home-Network:fix/gitea-settings-comment-names-impossible-secret
Home-Network:feat/ci-is-the-approver
Home-Network:fix/kyverno-policy-was-never-applied
Home-Network:docs/handoff-2026-09-29
Home-Network:fix/secret-name-and-require-gitea-settings
Home-Network:feat/conformance-trigger-admission-boundary
Home-Network:fix/cluster-available-would-fake-a-green
Home-Network:feat/gitea-settings-drift-check
Home-Network:fix/gitea-admins-could-override-the-gate
Home-Network:docs/close-out-ci-hardening
Home-Network:docs/ci-reality-vs-phase-0
Home-Network:docs/runbooks-pr-flow
Home-Network:fix/dind-native-sidecar
Home-Network:fix/gate-push-trigger-matches-feat-prefix
Home-Network:feat/plex-claim-token-013124
Home-Network:fix/conformance-context-is-fail-open
Home-Network:docs/ci-delivery-flow-for-agents
Home-Network:feat/plex-claim-sops-secret
Home-Network:feat/prod-hardening
Home-Network:prod/deliver-fixes
Home-Network:docs/memattr-6-12-backport
Home-Network:migration/dns-apex-inversion
Home-Network:feat/prod-memattr-and-nodes
Home-Network:docs/node2-memory-refine
Home-Network:feat/prod-node-2
Home-Network:feat/r-state-03-proven
Home-Network:feat/ledger-section-parsing
Home-Network:feat/conformance-run-ledger
Home-Network:chore/cilium-split-merge2
Home-Network:feat/cilium-own-kustomization
Home-Network:docs/poststart-incident
Home-Network:fix/poststart-exit-status
Home-Network:fix/strict-postbuild-substitutions
Home-Network:docs/phase-7-open-prod-node-1
Home-Network:rescued/fix/act-runner-dind-readiness
Home-Network:rescued/fix/node-dns-resilient-upstream
Home-Network:docs/reconcile-with-reality
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Documentation only. No manifest, no rendered output, no behaviour change.
PR #49 fixed the blocked gate-sidecar scrape and it is verified working on prod 2026-10-05 — but four places in the tree still asserted the pre-fix state as current, in the present tense, in the files a reader consults first.
The verification the docs now quote
Flux applied
21c88b0through the real path (apps-wave-0lastAppliedRevision21:37:01Z,apps-wave-121:37:46Z, in dependency order), and all five<app>-allow-monitoring-scrapeCNPs exist withports=['44180'],from=[['monitoring']].downuplastErrorcontext deadline exceeded''lastScrapeDurationscrapeTimeoutup0× 61× 6oauth2_proxy_*is in the TSDB for these namespaces for the first time: 5 metric names, 148 series;sum by (namespace) (oauth2_proxy_requests_total)= qbittorrent 35072, radarr 23560, sonarr 1284. All 5TargetDownand 5 of 6OAuth2ProxyGateUnobservedresolved — ~22 emails/day down to 2/day.What was stale
platform/oauth2-proxy/podmonitor.yaml— "READ THIS BEFORE BELIEVING THE TARGETS ARE UP: THE SCRAPE IS CURRENTLY DENIED BY NETWORKPOLICY" and "SO THE TARGETS BELOW WILL READup == 0UNTIL AN INGRESS ALLOWANCE LANDS". The first actively instructs the reader to disbelieve a correctup == 1. Now aSTATUSblock with the post-fix numbers; the diagnosis is kept below it under an explicitHISTORYheading, because it is why the fix is shaped the way it is. Added the drop fingerprint for recognising a regression:lastScrapeDurationpinned at exactly thescrapeTimeout, versus 1–6 ms when healthy.catalog/render.py:159and:1365— "THIS IS THE PREREQUISITE ONLY, AND IT IS NOT YET SCRAPED." Rewritten to enumerate the three pieces a working scrape needs and which PR landed each.platform/oauth2-proxy/README.md— its subsections are dated, so they are honest records rather than lies, but a reader hits the stale body long before any correction. A> SUPERSEDEDpointer now sits under the heading, with an### Update 2026-10-05section at the end.The "a flag alone is not enough" warning is kept deliberately. That part is still true, and "flag without ingress allowance" is exactly what produced the 63.7h outage. Only the "not yet scraped" claim was false.
Two substantive errors fixed, not just tense
podmonitor.yamldeferred the fix to "the catalog/renderer, which is in flight on another branch" — no such branch existed. It now namesr_monitoring_ingress_policy, plus a newCRAFTYsection explaining the one namespace this file cannot help.Gate
rc 3 — UNDETERMINED, not 0. Every stage that ran is green; the sole not-run stage is
gitea-settings(noGITEA_SETTINGS_TOKENlocally).render-goldenandl1pass with no golden regeneration, which is the confirmation that therender.pyedits are comments-only and left rendered output byte-identical.Consequently this branch touches no sensitive path —
platform/oauth2-proxy/**,catalog/**anddecisions/**are none of them inapproval-policy.json— so unlike PR #49 it should merge on a green gate alone. That is why the two were kept apart.Note on the 2026-10-04 handoff entry
Its What I did NOT verify section led with "that the scrape now succeeds". Rather than rewrite a merged record, the original text is left exactly as written and a dated forward pointer was added above it.
decisions/2026-10-05-oauth2-sidecar-scrape-verified.mdcarries the measurements.Not verified
oauth2_proxy_requests_totalis still absent for jackett and pihole. I assert this is because the counter is not created until the gate serves its first request — consistent with the other three having traffic, but I did not force a request through and watch the series appear.craftyremains unobserved; I confirmed it has no--metrics-addressand did not attempt the fix.runbooks/oauth2-proxy-auth-failures.mdis left alone — its by-hand log procedure still works, but whether it should now be rewritten against the new metrics is unexamined.🤖 Generated with Claude Code
Pull request closed