Skip to content

feat(operator): configure auxiliary resources and management placement - #762

Open
Baylem wants to merge 6 commits into
GameplanePanel:masterfrom
Baylem:fix/audit-workload-resources
Open

Baylem wants to merge 6 commits into
GameplanePanel:masterfrom
Baylem:fix/audit-workload-resources

Conversation

@Baylem

@Baylem Baylem commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Generated auxiliary containers had no consistent resource reservations, and management Deployments lacked a common placement/disruption configuration.

Add configurable requests for agents/config init, sentinels, tunnel relays and restic workers through operator flags and Helm. Explicit resource objects replace defaults, including an empty object to clear them. Add placement fields and optional PDBs for management Deployments, require leader election for multiple operator replicas, and document a management/game worker layout and upgrade behavior.

A scoped pre-upgrade hook clears server-defaulted rollingUpdate fields before applying Recreate to an existing operator with leader election disabled. It also works when CRDs are managed externally. The hook supports maximum-length Helm release names, and re-enabling leader election explicitly restores RollingUpdate.

Closes #724.

Validation:

  • Operator production and ordinary/envtest/E2E test sources compile for Linux amd64.
  • Added resource-precedence/parser regressions, chart render checks and a dedicated management-placement CI job covering scheduler constraints, spreading, eviction budgets and singleton API eviction.
  • Actionlint and offline zizmor passed; independent review completed.
  • Tests and chart/cluster checks were not executed locally, per repository policy.

Defaults are starting resource reservations, with no new CPU/memory limits; deployment measurements should guide tuning. Existing workloads may restart or become Pending as requests are applied. Keep the HostPort placement changes from #761 and the Cilium option from the network-isolation PR when resolving shared CI/controller files. API singleton lifecycle changes remain in #758. Web/Compose image builds on this base need #759.

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

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 57 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: ea7c022f-ae58-4486-a243-7f9e03a76235
📥 Commits

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

📒 Files selected for processing: 34
  • .github/workflows/ci.yaml
  • charts/gameplane/templates/_helpers.tpl
  • charts/gameplane/templates/api.yaml
  • charts/gameplane/templates/audit-syslog-bridge.yaml
  • charts/gameplane/templates/crd-apply-hook.yaml
  • charts/gameplane/templates/gateway.yaml
  • charts/gameplane/templates/mcp-server.yaml
  • charts/gameplane/templates/operator-strategy-migrate.yaml
  • charts/gameplane/templates/operator.yaml
  • charts/gameplane/templates/poddisruptionbudgets.yaml
  • charts/gameplane/templates/telemetry-receiver.yaml
  • charts/gameplane/templates/validate.yaml
  • charts/gameplane/templates/web.yaml
  • charts/gameplane/values-production.example.yaml
  • charts/gameplane/values.yaml
  • charts/tests/check_workloads.py
  • deploy/kind/e2e.sh
  • docs/production-placement.md
  • docs/release-notes.md
  • operator/cmd/main.go
  • operator/internal/controller/auxiliary_resources.go
  • operator/internal/controller/auxiliary_resources_test.go
  • operator/internal/controller/backup_controller.go
  • operator/internal/controller/backup_forget.go
  • operator/internal/controller/gameserver_controller.go
  • operator/internal/controller/gameserver_sentinel.go
  • operator/internal/controller/gameserver_tunnel.go
  • operator/internal/controller/restore_controller.go
  • operator/specs.md
  • test/e2e/buckets.sh
  • test/e2e/management_placement_e2e_test.go
  • test/e2e/specs.md
  • test/e2e/upgrade_e2e_test.go
  • 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>
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: shared netguard, gameaction, gameproto, svcutil and other shared packages area: web React dashboard type: feature New capability or user-facing addition 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: shared netguard, gameaction, gameproto, svcutil and other shared packages area: web React dashboard type: feature New capability or user-facing addition

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(chart): add a production resource and placement profile for management and auxiliary pods

1 participant