Skip to content
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

Wait on free ports on GKE Autopilot #2901

Merged
merged 2 commits into from
Jan 19, 2023

Conversation

zmerlynn
Copy link
Collaborator

On Autopilot, since port assignments are random, port conflicts happen. Just accept it and wait on the autoscaler to kick in - the problem will go away.

We do this by introducing a WaitOnFreePorts() cloud product hook to indicate whether we should pay attention to the case where the pod is unschedulable due to free ports.

It is very likely this condition occurs organically in any autoscaling scenario, but the fleet controller also hides the condition by rapidly deleting the Unhealthy GameServer.

Along the way, fix a typo I introduced in the e2e framework.

@zmerlynn zmerlynn added the feature-freeze-do-not-merge Only eligible to be merged once we are out of feature freeze (next full release) label Jan 12, 2023
@zmerlynn zmerlynn removed the request for review from EricFortin January 12, 2023 20:57
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 8024765f-e26c-4424-aa00-579d708bcfaf

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2901/head:pr_2901 && git checkout pr_2901
  • helm install agones ./install/helm/agones --namespace agones-system --agones.image.release=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.29.0-e191d0c-amd64

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 609bb904-d13b-4587-a235-2b6bc4070d3c

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2901/head:pr_2901 && git checkout pr_2901
  • helm install agones ./install/helm/agones --namespace agones-system --agones.image.release=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.29.0-1993699-amd64

pkg/gameservers/health.go Outdated Show resolved Hide resolved
@google-oss-prow google-oss-prow bot added size/M and removed size/S labels Jan 13, 2023
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 0741c7f1-1ce6-472f-a41a-f8a852d0e720

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2901/head:pr_2901 && git checkout pr_2901
  • helm install agones ./install/helm/agones --namespace agones-system --agones.image.release=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.29.0-653b45e-amd64

@google-oss-prow google-oss-prow bot added the lgtm label Jan 13, 2023
@Kalaiselvi84 Kalaiselvi84 removed the feature-freeze-do-not-merge Only eligible to be merged once we are out of feature freeze (next full release) label Jan 18, 2023
@google-oss-prow google-oss-prow bot removed the lgtm label Jan 19, 2023
@google-oss-prow google-oss-prow bot added the lgtm label Jan 19, 2023
@google-oss-prow
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: gongmax, markmandel, zmerlynn

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: ed5b5423-d79e-4c0f-a8ee-30040bf93bd7

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

On Autopilot, since port assignments are random, port conflicts
happen. Just accept it and wait on the autoscaler to kick in - the
problem will go away.

We do this by introducing a WaitOnFreePorts() cloud product hook to
indicate whether we should pay attention to the case where the pod is
unschedulable due to free ports.

It is very likely this condition occurs organically in any autoscaling
scenario, but the fleet controller also hides the condition by rapidly
deleting the Unhealthy GameServer.

Along the way:
* fix a typo in the e2e framework that I introduced
* change TestGameServerRestartBeforeReadyCrash to wait for the
framework default - moving to `Scheduled` can be long (e.g. this exact
PR)
@google-oss-prow google-oss-prow bot removed the lgtm label Jan 19, 2023
@google-oss-prow
Copy link

New changes are detected. LGTM label has been removed.

@zmerlynn zmerlynn enabled auto-merge (squash) January 19, 2023 17:26
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 82cbea86-1c4e-48b5-969a-4b93c4d6fcc9

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/googleforgames/agones.git pull/2901/head:pr_2901 && git checkout pr_2901
  • helm install agones ./install/helm/agones --namespace agones-system --agones.image.release=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.30.0-7f9bce9-amd64

@zmerlynn zmerlynn merged commit 35e899d into googleforgames:main Jan 19, 2023
@markmandel markmandel added the kind/feature New features for Agones label Jan 20, 2023
@zmerlynn zmerlynn deleted the wait-on-free-ports branch January 25, 2023 22:22
@Kalaiselvi84 Kalaiselvi84 added this to the 1.30.0 milestone Feb 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved kind/feature New features for Agones size/M
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants