Skip to content

feat(KLEF-84): Crossplane pause#25

Merged
isaacwallace123 merged 7 commits intomainfrom
feat/KLEF-84-Crossplane_Pause
Apr 6, 2026
Merged

feat(KLEF-84): Crossplane pause#25
isaacwallace123 merged 7 commits intomainfrom
feat/KLEF-84-Crossplane_Pause

Conversation

@NathanRoos
Copy link
Copy Markdown
Contributor

@NathanRoos NathanRoos commented Apr 6, 2026

Pull Request

Summary

Introduces a pause-based server lifecycle using Crossplane composite resources. Instead of destroying infrastructure on stop, the daemon now pauses the XMinecraftServer composite (halting Crossplane reconciliation) and deletes the Agones GameServer. On start, it unpauses the composite and recreates the GameServer, preserving the PVC and all underlying resources between sessions.

Related Issues

Closes #


Changes

What's Included

  • agones.go — added Provision (initial creation of MinecraftServer claim) as a separate operation from Start (unpause composite + recreate GameServer). Stop now patches crossplane.io/paused: "true" on the XMinecraftServer composite before deleting the GameServer
  • container_runtime.go — ContainerRuntime interface now exposes both Provision and Start as distinct operations using WorkloadSpec
  • workload.go / workload_repository.go / runtime_adapter.go — new port definitions introduced alongside this refactor
  • labels.go — ServerLabels renamed to WorkloadLabels for consistency
  • payloads/server.go — ServerOperationPayload reduced to a type alias for ports.WorkloadSpec during transition
  • Removed test command binaries (cmd/testprovision, cmd/teststart, etc.) that were used during manual testing

What's Not Included


Testing

How Was This Tested?

  • Compiled test binaries (teststart, teststop, testdelete, testrestart) were run directly against a live cluster to verify the pause/unpause flow end-to-end
  • Existing worker unit tests updated and passing

Test Coverage

  • Unit tests added or updated
  • Integration tests added or updated
  • Manually tested end-to-end

Breaking Changes

Does this PR introduce breaking changes?

  • Yes
  • No

If yes, describe the impact and any required migration steps:


Security Considerations

  • This PR affects authentication or authorization logic
  • This PR touches secrets, tokens, or environment variables
  • This PR affects infrastructure, deployment pipelines, or network configuration

If any box is checked, describe the security impact and any mitigations applied:


Documentation

Does this PR require documentation updates?

  • Yes
  • No

If yes, check all that apply:

  • README.md
  • ARCHITECTURE.md
  • API reference
  • Architecture diagrams (C4 / DDD)
  • /docs

UI/UX (If Applicable)

  • Includes new components or views
  • Changes styles or theme tokens
  • Responsive behavior verified
  • Requires design approval

Screenshots or recordings:


Pre-Merge Checklist

  • PR title follows semantic format (feat:, fix:, chore:, docs:, refactor:, test:)
  • All CI checks passing
  • Code follows project style guidelines
  • No debug logs or commented-out code left in
  • Dependencies reviewed (no unnecessary additions)
  • No sensitive information included

Reviewer Notes

@NathanRoos NathanRoos self-assigned this Apr 6, 2026
@NathanRoos NathanRoos added feature New feature or enhancement bugfix Bug fix labels Apr 6, 2026
@github-actions github-actions bot added the tests Test changes label Apr 6, 2026
@isaacwallace123 isaacwallace123 merged commit a2215e3 into main Apr 6, 2026
6 checks passed
@isaacwallace123 isaacwallace123 deleted the feat/KLEF-84-Crossplane_Pause branch April 6, 2026 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix Bug fix feature New feature or enhancement tests Test changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants