-
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
Support opt-out of node port binding #3590
Comments
Hmm. The |
I don't understand your point. Your solution does not solve any of the issues I raised initially. Yes, I guess I can directly connect to the server using the pod's IP. However:
Everything was made to add this feature without hassle, and I find quite interesting to at least give the choice. I hope I have convinced you :) |
As you mentioned in the first comment, though, you don't have to bind a port to the node at all - you can add a container port to the pod spec and leave the ETA: This looks to be what you did in jeremylvln/Shulker#330
I agree that it's not hard to include the pod IP somewhere, but all policies come with a maintenance cost (tests, cross-cutting interactions with other features, etc). In this case you don't even need to know the address, though - you just need the |
To get connectivity inside the cluster, does the port need to be defined on the Pod? (I'm actually not sure on this one) -- I had assumed that all Pods could talk to all pods on any port by default? Or is my assumption here incorrect?
The other option is to store this data on an annotation on the GameServer itself - would that work. |
Is your feature request related to a problem? Please describe.
The players connect to my game servers via a proxy hosted in the same Kubernetes cluster as my game servers. So, internal network routing is sufficient, so the game servers don't need to have a port bound on the node directly. For the sake of strict network topology, I would love to have a way of telling Agones to not bind a not port.
I could avoid specifying the
ports
field of theGameServer
CRD, and add it the thePod
's template directly, however, I have some controllers that are listening toGameServer
changes and that are consuming theaddress
andports
fields for internal use. I would prefer to not change that. The only change needed here is to not put the node's IP in theaddress
field but the pod's one instead.Describe the solution you'd like
One solution would be to add a new
portPolicy
kind to theGameServer
'sports
(name TBD, something likePodOnly
). When Agones will then reconcile the GameServer, it will simply inject these ports to thePod
's spec and to its status sub-resources.It will not be breaking for anyone, as this new
portPolicy
would not be the default. And it can be simple to opt-in or out of this feature.Describe alternatives you've considered
I can keep the current behavior. My nodes are not exposed directly through Internet so it's not really an issue. However, for the same of clear and optimal network topology, I would love to have at least the choice.
Additional context
N/A
The text was updated successfully, but these errors were encountered: