-
Notifications
You must be signed in to change notification settings - Fork 820
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is there any purpose for not supporting the updating of Gameserver? #2371
Comments
Have you seen #1724 where @markmandel said:
Also see the note on https://agones.dev/site/docs/reference/gameserver/:
|
@markmandel may have additional context about why Agones has this design. |
Sorry, I'm very much not understanding the use case here. This seems to me like this is the sort of problem that Allocation solves? If a GameServer shouldn't be shutdown on rolling update, then it should be a in an Allocated state. I'm not quite seeing why you seem to be rebuilding this mechanic, but I may well be missing something here.
I also don't see how updating a single GameServer solves this problem? This sounds like an application layer consideration, not an Agones consideration. Ultimately, there's no need for GameServers to update - run a Fleet with 1 replica, and you have exactly what you need. This is what Fleets and Allocations are for though - managing the lifecycle of GameServers. GameServers are immutable because they represent a single lifecycle of a game server process. This is exactly the same reason why Pods are not updatable in Kubernetes. Use a See: https://stackoverflow.com/questions/58258849/editing-kubernetes-pod-on-the-fly So I'm pretty strongly in the |
Got your point, and I've modify the usage to fleet, thank you for your kindly clarify |
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
When I apply a single gameserver something like the example below, it success create a pod and everything goes well,
But when I apply a new yaml or using
kubectl edit
in cli, trying to modify or update the image version tosimple-game-server:1.0
the spec in gameserver is changed but the pod of the server would not be killed and restart with the new image, when I tried to edit the spec in the pod directly my behavior is forbidden, something like this:Also, when I delete pod, the gameserver would not start a new one.
I've look into the GameServer Specification and notice that:
Describe the solution you'd like
A clear and concise description of what you want to happen.
Now in my company, we can make sure that some game will use the policy Stop the server and maintenance
so there would be no player or the connection to the server when it's updating. another thing is that since my gameserver is connecting to an datatbase so if we use fleet for rolling updating, there may be 2 server connecting to 1 database and it may create inconsistent data
Therefore we would have a pattern that delete one old pod and start a new one with new image using gameserver rather than fleet.
So I have some doubt on the design that why gameserver would not support update?
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered: