Review: #111 Fix Keycloak probe (1 alert)
Verdict: READY
Template Completeness
- [x] Lineage
- [x] Repo
- [x] User Story
- [x] Context
- [x] File Targets
- [x] Acceptance Criteria
- [x] Test Expectations
- [x] Constraints
- [x] Checklist
- [x] Related
All required sections from
template-issue are present and well-populated.File Targets
- [x]
terraform/network-policies.tfline ~130 — verified: Keycloak NetworkPolicy (lines 119-136) only allows ingress fromtailscalenamespace. Every other service (forgejo, harbor, argocd, woodpecker, postgres, minio) includes amonitoringnamespace rule. The fix is a one-line addition matching the existing pattern. - [x]
terraform/main.tfline ~439 — verified: Keycloak probe at line 440 useshttps://keycloak.tail5b443a.ts.net(external funnel URL). All other platform-tier services (forgejo, woodpecker, grafana, alertmanager, harbor, argocd, minio) use internalsvc.cluster.localURLs. The proposed replacementhttp://keycloak.keycloak.svc.cluster.local:80/realms/mastermatches the Kubernetes service definition at line 1981 (port 80, target_port 8080).
Repo Placement
OK. Both file targets are in
forgejo_admin/pal-e-platform which matches the Forgejo issue repo. Single-repo fix, no cross-repo coordination needed.Dependencies
- Board item #188 (Issue #109: Platform cleanup umbrella) is
in_progress— this issue is a child of that umbrella. No blocking dependency; coordination only. - Board item #192 (Issue #113: Terraform state drift) is in
todo— the ticket's Constraints section mentions bundling with state drift apply. This is an execution optimization, not a hard dependency. - No other board items are blocked by or block this ticket.
Acceptance Criteria
All three criteria are agent-verifiable:
probe_success{service="keycloak"} == 1— verifiable via PromQL query post-apply- Keycloak NetworkPolicy includes monitoring namespace — verifiable via
tofu plandiff - EndpointDown alert clears — verifiable via Alertmanager API or Grafana dashboard
Test Expectations are concrete:
tofu plan -lock=false shows two changes, curl from blackbox pod returns 200, Prometheus target UP. All executable.Blast Radius
- No similar pattern bugs found. Keycloak was the only platform service using an external funnel URL for its blackbox probe. All others already use internal cluster URLs.
- No other NetworkPolicies missing monitoring. All 7 other NetworkPolicy resources in
network-policies.tfalready include the monitoring namespace rule. Keycloak was the sole outlier. - Downstream: no consumers depend on the probe URL value — it only affects Prometheus blackbox exporter scraping.
Recommendation
No action needed. Scope is precise, file targets verified, two-line change with clear acceptance criteria. Ready for agent dispatch.