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

feat: Adds e2e tests for chain/schedule policy and bump ScheduledAutoscaler to Alpha #3946

Merged
merged 20 commits into from
Aug 26, 2024

Conversation

indexjoseph
Copy link
Contributor

@indexjoseph indexjoseph commented Aug 13, 2024

What type of PR is this?

/kind feature

What this PR does / Why we need it:

This PR is a follow-up of #3929

  • Adds e2e test for schedule policy to verify active/inactive schedules
  • Adds e2e test for chain policy to verify fall through and back-to-back scheduling
  • Changes Scheduled Autoscaler feature gate from Dev to Alpha

Which issue(s) this PR fixes:

Towards #3008, #3686

Special notes for your reviewer:

@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: ff1c9ca9-af21-413e-87e8-9f15df0b6ee3

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/3946/head:pr_3946 && git checkout pr_3946
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.43.0-dev-2d65aaf

@indexjoseph indexjoseph force-pushed the e2e-chain-schedule-policy branch from 2d65aaf to 7e917f8 Compare August 13, 2024 20:16
@indexjoseph indexjoseph marked this pull request as ready for review August 13, 2024 20:17
@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: ee8dc5f3-b17c-415f-bafc-77b68b5d1c0b

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/3946/head:pr_3946 && git checkout pr_3946
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.43.0-dev-f25dc03

@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: 7b0e4c30-12cd-4cac-bade-f46f07fc6712

Status: FAILURE

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

@indexjoseph indexjoseph force-pushed the e2e-chain-schedule-policy branch from bccf364 to 2131907 Compare August 14, 2024 19:43
@github-actions github-actions bot added kind/feature New features for Agones size/XL labels Aug 14, 2024
@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: 1c61ddfc-e25d-4e14-8ec1-9b9ccf89b8e1

Status: FAILURE

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

@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: 56090545-d3db-4d61-843a-02809e875b02

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/3946/head:pr_3946 && git checkout pr_3946
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.43.0-dev-5a93315

@zmerlynn
Copy link
Collaborator

Please move the feature to Alpha so it's tested in CI! :)

https://github.com/googleforgames/agones/blob/main/pkg/util/runtime/features.go#L91-L95

@indexjoseph indexjoseph changed the title feat: Adds e2e tests for chain/schedule policy feat: Adds e2e tests for chain/schedule policy and bump ScheduledAutoscaler to Alpha Aug 15, 2024
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.

The test LGTM. I'd like to see it pass in CI before a maintainer approves it - see my note above about graduating it to Alpha, which will get it tested here.

@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: e24cbda3-89de-4a20-9fee-56d1a37a95a2

Status: FAILURE

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

@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: 8493bfa9-f995-4f86-a8be-02b5e80a4859

Status: FAILURE

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

@indexjoseph
Copy link
Contributor Author

indexjoseph commented Aug 16, 2024

Hmm, it looks like submit-e2e-test-cloud-build may be failing due to a flake, this is the same error that I was receiving yesterday but when triggering CI again it passed.

@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: 79de41f4-be63-4fb2-a6af-6c2a1471f515

Status: FAILURE

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

Copy link
Collaborator

@igooch igooch left a comment

Choose a reason for hiding this comment

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

Tests overall look good, just a few small changes needed.

pkg/util/runtime/features.go Show resolved Hide resolved
site/content/en/docs/Guides/feature-stages.md Outdated Show resolved Hide resolved
test/e2e/fleetautoscaler_test.go Outdated Show resolved Hide resolved
build/Makefile Outdated Show resolved Hide resolved
pkg/util/runtime/features.go Show resolved Hide resolved
@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: 7fd82aaf-1c86-4680-97c8-5578c5512787

Status: FAILURE

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

build/Makefile Outdated Show resolved Hide resolved
@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: 49ad120b-2686-4d97-b0cc-347f638643e3

Status: FAILURE

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

@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: 3b60d7cf-aefc-4fb9-9cd4-b78815887f6e

Status: FAILURE

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

@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: f39eab28-9b89-4a0a-9c00-edefd00fa02d

Status: FAILURE

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

@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: f1ee6772-9859-4db1-ad83-2942912cb36a

Status: FAILURE

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

@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: 678d94dd-81aa-4c58-97a6-5107a86a0b59

Status: FAILURE

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

@igooch
Copy link
Collaborator

igooch commented Aug 23, 2024

If you re-run ~/agones/build$ make gen-install and push the changes the tests should pass.

@indexjoseph
Copy link
Contributor Author

indexjoseph commented Aug 23, 2024

If you re-run ~/agones/build$ make gen-install and push the changes the tests should pass.

I'm trying to configure my dev environment, I've recently upgraded to a Mac w/ an Apple silicon chip and I've been having trouble trying to get Docker working. I'll rerun make gen-install on my other machine here soon.

@zmerlynn
Copy link
Collaborator

If you re-run ~/agones/build$ make gen-install and push the changes the tests should pass.

I'm trying to configure my dev environment, I've recently upgraded to a Mac w/ an Apple silicon chip and I've been having trouble trying to get Docker working. I'll rerun make gen-install on my other machine here soon.

You can also just use the helm command that's in the Makefile target and skip Docker here, if you can install helm (which may be easier than Docker).

@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: 9e1d3bd2-6d52-4284-ab3a-6364a0ab8b60

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/3946/head:pr_3946 && git checkout pr_3946
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.43.0-dev-709a0df

@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: d5071bc6-c2f5-47f9-9859-ef642c53d7d3

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/3946/head:pr_3946 && git checkout pr_3946
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.43.0-dev-9ad8246

@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: f759aeee-757e-43d8-b987-6a5ee70de986

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/3946/head:pr_3946 && git checkout pr_3946
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.43.0-dev-c747d46

@igooch igooch enabled auto-merge (squash) August 26, 2024 06:13
Copy link
Collaborator

@igooch igooch left a comment

Choose a reason for hiding this comment

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

LGTM, good work!

@igooch igooch merged commit 967b702 into googleforgames:main Aug 26, 2024
4 checks passed
spiceratops referenced this pull request in spiceratops/k8s-gitops Aug 30, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [agones](https://agones.dev)
([source](https://redirect.github.com/googleforgames/agones)) | minor |
`1.42.0` -> `1.43.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.43.0`](https://redirect.github.com/googleforgames/agones/releases/tag/v1.43.0)

[Compare
Source](https://redirect.github.com/googleforgames/agones/compare/v1.42.0...v1.43.0)

This is the 1.43.0 release of Agones.

In this release, we updated the supported Kubernetes version, added a
new scheduled autoscaler, as well as Unity support for Counters and
Lists..

-   **Kubernetes 1.30 Support**
With this release, the Kubernetes support matrix for Agones is now 1.28,
1.29 and 1.30.

-   **Alpha support for ScheduledAutoscaler**
This provides the ability to have Fleet autoscaler scheduling with the
feature flag `ScheduledAutoscaler`, to allow you to schedule what level
of autoscaling you would like on a schedule or between dates, giving you
more control over your autoscaling needs.

-   **Unity SDK: Counters and Lists**
We now have support for `GameServer` [Counters and
Lists](https://agones.dev/site/docs/guides/counters-and-lists/) with our
Unity SDK!

-   **New Helm Installation Configuration Options**
    Two new installation options!

We made the parameters that control how fast we scale up and down
`GameServers` configurable, so you can see how fast your Kubernetes
control plane really is when spinning up lots of `GameServer` instances.

We also have new Helm configuration options that allow the use of the
host network for the Agones controller and extensions for AWS EKS when
using Cilium.

-   **Beta support for Passthrough PortPolicy on GKE Autopilot**
We’ve graduated Passthrough Port Policy support from Alpha to Beta on
GKE Autopilot, which you can now enable using the feature flag
`AutopilotPassthroughPort`.

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### Breaking changes

- Revert "Update Supported Kubernetes to 1.28, 1.29, 1.30
([#&#8203;3933](https://redirect.github.com/googleforgames/agones/issues/3933))"
by [@&#8203;gongmax](https://redirect.github.com/gongmax) in
[https://github.com/googleforgames/agones/pull/3952](https://redirect.github.com/googleforgames/agones/pull/3952)

##### Implemented enhancements

- Add Option to Use Host Network and Configure Ports by
[@&#8203;Orza](https://redirect.github.com/Orza) in
[https://github.com/googleforgames/agones/pull/3895](https://redirect.github.com/googleforgames/agones/pull/3895)
- Graduate Passthrough Port Policy to Beta on Autopilot by
[@&#8203;vicentefb](https://redirect.github.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3916](https://redirect.github.com/googleforgames/agones/pull/3916)
- Agones Unity SDK development setup instructions + Agones Unity SDK
Ready test by [@&#8203;aallbrig](https://redirect.github.com/aallbrig)
in
[https://github.com/googleforgames/agones/pull/3887](https://redirect.github.com/googleforgames/agones/pull/3887)
- feat: Add API Changes and Validation for FleetAutoscaler
Schedule/Chain Policy by
[@&#8203;indexjoseph](https://redirect.github.com/indexjoseph) in
[https://github.com/googleforgames/agones/pull/3893](https://redirect.github.com/googleforgames/agones/pull/3893)
- feat: Adds autoscaling logic for new Chain and Schedule policies by
[@&#8203;indexjoseph](https://redirect.github.com/indexjoseph) in
[https://github.com/googleforgames/agones/pull/3929](https://redirect.github.com/googleforgames/agones/pull/3929)
- Adds basic framework for the in place Agones upgrades test controller
by [@&#8203;igooch](https://redirect.github.com/igooch) in
[https://github.com/googleforgames/agones/pull/3956](https://redirect.github.com/googleforgames/agones/pull/3956)
- \[Performance] - Added a new metric inside the allocator to track the
success retry rate inside the retry loop by
[@&#8203;vicentefb](https://redirect.github.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3927](https://redirect.github.com/googleforgames/agones/pull/3927)
- Make the parameters that limits the number of GameServers to add
configurable by
[@&#8203;vicentefb](https://redirect.github.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3950](https://redirect.github.com/googleforgames/agones/pull/3950)
- feat: Adds e2e tests for chain/schedule policy and bump
ScheduledAutoscaler to Alpha by
[@&#8203;indexjoseph](https://redirect.github.com/indexjoseph) in
[https://github.com/googleforgames/agones/pull/3946](https://redirect.github.com/googleforgames/agones/pull/3946)
- Implement CountsAndLists for Unity SDK + Tests by
[@&#8203;ZeroParticle](https://redirect.github.com/ZeroParticle) in
[https://github.com/googleforgames/agones/pull/3883](https://redirect.github.com/googleforgames/agones/pull/3883)

##### Fixed bugs

- Resolves `make site-server` issue
[#&#8203;3885](https://redirect.github.com/googleforgames/agones/issues/3885)
by [@&#8203;aallbrig](https://redirect.github.com/aallbrig) in
[https://github.com/googleforgames/agones/pull/3914](https://redirect.github.com/googleforgames/agones/pull/3914)

##### Other

- Preparation for Release v1.43.0 by
[@&#8203;kamaljeeti](https://redirect.github.com/kamaljeeti) in
[https://github.com/googleforgames/agones/pull/3910](https://redirect.github.com/googleforgames/agones/pull/3910)
- Introduce external resource(s) on multiplayer game programming to docs
by [@&#8203;aallbrig](https://redirect.github.com/aallbrig) in
[https://github.com/googleforgames/agones/pull/3884](https://redirect.github.com/googleforgames/agones/pull/3884)
- Added line of code to update failure count details inside runscenario
by [@&#8203;vicentefb](https://redirect.github.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3915](https://redirect.github.com/googleforgames/agones/pull/3915)
- updated golang upgrade template by
[@&#8203;ashutosji](https://redirect.github.com/ashutosji) in
[https://github.com/googleforgames/agones/pull/3902](https://redirect.github.com/googleforgames/agones/pull/3902)
- Changes for GitHub/Cloud Build app integration by
[@&#8203;zmerlynn](https://redirect.github.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3918](https://redirect.github.com/googleforgames/agones/pull/3918)
- Meta: Contributor role by
[@&#8203;markmandel](https://redirect.github.com/markmandel) in
[https://github.com/googleforgames/agones/pull/3922](https://redirect.github.com/googleforgames/agones/pull/3922)
- Fix allocator metrics endpoint by
[@&#8203;vicentefb](https://redirect.github.com/vicentefb) in
[https://github.com/googleforgames/agones/pull/3921](https://redirect.github.com/googleforgames/agones/pull/3921)
- Meta: Contributor => Collaborator by
[@&#8203;markmandel](https://redirect.github.com/markmandel) in
[https://github.com/googleforgames/agones/pull/3928](https://redirect.github.com/googleforgames/agones/pull/3928)
- Rewrite agones-bot, commit to Agones repo by
[@&#8203;zmerlynn](https://redirect.github.com/zmerlynn) in
[https://github.com/googleforgames/agones/pull/3923](https://redirect.github.com/googleforgames/agones/pull/3923)
- Small cleanup of incorrect comment in features.go file by
[@&#8203;igooch](https://redirect.github.com/igooch) in
[https://github.com/googleforgames/agones/pull/3944](https://redirect.github.com/googleforgames/agones/pull/3944)
- Update Supported Kubernetes to 1.28, 1.29, 1.30 by
[@&#8203;ashutosji](https://redirect.github.com/ashutosji) in
[https://github.com/googleforgames/agones/pull/3933](https://redirect.github.com/googleforgames/agones/pull/3933)
- remove ctx within the condition func by
[@&#8203;peterzhongyi](https://redirect.github.com/peterzhongyi) in
[https://github.com/googleforgames/agones/pull/3959](https://redirect.github.com/googleforgames/agones/pull/3959)
- Reapply "Update Supported Kubernetes to 1.28, 1.29, 1.30
([#&#8203;3933](https://redirect.github.com/googleforgames/agones/issues/3933))"
([#&#8203;3](https://redirect.github.com/googleforgames/agones/issues/3)…
by [@&#8203;gongmax](https://redirect.github.com/gongmax) in
[https://github.com/googleforgames/agones/pull/3961](https://redirect.github.com/googleforgames/agones/pull/3961)
- change kubernetes API version to fix broken CI by
[@&#8203;peterzhongyi](https://redirect.github.com/peterzhongyi) in
[https://github.com/googleforgames/agones/pull/3962](https://redirect.github.com/googleforgames/agones/pull/3962)
- docs(godot): add Agones x Godot third party example by
[@&#8203;andresromerodev](https://redirect.github.com/andresromerodev)
in
[https://github.com/googleforgames/agones/pull/3938](https://redirect.github.com/googleforgames/agones/pull/3938)
- Link Unity Netcode for Gameobjects example in documentation by
[@&#8203;mbychkowski](https://redirect.github.com/mbychkowski) in
[https://github.com/googleforgames/agones/pull/3937](https://redirect.github.com/googleforgames/agones/pull/3937)
- Docs: Use k8s-api-version for links by
[@&#8203;markmandel](https://redirect.github.com/markmandel) in
[https://github.com/googleforgames/agones/pull/3963](https://redirect.github.com/googleforgames/agones/pull/3963)

#### New Contributors

- [@&#8203;Orza](https://redirect.github.com/Orza) made their first
contribution in
[https://github.com/googleforgames/agones/pull/3895](https://redirect.github.com/googleforgames/agones/pull/3895)

**Full Changelog**:
googleforgames/agones@v1.42.0...v1.43.0

Images available with this release:

-
[us-docker.pkg.dev/agones-images/release/agones-controller:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-controller:1.43.0)
-
[us-docker.pkg.dev/agones-images/release/agones-sdk:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-sdk:1.43.0)
-
[us-docker.pkg.dev/agones-images/release/agones-ping:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-ping:1.43.0)
-
[us-docker.pkg.dev/agones-images/release/agones-allocator:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-allocator:1.43.0)
-
[us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.9](https://us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.9)
-
[us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.14](https://us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.14)
-
[us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.18](https://us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.18)
-
[us-docker.pkg.dev/agones-images/examples/crd-client:0.17](https://us-docker.pkg.dev/agones-images/examples/crd-client:0.17)
-
[us-docker.pkg.dev/agones-images/examples/nodejs-simple-server:0.10](https://us-docker.pkg.dev/agones-images/examples/nodejs-simple-server:0.10)
-
[us-docker.pkg.dev/agones-images/examples/rust-simple-server:0.13](https://us-docker.pkg.dev/agones-images/examples/rust-simple-server:0.13)
-
[us-docker.pkg.dev/agones-images/examples/simple-game-server:0.34](https://us-docker.pkg.dev/agones-images/examples/simple-game-server:0.34)
-
[us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.14](https://us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.14)
-
[us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3](https://us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3)
-
[us-docker.pkg.dev/agones-images/examples/xonotic-example:2.0](https://us-docker.pkg.dev/agones-images/examples/xonotic-example:2.0)

Helm chart available with this release:

- <a href="https://agones.dev/chart/stable/agones-1.43.0.tgz"
data-proofer-ignore>
    <code>helm install agones agones/agones --version 1.43.0</code></a>

> Make sure to add our stable helm repository using `helm repo add
agones https://agones.dev/chart/stable`

</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://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ny4xIiwidXBkYXRlZEluVmVyIjoiMzguNTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvaGVsbSIsInR5cGUvbWlub3IiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants