Skip to content

fix(wake): bound wake requests and preserve HostPort handoffs - #761

Open
Baylem wants to merge 6 commits into
GameplanePanel:masterfrom
Baylem:fix/audit-wake-reliability
Open

Baylem wants to merge 6 commits into
GameplanePanel:masterfrom
Baylem:fix/audit-wake-reliability

Conversation

@Baylem

@Baylem Baylem commented Oct 21, 2026

Copy link
Copy Markdown
Member

Wake requests could block beyond the join budget, report success while another request was still failing, and stall UDP receives. HostPort sleep/wake could also create the replacement listener before the previous pod released its port or move it away from the advertised node.

Bound the shared wake PATCH and total join attempt, propagate its actual result to concurrent callers, and coalesce UDP wake work behind a bounded queue. Persist the HostPort endpoint node and UID, wait for actual pod drain in both directions, and pin the game and sentinel through scheduler affinity. Missing or unschedulable endpoint nodes report an explicit condition.

Closes #729. Closes #730.

Validation:

  • Linux operator/sentinel production builds and operator envtest, sentinel, and E2E test-source compilation passed. Tests were not executed locally, per repository policy.
  • Added real TCP/UDP regressions and a dedicated two-node CI bucket for repeated handoffs, occupied ports, terminating sentinels, cordoned nodes, and node deletion.
  • Actionlint and offline zizmor passed. Independent review completed.

Resource requests remain in the separate #724 change. This PR shares reconciliation code with #760; integration must retain its operation fence and these HostPort handoff gates. Existing web/Compose image builds on this base also need the unrelated template-picker fix in #759.

Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 55 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: GameplanePanel/Gameplane/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b3b134b7-9d1e-48d2-99f2-8deb3576c788
📥 Commits

Reviewing files that changed from the base of the PR and between df1e371 and b31a26b.

📒 Files selected for processing: 22
  • .github/workflows/ci.yaml
  • charts/gameplane/templates/operator.yaml
  • deploy/kind/e2e.sh
  • docs/superpowers/specs/2026-07-24-wake-on-connect-design.md
  • i18n/locales/en/app.json
  • operator/config/rbac/role.yaml
  • operator/hack/condition-ids/main.go
  • operator/internal/controller/gameserver_controller.go
  • operator/internal/controller/gameserver_hostport.go
  • operator/internal/controller/gameserver_hostport_test.go
  • operator/internal/controller/gameserver_sentinel.go
  • operator/internal/controller/gameserver_sentinel_envtest_test.go
  • operator/internal/controller/gameserver_status.go
  • operator/specs.md
  • sentinel/main.go
  • sentinel/specs.md
  • sentinel/udp_wake.go
  • sentinel/wake_budget_test.go
  • test/e2e/buckets.sh
  • test/e2e/hostport_wake_e2e_test.go
  • test/e2e/specs.md
  • web/src/routes/CreateServer.tsx
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
@github-actions github-actions Bot added area: chart Helm chart and deployment area: e2e kind-based end-to-end suite area: operator controller-runtime operator and CRDs area: optional-components sentinel, capture-sidecar, mcp-server, tunnel, audit-syslog-bridge, telemetry-receiver area: shared netguard, gameaction, gameproto, svcutil and other shared packages area: web React dashboard type: fix Bug fix labels Oct 21, 2026
Signed-off-by: Baylem <zelathis@gmail.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: chart Helm chart and deployment area: e2e kind-based end-to-end suite area: operator controller-runtime operator and CRDs area: optional-components sentinel, capture-sidecar, mcp-server, tunnel, audit-syslog-bridge, telemetry-receiver area: shared netguard, gameaction, gameproto, svcutil and other shared packages area: web React dashboard type: fix Bug fix

Projects

None yet

1 participant