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

Passthrough autopilot - added ports array case and updated unit tests #3842

Merged

Conversation

vicentefb
Copy link
Collaborator

@vicentefb vicentefb commented May 30, 2024

What type of PR is this?

Uncomment only one /kind <> line, press enter to put that in a new line, and remove leading whitespace from that line:

/kind breaking
/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind hotfix
/kind release

What this PR does / Why we need it:
Handles case where we receive an array of mixed ports (Dynamic and Passthrough) for Autopilot clusters.

Which issue(s) this PR fixes:

Towards #3721

Special notes for your reviewer:

@github-actions github-actions bot added kind/feature New features for Agones size/M labels May 30, 2024
@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 9a59482a-94fb-4d6e-824d-21d70abff4bb

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

Copy link
Collaborator

@zmerlynn zmerlynn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good! A few comments.

pkg/apis/agones/v1/gameserver.go Outdated Show resolved Hide resolved
pkg/apis/agones/v1/gameserver_test.go Show resolved Hide resolved
pkg/apis/agones/v1/gameserver.go Outdated Show resolved Hide resolved
pkg/gameservers/controller.go Show resolved Hide resolved
pkg/util/runtime/features.go Outdated Show resolved Hide resolved
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 58216bbb-bb2d-4894-9766-6a41733401ce

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/3842/head:pr_3842 && git checkout pr_3842
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.41.0-dev-41690e1-amd64

@vicentefb vicentefb requested a review from zmerlynn May 30, 2024 19:36
Copy link
Collaborator

@zmerlynn zmerlynn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Closer!

pkg/gameservers/controller.go Outdated Show resolved Hide resolved
pkg/gameservers/controller.go Outdated Show resolved Hide resolved
pkg/gameservers/controller.go Outdated Show resolved Hide resolved
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 46c5ddb8-3e14-4568-a706-2ad9a3e4b9c0

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/3842/head:pr_3842 && git checkout pr_3842
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.41.0-dev-6cb441b-amd64

…ports index and updated unit tests for better readability
@vicentefb vicentefb requested a review from zmerlynn May 30, 2024 22:47
Copy link
Collaborator

@zmerlynn zmerlynn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost!

pkg/apis/agones/v1/gameserver.go Outdated Show resolved Hide resolved
pkg/apis/agones/v1/gameserver.go Outdated Show resolved Hide resolved
pkg/gameservers/controller.go Outdated Show resolved Hide resolved
pkg/gameservers/controller_test.go Show resolved Hide resolved
pkg/gameservers/controller_test.go Outdated Show resolved Hide resolved
Ports: []corev1.ContainerPort{{HostPort: 7777, ContainerPort: 555}},
Env: []corev1.EnvVar{{Name: passthroughPortEnvVar, Value: "TRUE"}}}},
// Assume ports 0 and 2 are Passthrough ports for "example-server" container
// The annotation would look like autopilot.gke.io/passthrough-port-assignment: '{"example-server":["0","2"]}'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this comment is out of date (it's {"example-server":[0,2]}, right?)

Copy link
Collaborator Author

@vicentefb vicentefb May 31, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it could still be valid case unless I'm missing something (?) In this method i'm building the PodSpec and the example-server container has 3 ports so technically container ports 0 and 2 are still valid. I'm aware that the HostPort and ContainerPort are not the same value in this piece of code but that's intentional since at this point the webhook hasn't been triggered. Nevertheless, I included another container in this PodSpec and updated the comment. But please lmk!

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 668f3726-316e-468b-a878-e055c651d274

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

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 78b49adb-6911-4801-8cb4-6fde6b85d738

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/3842/head:pr_3842 && git checkout pr_3842
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.41.0-dev-977821c-amd64

@zmerlynn
Copy link
Collaborator

Great job!

@zmerlynn zmerlynn enabled auto-merge (squash) May 31, 2024 13:25
@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 4a43eac3-90a2-4a93-9db0-a1cf4c0b07e7

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

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: fc4ae981-b96a-4367-ae19-807f41b5f6c8

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

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 07ad92f5-92cc-4667-8c1d-df30cc708684

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/3842/head:pr_3842 && git checkout pr_3842
  • helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.41.0-dev-6e4fe66-amd64

@zmerlynn zmerlynn merged commit a2903ca into googleforgames:main May 31, 2024
4 checks passed
spiceratops referenced this pull request in spiceratops/k8s-gitops Jun 8, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [agones](https://agones.dev)
([source](https://togithub.com/googleforgames/agones)) | minor |
`1.40.0` -> `1.41.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>googleforgames/agones (agones)</summary>

###
[`v1.41.0`](https://togithub.com/googleforgames/agones/blob/HEAD/CHANGELOG.md#v1410-2024-06-04)

[Compare
Source](https://togithub.com/googleforgames/agones/compare/v1.40.0...v1.41.0)

[Full
Changelog](https://togithub.com/googleforgames/agones/compare/v1.40.0...v1.41.0)

**Implemented enhancements:**

- Configure Allocator Status Code by
[@&#8203;Kalaiselvi84](https://togithub.com/Kalaiselvi84) in
[https://github.com/googleforgames/agones/pull/3782](https://togithub.com/googleforgames/agones/pull/3782)
- Graduate Counters and Lists to Beta by
[@&#8203;Kalaiselvi84](https://togithub.com/Kalaiselvi84) in
[https://github.com/googleforgames/agones/pull/3801](https://togithub.com/googleforgames/agones/pull/3801)
- Passthrough autopilot - Adds an AutopilotPassthroughPort Feature Gate
and new pod label by [@&#8203;vicentefb](https://togithub.com/vicentefb)
in
[https://github.com/googleforgames/agones/pull/3809](https://togithub.com/googleforgames/agones/pull/3809)
- CountsAndLists: Move to Beta Protobuf by
[@&#8203;Kalaiselvi84](https://togithub.com/Kalaiselvi84) in
[https://github.com/googleforgames/agones/pull/3806](https://togithub.com/googleforgames/agones/pull/3806)
- feat: support multiple port ranges by
[@&#8203;nrwiersma](https://togithub.com/nrwiersma) in
[https://github.com/googleforgames/agones/pull/3747](https://togithub.com/googleforgames/agones/pull/3747)
- Changes `sdk-server` to Patch instead of Update by
[@&#8203;igooch](https://togithub.com/igooch) in
[https://github.com/googleforgames/agones/pull/3803](https://togithub.com/googleforgames/agones/pull/3803)
- Generate grpc for nodejs from alpha to beta by
[@&#8203;lacroixthomas](https://togithub.com/lacroixthomas) in
[https://github.com/googleforgames/agones/pull/3825](https://togithub.com/googleforgames/agones/pull/3825)
- Update CountsAndLists from Alpha to Beta by
[@&#8203;Kalaiselvi84](https://togithub.com/Kalaiselvi84) in
[https://github.com/googleforgames/agones/pull/3824](https://togithub.com/googleforgames/agones/pull/3824)
- feat(gameserver): New DirectToGameServer PortPolicy allows direct
traffic to a GameServer by
[@&#8203;daniellee](https://togithub.com/daniellee) in
[https://github.com/googleforgames/agones/pull/3807](https://togithub.com/googleforgames/agones/pull/3807)
- Passthrough autopilot - Adds mutating webhook by
[@&#8203;vicentefb](https://togithub.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3833](https://togithub.com/googleforgames/agones/pull/3833)
- Passthrough autopilot - added ports array case and updated unit tests
by [@&#8203;vicentefb](https://togithub.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3842](https://togithub.com/googleforgames/agones/pull/3842)
- Nodejs counters and lists by
[@&#8203;steven-supersolid](https://togithub.com/steven-supersolid) in
[https://github.com/googleforgames/agones/pull/3726](https://togithub.com/googleforgames/agones/pull/3726)
- Promote AutopilotPassthroughPort feature gate to Alpha by
[@&#8203;vicentefb](https://togithub.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3849](https://togithub.com/googleforgames/agones/pull/3849)

**Fixed bugs:**

- Helm Param Update: Default to agones.controller if agones.extensions
is Missing by [@&#8203;Kalaiselvi84](https://togithub.com/Kalaiselvi84)
in
[https://github.com/googleforgames/agones/pull/3773](https://togithub.com/googleforgames/agones/pull/3773)
- fix: rollout strategy issues by
[@&#8203;nrwiersma](https://togithub.com/nrwiersma) in
[https://github.com/googleforgames/agones/pull/3762](https://togithub.com/googleforgames/agones/pull/3762)
- Set Minimum Buffer Size to 1 by
[@&#8203;Kalaiselvi84](https://togithub.com/Kalaiselvi84) in
[https://github.com/googleforgames/agones/pull/3749](https://togithub.com/googleforgames/agones/pull/3749)
- Pin ltsc2019 to older SHA by
[@&#8203;zmerlynn](https://togithub.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3829](https://togithub.com/googleforgames/agones/pull/3829)
- TestGameServerAllocationDuringMultipleAllocationClients: Readdress
flake by [@&#8203;zmerlynn](https://togithub.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3831](https://togithub.com/googleforgames/agones/pull/3831)
- Refactor finalizer name to include valid domain name and path by
[@&#8203;indexjoseph](https://togithub.com/indexjoseph) in
[https://github.com/googleforgames/agones/pull/3840](https://togithub.com/googleforgames/agones/pull/3840)
- agones-{extensions,allocator}: Be more defensive about draining by
[@&#8203;zmerlynn](https://togithub.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3839](https://togithub.com/googleforgames/agones/pull/3839)
- agones-{extensions,allocator}: Pause after cancelling context by
[@&#8203;zmerlynn](https://togithub.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3843](https://togithub.com/googleforgames/agones/pull/3843)
- Change the line to modify in Quickstart: Edit a Game Server by
[@&#8203;peterzhongyi](https://togithub.com/peterzhongyi) in
[https://github.com/googleforgames/agones/pull/3844](https://togithub.com/googleforgames/agones/pull/3844)

**Other:**

- Prep for Release v1.41.0 by
[@&#8203;Kalaiselvi84](https://togithub.com/Kalaiselvi84) in
[https://github.com/googleforgames/agones/pull/3800](https://togithub.com/googleforgames/agones/pull/3800)
- Update site documentation to reflect firewall prefix and default to
Autopilot cluster creation for Agones by
[@&#8203;vicentefb](https://togithub.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3769](https://togithub.com/googleforgames/agones/pull/3769)
- Add a System Diagram and overview page by
[@&#8203;zmerlynn](https://togithub.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3792](https://togithub.com/googleforgames/agones/pull/3792)
- Update Side Menu: Preserve and Restore Scroll Position by
[@&#8203;Kalaiselvi84](https://togithub.com/Kalaiselvi84) in
[https://github.com/googleforgames/agones/pull/3805](https://togithub.com/googleforgames/agones/pull/3805)
- fix: typo by [@&#8203;skmpf](https://togithub.com/skmpf) in
[https://github.com/googleforgames/agones/pull/3808](https://togithub.com/googleforgames/agones/pull/3808)
- Helm Config: Add httpUnallocatedStatusCode in Allocator Service by
[@&#8203;Kalaiselvi84](https://togithub.com/Kalaiselvi84) in
[https://github.com/googleforgames/agones/pull/3802](https://togithub.com/googleforgames/agones/pull/3802)
- Update Docs: CountersAndLists to Beta by
[@&#8203;Kalaiselvi84](https://togithub.com/Kalaiselvi84) in
[https://github.com/googleforgames/agones/pull/3810](https://togithub.com/googleforgames/agones/pull/3810)
- Disable Dev feature FeatureAutopilotPassthroughPort by
[@&#8203;vicentefb](https://togithub.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3815](https://togithub.com/googleforgames/agones/pull/3815)
- Disable FeatureAutopilotPassthroughPort in features.go by
[@&#8203;vicentefb](https://togithub.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3816](https://togithub.com/googleforgames/agones/pull/3816)
- SDK proto compatibility guarantees and deprecation policies
documentation by [@&#8203;igooch](https://togithub.com/igooch) in
[https://github.com/googleforgames/agones/pull/3774](https://togithub.com/googleforgames/agones/pull/3774)
- Fix dangling "as of" by
[@&#8203;zmerlynn](https://togithub.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3827](https://togithub.com/googleforgames/agones/pull/3827)
- Steps to Promote SDK Features from Alpha to Beta by
[@&#8203;Kalaiselvi84](https://togithub.com/Kalaiselvi84) in
[https://github.com/googleforgames/agones/pull/3814](https://togithub.com/googleforgames/agones/pull/3814)
- Adds comment for help troubleshooting issues with terraform tfstate by
[@&#8203;igooch](https://togithub.com/igooch) in
[https://github.com/googleforgames/agones/pull/3822](https://togithub.com/googleforgames/agones/pull/3822)
- docs: improve counter and list example comments by
[@&#8203;yonbh](https://togithub.com/yonbh) in
[https://github.com/googleforgames/agones/pull/3818](https://togithub.com/googleforgames/agones/pull/3818)
- Skip /tmp/ on yamllint by
[@&#8203;zmerlynn](https://togithub.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3838](https://togithub.com/googleforgames/agones/pull/3838)
- TestAllocatorAfterDeleteReplica: More logging by
[@&#8203;zmerlynn](https://togithub.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3837](https://togithub.com/googleforgames/agones/pull/3837)
- Instructions for upgrading golang version by
[@&#8203;gongmax](https://togithub.com/gongmax) in
[https://github.com/googleforgames/agones/pull/3819](https://togithub.com/googleforgames/agones/pull/3819)
- Remove unused function FindGameServerContainer by
[@&#8203;zmerlynn](https://togithub.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3841](https://togithub.com/googleforgames/agones/pull/3841)
- Adds Unreal to the List of URL Links to Not Check by
[@&#8203;igooch](https://togithub.com/igooch) in
[https://github.com/googleforgames/agones/pull/3847](https://togithub.com/googleforgames/agones/pull/3847)
- docs: clarify virtualization setup for Windows versions by
[@&#8203;andresromerodev](https://togithub.com/andresromerodev) in
[https://github.com/googleforgames/agones/pull/3850](https://togithub.com/googleforgames/agones/pull/3850)

**New Contributors:**

- [@&#8203;skmpf](https://togithub.com/skmpf) made their first
contribution in
[https://github.com/googleforgames/agones/pull/3808](https://togithub.com/googleforgames/agones/pull/3808)
- [@&#8203;yonbh](https://togithub.com/yonbh) made their first
contribution in
[https://github.com/googleforgames/agones/pull/3818](https://togithub.com/googleforgames/agones/pull/3818)
- [@&#8203;peterzhongyi](https://togithub.com/peterzhongyi) made their
first contribution in
[https://github.com/googleforgames/agones/pull/3844](https://togithub.com/googleforgames/agones/pull/3844)
- [@&#8203;andresromerodev](https://togithub.com/andresromerodev) made
their first contribution in
[https://github.com/googleforgames/agones/pull/3850](https://togithub.com/googleforgames/agones/pull/3850)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9oZWxtIiwidHlwZS9taW5vciJdfQ==-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature New features for Agones size/M
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants