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 autoscaling logic for new Chain and Schedule policies #3929

Merged
merged 8 commits into from
Aug 7, 2024

Conversation

indexjoseph
Copy link
Contributor

@indexjoseph indexjoseph commented Jul 30, 2024

What type of PR is this?
/kind feature

What this PR does / Why we need it:

This PR is a follow up of #3893.

  • Adds controller logic to check for active schedules and apply policies under a Schedule
  • Adds controller logic for new Chain policy, including fall through for webhook invocation failure and inactive schedules

Which issue(s) this PR fixes:

Towards #3008

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

Build Failed 😭

Build Id: aa7f97f6-c0d1-4472-bec9-e1b1d3ebd6c2

Status: FAILURE

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

@indexjoseph indexjoseph changed the title Adds autoscaling logic for new Chain and Schedule Policies Adds autoscaling logic for new Chain and Schedule policies Jul 30, 2024
@indexjoseph indexjoseph changed the title Adds autoscaling logic for new Chain and Schedule policies feat: Adds autoscaling logic for new Chain and Schedule policies Jul 30, 2024
@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: 3c705cb7-fcf6-4dd2-85e9-71723f3ad319

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/3929/head:pr_3929 && git checkout pr_3929
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-e56c992

@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: 3f98be20-525b-4477-89f4-066d25fb6d12

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/3929/head:pr_3929 && git checkout pr_3929
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-4ee6a56

@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: 0299ed90-3836-45d5-ac4d-d2071b1fe557

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/3929/head:pr_3929 && git checkout pr_3929
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-89d36f0

@github-actions github-actions bot added the size/L label Aug 1, 2024
@indexjoseph indexjoseph marked this pull request as ready for review August 1, 2024 18:28
@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: a437a6d2-cb0c-4457-aab5-388dd396966e

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/3929/head:pr_3929 && git checkout pr_3929
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-6b2eb58

Copy link
Collaborator

@vicentefb vicentefb left a comment

Choose a reason for hiding this comment

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

Nice

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.

(Haven't reviewed test yet, doing that new).

pkg/fleetautoscalers/fleetautoscalers.go Show resolved Hide resolved
pkg/fleetautoscalers/fleetautoscalers.go Show resolved Hide resolved
pkg/fleetautoscalers/fleetautoscalers.go Outdated Show resolved Hide resolved
pkg/fleetautoscalers/fleetautoscalers.go Show resolved Hide resolved
pkg/fleetautoscalers/fleetautoscalers.go Outdated Show resolved Hide resolved
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.

All looks generally LGTM, just a few nits really.

pkg/fleetautoscalers/fleetautoscalers_test.go Outdated Show resolved Hide resolved
pkg/fleetautoscalers/fleetautoscalers_test.go Outdated Show resolved Hide resolved
@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: 2072d5ec-f03b-43fb-8858-51df18b070e1

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/3929/head:pr_3929 && git checkout pr_3929
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-3ac13e3

@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: 37c86b0c-d382-4070-a8ae-1fa0dabaa6cb

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: 148c346d-5607-4a1b-ac5d-c1592aa2246f

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/3929/head:pr_3929 && git checkout pr_3929
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-6c0b4ed

@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: beed4c01-c6fe-4017-a087-d826f71f1bdd

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/3929/head:pr_3929 && git checkout pr_3929
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-a9b75ff

@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: cc2b2061-ad24-44a1-b562-8b9c727d3b07

Status: FAILURE

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

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

Build Succeeded 🥳

Build Id: e570c1a0-5a4f-4ace-b734-f0477461251f

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/3929/head:pr_3929 && git checkout pr_3929
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-ebd07b9

… and cronEnd times

Add custom error for inactive schedule & prevent logging inactive schedule errors as events

 f
@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: 34a12def-b3df-414a-bb1d-d837b6222fad

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/3929/head:pr_3929 && git checkout pr_3929
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-fa20436

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.

Nice job!

@zmerlynn zmerlynn enabled auto-merge (squash) August 7, 2024 18:24
@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: 63ce17ad-2ad6-40e3-b19d-1e91aa7f0d24

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/3929/head:pr_3929 && git checkout pr_3929
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-451a89a

@zmerlynn zmerlynn merged commit ff4c222 into googleforgames:main Aug 7, 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://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://github.com/googleforgames/agones/releases/tag/v1.43.0)

[Compare
Source](https://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://github.com/googleforgames/agones/issues/3933))"
by [@&#8203;gongmax](https://github.com/gongmax) in
[https://github.com/googleforgames/agones/pull/3952](https://github.com/googleforgames/agones/pull/3952)

##### Implemented enhancements

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

##### Fixed bugs

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

##### Other

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

#### New Contributors

- [@&#8203;Orza](https://github.com/Orza) made their first
contribution in
[https://github.com/googleforgames/agones/pull/3895](https://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://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
Labels
kind/feature New features for Agones size/L size/M
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants