Skip to content

feat: agones gameserver watcher#7

Merged
hbrombeer merged 1 commit intomainfrom
feat/gameserver-watcher
Apr 25, 2026
Merged

feat: agones gameserver watcher#7
hbrombeer merged 1 commit intomainfrom
feat/gameserver-watcher

Conversation

@hbrombeer
Copy link
Copy Markdown
Member

Summary

  • GameServerWatcher wraps fabric8's SharedIndexInformer and translates events through GameServerExtractor before dispatch
  • PLATFORM mode: namespace-scoped watch
  • STAGING mode: cluster-wide watch with client-side preview-* filter
  • Resilience: malformed event handler errors are logged and dropped; the informer keeps running

Test plan

  • 7 integration tests via fabric8 KubernetesMockServer (@EnableKubernetesMockClient(crud=true)) — add/update/delete flow, mode-based filtering, malformed event skip, multi-fleet, idempotent stop

Plan: docs/plans/2026-04-25-plugin-platform-router.md (T7)

GameServerWatcher wires fabric8's SharedIndexInformer for the Agones
GameServer CRD, translates events through GameServerExtractor, and
dispatches to onUpsert / onDelete callbacks supplied at construction.

Mode handling:
- PLATFORM: scoped to one namespace (the configured selector)
- STAGING: cluster-wide watch with client-side filter on the
  `preview-*` namespace prefix (fabric8 has no server-side glob)

Resilience:
- One bad event is logged WARN and skipped; the informer keeps running
- start() guards against double-start; stop() is idempotent
- Built-in informer reconnect handles k8s API blips

7 integration tests via fabric8's KubernetesMockServer
(@EnableKubernetesMockClient(crud = true)) cover add/update/delete event
flow, mode-based namespace filtering, malformed-event skip, multi-fleet
visibility, and stop-idempotency. Awaitility used for async assertions
(5s ceiling).

Adds testImplementation: fabric8 kubernetes-server-mock + mockwebserver,
awaitility 4.2.2; testRuntimeOnly slf4j-simple so log statements during
tests don't blow up.
@hbrombeer hbrombeer merged commit 7d0bf45 into main Apr 25, 2026
@hbrombeer hbrombeer deleted the feat/gameserver-watcher branch April 25, 2026 19:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant