-
Notifications
You must be signed in to change notification settings - Fork 816
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
Dynamic Port Allocation on Game Servers #14
Labels
area/user-experience
Pertaining to developers trying to use Agones, e.g. SDK, installation, etc
kind/design
Proposal discussing new features / fixes and how they should be implemented
kind/feature
New features for Agones
Milestone
Comments
markmandel
added
area/user-experience
Pertaining to developers trying to use Agones, e.g. SDK, installation, etc
kind/design
Proposal discussing new features / fixes and how they should be implemented
kind/feature
New features for Agones
labels
Dec 8, 2017
markmandel
added a commit
that referenced
this issue
Dec 18, 2017
markmandel
added a commit
that referenced
this issue
Dec 26, 2017
markmandel
added a commit
that referenced
this issue
Dec 30, 2017
Because we allocate a port to a GameSever, we cannot delete the GameServer until that port is free again. This means that a GameServer must not be hard deleted until the backing Pod is successfully Terminated - and the port is now free again. This implements a finalizer and backing controller code to manage this. This is work that need to occur for #14 (Dynamic Port Allocation) to be completed.
markmandel
added a commit
that referenced
this issue
Dec 30, 2017
markmandel
added a commit
that referenced
this issue
Jan 2, 2018
Implementation of a PortAllocator that ties into the GameServer controller that will allocate a port on GameServer creations (if "dynamic" portPolicy is set) and then also release the port when a GameServer has been deleted. This also includes experimental support for node adding, removal and unscheduling within the cluster. Closes #14
markmandel
added a commit
that referenced
this issue
Jan 2, 2018
Implementation of a PortAllocator that ties into the GameServer controller that will allocate a port on GameServer creations (if "dynamic" portPolicy is set) and then also release the port when a GameServer has been deleted. This also includes experimental support for node adding, removal and unscheduling within the cluster. Closes #14
markmandel
added a commit
that referenced
this issue
Jan 3, 2018
Implementation of a PortAllocator that ties into the GameServer controller that will allocate a port on GameServer creations (if "dynamic" portPolicy is set) and then also release the port when a GameServer has been deleted. This also includes experimental support for node adding, removal and unscheduling within the cluster. Closes #14
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area/user-experience
Pertaining to developers trying to use Agones, e.g. SDK, installation, etc
kind/design
Proposal discussing new features / fixes and how they should be implemented
kind/feature
New features for Agones
When
portPolicy
is set todynamic
then the controller should select thehostPort
for the GameServer container when the GameServer is created.My current theory is to have a
PortSelector
as part ofgameservers/controller
(so they can share cache/informers) that:[]PortSelections
, wherePortSelection
is amap[int32]bool
where the first value is the port number and bool is whether it is taken or not, with one entry for each node. We don't actually care about tracking the nodes, as the K8s scheduler will reroute pods that already have a hostPort taken.true
and then set it totrue
(With appropriate locking). Question will be where to track the Pod deletion.Extras:
dynamic
portPolicy
The text was updated successfully, but these errors were encountered: