All five defects from #262, verified against the live cluster before committing:
e2e-helper → monitoring namespace — its only job is curling Loki/Prometheus/Alertmanager, and monitoring's default-deny-ingress admits intra-namespace traffic; running it in default timed out all three obs checks. Pod spec is restricted-PSA-clean (runAsNonRoot, drop ALL).
Node count 4→3 — verified: k8s-1/2/3 Ready, no 4th node.
CNPG primaries by label — new exported cnpg_primary() helper resolves cnpg.io/cluster=<c>,cnpg.io/instanceRole=primary; verified live it returns pprl-pg-3 (pprl-pg-1 is gone) and ak-pg-1. All three psql checks converted.
no-failing-pods excludes woodpecker-ci — the check raced its own runner pod.
purge_released_pvs without jq — jsonpath+awk; the jsonpath filter verified live.
Finding while verifying #5: there are currently 305 Released PVs pinning Ceph data — 38 default/e2e-pvc + 73 velero-e2e/* (both will be swept by the repaired purge on the first post-merge e2e run, since the patterns match the old leaks too), 191 woodpecker-ci/wp-* (CI runner workspace PVCs — a separate leak class nothing purges; needs its own decision: Delete-reclaim StorageClass for CI volumes or a cleanup job), and 1 each paperless/openbao (likely intentional Retain safety from instance replacements — untouched).
Suggest verifying with a manual run after merge: woodpecker pipeline create --branch master --var PIPELINE=e2e gitea_admin/homelab.
All five defects from #262, verified against the live cluster before committing:
1. **e2e-helper → monitoring namespace** — its only job is curling Loki/Prometheus/Alertmanager, and monitoring's default-deny-ingress admits intra-namespace traffic; running it in `default` timed out all three obs checks. Pod spec is restricted-PSA-clean (runAsNonRoot, drop ALL).
2. **Node count 4→3** — verified: k8s-1/2/3 Ready, no 4th node.
3. **CNPG primaries by label** — new exported `cnpg_primary()` helper resolves `cnpg.io/cluster=<c>,cnpg.io/instanceRole=primary`; verified live it returns `pprl-pg-3` (pprl-pg-1 is gone) and `ak-pg-1`. All three psql checks converted.
4. **no-failing-pods excludes woodpecker-ci** — the check raced its own runner pod.
5. **purge_released_pvs without jq** — jsonpath+awk; the jsonpath filter verified live.
**Finding while verifying #5: there are currently 305 Released PVs** pinning Ceph data — 38 `default/e2e-pvc` + 73 `velero-e2e/*` (both will be swept by the repaired purge on the first post-merge e2e run, since the patterns match the old leaks too), **191 `woodpecker-ci/wp-*`** (CI runner workspace PVCs — a separate leak class nothing purges; needs its own decision: Delete-reclaim StorageClass for CI volumes or a cleanup job), and 1 each paperless/openbao (likely intentional Retain safety from instance replacements — untouched).
Suggest verifying with a manual run after merge: `woodpecker pipeline create --branch master --var PIPELINE=e2e gitea_admin/homelab`.
Closes #262
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01NV7bZzZLeoFUEdAeCSLEei
- obs checks: run e2e-helper in the monitoring namespace — default is
not on monitoring's default-deny-ingress allow-list, so every
loki/prometheus/alertmanager check timed out (curl exit 28)
- node count: 4 -> 3 (k8s-1/2/3; there is no 4th node)
- CNPG exec targets: resolve the primary via
cnpg.io/cluster + cnpg.io/instanceRole=primary labels instead of
hardcoding pod names (pprl-pg-1 no longer exists; ak-pg-1 was one
failover away from the same break)
- no-failing-pods: exclude the woodpecker-ci namespace — the check
raced the e2e run's own runner pod (ContainerCreating, 4s old)
- purge_released_pvs: drop jq (not in ci-k8s image — the function has
been a silent no-op, 305 Released PVs currently pinned); jsonpath +
awk instead
Closes#262
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NV7bZzZLeoFUEdAeCSLEei
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.
All five defects from #262, verified against the live cluster before committing:
defaulttimed out all three obs checks. Pod spec is restricted-PSA-clean (runAsNonRoot, drop ALL).cnpg_primary()helper resolvescnpg.io/cluster=<c>,cnpg.io/instanceRole=primary; verified live it returnspprl-pg-3(pprl-pg-1 is gone) andak-pg-1. All three psql checks converted.Finding while verifying #5: there are currently 305 Released PVs pinning Ceph data — 38
default/e2e-pvc+ 73velero-e2e/*(both will be swept by the repaired purge on the first post-merge e2e run, since the patterns match the old leaks too), 191woodpecker-ci/wp-*(CI runner workspace PVCs — a separate leak class nothing purges; needs its own decision: Delete-reclaim StorageClass for CI volumes or a cleanup job), and 1 each paperless/openbao (likely intentional Retain safety from instance replacements — untouched).Suggest verifying with a manual run after merge:
woodpecker pipeline create --branch master --var PIPELINE=e2e gitea_admin/homelab.Closes #262
🤖 Generated with Claude Code
https://claude.ai/code/session_01NV7bZzZLeoFUEdAeCSLEei