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

Adds basic framework for the in place Agones upgrades test controller #3956

Merged
merged 2 commits into from
Aug 21, 2024

Conversation

igooch
Copy link
Collaborator

@igooch igooch commented Aug 19, 2024

What type of PR is this?

/kind feature

What this PR does / Why we need it:

This is the first piece of testing in place Agones upgrades.

  • Adds a ConfigMap for mapping valid Agones versions and Feature Gates to Kubernetes versions
  • Adds controller run by a Job that gets the version of Kubernetes that the Job Pod is running on, and gets the Agones and Feature Gates that are valid for that version of Kubernetes.
  • Adds basic Make, Docker, go.mod and go.sum files for creating the controller container. Later this will be better integrated into the existing Build directory.

Which issue(s) this PR fixes:

Working on #3795

Special notes for your reviewer:

To run:

  1. Have a running Kubernetes cluster with Agones installed
  2. Have REGISTRY set to your artifact registry
  3. The $(REGISTRY) value in upgradeTest.yaml currently needs to be manually set to your registry
  4. make build && make push to your registry
  5. kubectl apply -f permissions.yaml for reading Pod and Node
  6. kubectl apply -f versionMap.yaml to load the configmap
  7. kubectl apply -f upgradeTest.yaml to run the test runner
  8. You should be able to see the valid configurations printed out in logs explorer with filter resource.labels.container_name="upgrade-test-controller"

@github-actions github-actions bot added kind/feature New features for Agones size/L labels Aug 19, 2024
@agones-bot
Copy link
Collaborator

Build Failed 😭

Build Id: 500a31c7-f163-4624-9bda-c827eaffd498

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: 5471404c-60c9-4ae5-aa8a-c54cddfe4203

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: 8c2a6f50-e4d8-485e-a742-b0fff36db20c

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: 6a2e0bce-c96c-4a46-aa49-3a5d42fe7d88

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/3956/head:pr_3956 && git checkout pr_3956
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-dd57ce5

@igooch igooch requested a review from gongmax August 21, 2024 18:41
@agones-bot
Copy link
Collaborator

Build Succeeded 🥳

Build Id: 2d631d70-4674-4e6e-a410-38768acc90be

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/3956/head:pr_3956 && git checkout pr_3956
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-b765f49

@igooch igooch merged commit 079ced8 into googleforgames:main Aug 21, 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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants