feat(grounds-gamemode): give matchmade servers a broker instead of a dialled port - #151
Open
hbrombeer wants to merge 1 commit into
Open
feat(grounds-gamemode): give matchmade servers a broker instead of a dialled port#151hbrombeer wants to merge 1 commit into
hbrombeer wants to merge 1 commit into
Conversation
…dialled port A matchmade server now waits for its matches on `match.host.<gameServerName>.start` rather than listening on a port the matchmaker dials. Agones names the pod after the GameServer, so the server derives that subject from its own HOSTNAME and service-match no longer has to know where the pod is — which mattered because these fleets run portPolicy: None and therefore have neither a Service nor a DNS name, leaving the matchmaker to read the PodIP off the GameServer status. `grpcPort` and the matchhost container port stay for one release. A runtime image that has not been rebuilt has no NATS responder, and service-match falls back to the old route rather than letting the match form and then silently never start. Both come out once every matchmade fleet answers on NATS. Only rendered when matchmaking is enabled, so an ordinary fleet is untouched.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A matchmade server now waits for its matches on
match.host.<gameServerName>.startrather than listening on a port the matchmaker dials. Agones names the pod after the GameServer, so the server derives that subject from its ownHOSTNAME— which matters because these fleets runportPolicy: Noneand therefore have neither a Service nor a DNS name, leaving the matchmaker to read the PodIP off the GameServer status.grpcPortand the matchhost container port stay for one release: a runtime image that has not been rebuilt has no NATS responder, and service-match falls back rather than letting the match form and then silently never start.Only rendered when matchmaking is enabled, so an ordinary fleet is untouched. Verified with
helm template.Landing order
This is one cutover across seven repos. The order is not cosmetic:
feat/rest-api— serves REST alongside gRPC and pushes matches over NATS with a gRPC fallback. Safe on its own; nothing else may land before it is deployed.feat/gamemode-nats— gives matchmade fleetsNATS_URL. Inert until a runtime that reads it ships.feat/match-nats— gives service-matchNATS_URL. Land together with the image bump to the release cut from (1).feat/matchhost-nats— removes the gRPC MatchHost server. Needs a release cut afterwards.feat/rest-client— REST clients; both also need to repin the runtime released in (4) to actually receive matches over NATS.feat/rest-client— REST client.Only after every matchmade fleet answers on NATS: set
GAMESERVER_GRPC_FALLBACK=false, then deleteMatchGrpcService,quarkus-grpcand theMatchHostservice block from the contract.