Review: Bug: dead westsidekingsandqueens-funnel ingress
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Type — Bug
- [x] Lineage — Standalone, discovered during westside-app deployment investigation
- [x] Repo — forgejo_admin/pal-e-services
- [x] What Broke — Clear description with kubectl evidence
- [x] Repro Steps — 3 concrete steps with expected observation
- [x] Expected Behavior — Clear single-funnel expectation
- [x] Environment — Cluster, namespace, SHA, alerts noted
- [x] Acceptance Criteria — 3 criteria, all verifiable
- [x] Related — project and related issue linked
All required bug template sections are present and well-written.
Traceability
- [x] story:superuser-deploy label — board item has this label
- [x] arch:tailscale-funnel label — board item has this label
- [x] Forgejo issue — forgejo_admin/pal-e-services#35, open
Full traceability triangle satisfied.
File Targets
- [x]
services.tf— verified: lines 173-200 definekubernetes_ingress_v1.service_funnelusingeach.keyas backend service name (line 189) andeach.value.port(line 191) - [x]
k3s.tfvars— verified: lines 129-136 definewestsidekingsandqueenswithport = 80andfunnel = true - [x] kubectl state — verified:
westsidekingsandqueens-funnelhas no ADDRESS (dead), whilewestside-app-funnelhas the correct address - [x] No service named
westsidekingsandqueensexists — onlywestside-app(port 3000) andwestside-dev(port 80) - [ ] Issue does not specify exact file targets for the fix — ISSUE: Should explicitly state the fix is
funnel = falseink3s.tfvarsline 133
Repo Placement
Correct. The issue is filed on
forgejo_admin/pal-e-services and the fix is in pal-e-services/terraform/k3s.tfvars (set funnel = false for westsidekingsandqueens). The kustomize-managed ingress in pal-e-deployments is not touched — it is the working one that should remain.Dependencies
- No blocking dependencies found.
- Board items currently in_progress: 7 items, none related to this funnel work.
- No dependency on the Terraform state splitting (#197) — this change is a simple tfvars edit.
- Related board item #338 (Forgejo #153, type:infra, arch:tailscale-funnel) is already done — was the original funnel infrastructure work that likely introduced this dual-funnel pattern.
Acceptance Criteria
- [x] "westsidekingsandqueens-funnel ingress removed" — verifiable via
kubectl get ingress -n westsidekingsandqueens - [x] "westside-app-funnel continues to serve traffic" — verifiable via
curl https://westsidekingsandqueens.tail5b443a.ts.net - [x] "No regression in site availability" — verifiable via blackbox probe / manual check
- [ ] Missing criterion: after
tofu apply, confirm no orphaned Tailscale proxy pod for the dead funnel
Criteria are testable by an agent. One additional criterion recommended.
Blast Radius
- No other services have this exact conflict. Only
westsidekingsandqueenshas bothfunnel = truein tfvars AND a kustomize-managedingress.yamlin pal-e-deployments. - Discovered scope: There is a stale
westside-app-funnelingress in thedefaultnamespace (hostnamewestsidekingsandqueens-1) that is NOT covered by this ticket. This is likely from a manualkubectl applyand should be a separate cleanup issue. - The
services.tffunnel resource design assumes backend service name = service key. This assumption breaks when kustomize renames services. This is a systemic design consideration but not a bug in other services currently — onlywestsidekingsandqueensrenames its service.
Recommendation
Two items needed before READY:
- Add explicit file target: The issue should state the fix is setting
funnel = falseink3s.tfvarsline 133 for thewestsidekingsandqueensservice entry. This makes the fix unambiguous for the implementing agent. - Add acceptance criterion: "No orphaned Tailscale proxy pod remaining for the removed funnel ingress."
- Discovered scope (separate ticket): Stale
westside-app-funnelingress indefaultnamespace should be tracked as a new cleanup issue.