Canary Testing a new Fleet
GameServer
to ensure it works correctly, before rolling it out to all your players.To canary release/test a new Fleet
,
we can run a small, fixed size Fleet
of the new version of our GameServer, while also running the current stable
production version.
Allocations
can then prefer
to come from the canary Fleet
, but if all GameServers
are already allocated from the
canary Fleet
, players will be allocated to the current stable Fleets.
Over time, if the monitoring of those playing on the canary Fleet
is working as expected, the size of the canary
Fleet
can be grown until you feel confident in its stability.
Once confidence has been achieved, the configuration for stable Fleet
can be updated to match the canary (usually
triggering a rolling update). The
canary Fleet
can then be deleted or updated to a new testing version of the game server process.
Sample GameServerAllocation
To ensure we don’t have to change the Allocation system every time we have a canary Fleet
, in this example, we will
state that in our system, the label canary: "true"
will be added to any canary Fleet
in the cluster.
apiVersion: allocation.agones.dev/v1
kind: GameServerAllocation
spec:
selectors:
- matchLabels:
canary: "true"
- matchLabels:
agones.dev/fleet: stable
The above Allocation
will then preferentially choose the Fleet
that has GameServers
with the label and key
value ofcanary:"true"
, if it exists, and has remaining Ready GameServers
, and if not, will apply the
Allocation
to the Fleet
named “stable”.
Next Steps
- Read about different
Fleet
update options and strategies that are available. - Have a look at all the options available on a
GameServerAllocation
. - Review the
Fleet
reference.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.
Last modified November 5, 2024: Update Supported Kubernetes to 1.29, 1.30, 1.31 (#4024) (a0d1614)