diff --git a/CHANGELOG.md b/CHANGELOG.md index 972fbb1e4c..413089d2de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,52 @@ # Changelog +# [v1.54.0](https://github.com/googleforgames/agones/tree/v1.53.0) (2025-12-02) + +[Full Changelog](https://github.com/googleforgames/agones/compare/v1.53.0...v1.54.0) + +**Breaking changes** +- Update supported Kubernetes versions to 1.32, 1.33, 1.34 by @Sivasankaran25 in https://github.com/googleforgames/agones/pull/4320 +- [Unreal] Refactor agones component to subsystem by @GloryOfNight in https://github.com/googleforgames/agones/pull/4033 +- Return GameServerAllocationUnAllocated when an game server update error occurs by @miai10 in https://github.com/googleforgames/agones/pull/4267 +- feat(autoscaler)!: Remove caBundle requirement for HTTPS URLs by @markmandel in https://github.com/googleforgames/agones/pull/4332 + +**Implemented enhancements** +- [Unreal] Add counters support to status by @GloryOfNight in https://github.com/googleforgames/agones/pull/4333 +- docs(examples): add working autoscaler-wasm example configuration by @markmandel in https://github.com/googleforgames/agones/pull/4345 +- Graduate AutopilotPassthroughPort to Stable by @Sivasankaran25 in https://github.com/googleforgames/agones/pull/4335 + +**Fixed bugs** +- Populate Env Vars for GameServer init containers by @giornetta in https://github.com/googleforgames/agones/pull/4319 +- Fix update counter to return correct values by @indurireddy-TF in https://github.com/googleforgames/agones/pull/4324 +- Fix: ensure the uninstall wait to be properly done by @lacroixthomas in https://github.com/googleforgames/agones/pull/4355 +- Fix race condition in PerNodeCounter by tracking processed events by @markmandel in https://github.com/googleforgames/agones/pull/4363 + +**Other** +- Preparation for Release v1.54.0 by @Sivasankaran25 in https://github.com/googleforgames/agones/pull/4313 +- cleanup(e2e): Scale back autoscaler timeout. by @markmandel in https://github.com/googleforgames/agones/pull/4312 +- Refactor FleetAutoscaler state from map to typed struct by @markmandel in https://github.com/googleforgames/agones/pull/4315 +- Created performance test cluster for 1.33 by @Sivasankaran25 in https://github.com/googleforgames/agones/pull/4325 +- docs: Add Wasm autoscaling documentation to FleetAutoscaler reference by @markmandel in https://github.com/googleforgames/agones/pull/4314 +- Feat: add metallb on kind / minikube to run e2e locally by @lacroixthomas in https://github.com/googleforgames/agones/pull/4318 +- build: upgrade MetalLB to v0.15.2 and use helm upgrade --install by @markmandel in https://github.com/googleforgames/agones/pull/4330 +- test: simplify autoscaler e2e tests for minikube compatibility by @markmandel in https://github.com/googleforgames/agones/pull/4331 +- cleanup(examples): Upgrade SuperTuxKart and increase timeout. by @markmandel in https://github.com/googleforgames/agones/pull/4338 +- cleanup(ci): Remove 403 link for Win 10 and minikube by @markmandel in https://github.com/googleforgames/agones/pull/4349 +- Remove assignees from update dependencies github issue creation by @igooch in https://github.com/googleforgames/agones/pull/4327 +- test: improve TestMultiClusterAllocationFromLocal flakiness. by @markmandel in https://github.com/googleforgames/agones/pull/4350 +- Cleanup on SuperTuxKart README by @markmandel in https://github.com/googleforgames/agones/pull/4344 +- Exclude wasm from example image check by @igooch in https://github.com/googleforgames/agones/pull/4353 +- docs: add section highlighting good first issue and help wanted labels by @markmandel in https://github.com/googleforgames/agones/pull/4362 +- More fixes for SuperTuxKart example to attempt to fix flakiness. by @markmandel in https://github.com/googleforgames/agones/pull/4359 +- cleanup(agones-bots): Update Agones Bot Deps. by @markmandel in https://github.com/googleforgames/agones/pull/4366 +- Bumps SuperTuxKart image version by @igooch in https://github.com/googleforgames/agones/pull/4367 +- feat: Bump golang.org/x/crypto to v0.45.0 by @indurireddy-TF in https://github.com/googleforgames/agones/pull/4370 +- Adds the build environment image to the pre_cloudbuild pipeline by @igooch in https://github.com/googleforgames/agones/pull/4372 + +**New Contributors** +- @giornetta made their first contribution in https://github.com/googleforgames/agones/pull/4319 +- @indurireddy-TF made their first contribution in https://github.com/googleforgames/agones/pull/4324 + # [v1.53.0](https://github.com/googleforgames/agones/tree/v1.53.0) (2025-10-21) [Full Changelog](https://github.com/googleforgames/agones/compare/v1.52.0...v1.53.0) diff --git a/build/release/pre_cloudbuild.yaml b/build/release/pre_cloudbuild.yaml index 37ce04a6ce..aab924fa6f 100644 --- a/build/release/pre_cloudbuild.yaml +++ b/build/release/pre_cloudbuild.yaml @@ -33,7 +33,8 @@ steps: - . # - # Creates the initial make + docker build platform + # Creates the initial make + docker build platform. + # This image is used to run subsequent 'make' commands. # - name: ubuntu args: @@ -46,7 +47,29 @@ steps: args: [build, -f, Dockerfile.build, -t, make-docker, .] # - # Ensure example images exists + # Pull the build environment image if it exists. + # This image contains all the tools needed to run the build and test commands. + # + - name: make-docker + id: pull-build-image + dir: build + env: ['REGISTRY=us-docker.pkg.dev/${PROJECT_ID}/ci'] + args: [pull-build-image] + waitFor: + - build-make-docker + + # + # Build the build environment image if we were unable to pull it. + # + - name: "make-docker" + id: "ensure-build-image" + dir: "build" + args: ["ensure-build-image"] + waitFor: + - pull-build-image + + # + # Ensure example images exists. Requires build image to exist in Cloudbuild environment. # - name: make-docker id: test-examples-on-gar @@ -55,14 +78,19 @@ steps: - REGISTRY=us-docker.pkg.dev/${PROJECT_ID} - DOCKER_RUN_ARGS=--network=cloudbuild args: [test-examples-on-gar] + waitFor: + - ensure-build-image # - # Deploys the site by taking in the base version and deploying the previous version + # Deploys the site by taking in the base version and deploying the previous version. # - name: make-docker id: release-deploy-site dir: build env: - VERSION=${_VERSION} + - DOCKER_RUN_ARGS=--network=cloudbuild args: [release-deploy-site] + waitFor: + - test-examples-on-gar timeout: 5400s diff --git a/install/helm/agones/Chart.yaml b/install/helm/agones/Chart.yaml index a29d9f2379..e4dfb9053b 100644 --- a/install/helm/agones/Chart.yaml +++ b/install/helm/agones/Chart.yaml @@ -15,8 +15,8 @@ # Declare variables to be passed into your templates. apiVersion: v1 -appVersion: "1.54.0-dev" -version: 1.54.0-dev +appVersion: "1.54.0" +version: 1.54.0 name: agones description: a library for hosting, running and scaling dedicated game servers on Kubernetes. keywords: diff --git a/install/helm/agones/values.yaml b/install/helm/agones/values.yaml index 05cf048f16..f23ba3abcb 100644 --- a/install/helm/agones/values.yaml +++ b/install/helm/agones/values.yaml @@ -320,7 +320,7 @@ agones: timeoutSeconds: 1 image: registry: us-docker.pkg.dev/agones-images/release - tag: 1.54.0-dev + tag: 1.54.0 controller: name: agones-controller pullPolicy: IfNotPresent diff --git a/install/yaml/install.yaml b/install/yaml/install.yaml index 693317a1fd..515258d23d 100644 --- a/install/yaml/install.yaml +++ b/install/yaml/install.yaml @@ -59,7 +59,7 @@ metadata: namespace: agones-system labels: app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm --- @@ -84,7 +84,7 @@ metadata: namespace: agones-system labels: app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm --- @@ -109,7 +109,7 @@ metadata: namespace: default labels: app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm --- @@ -121,7 +121,7 @@ metadata: namespace: agones-system labels: app: agones - chart: "agones-1.54.0-dev" + chart: "agones-1.54.0" release: "agones-manual" heritage: "Helm" type: Opaque @@ -138,7 +138,7 @@ metadata: namespace: agones-system labels: app: agones - chart: "agones-1.54.0-dev" + chart: "agones-1.54.0" release: "agones-manual" heritage: "Helm" data: @@ -154,7 +154,7 @@ metadata: namespace: agones-system labels: app: agones - chart: "agones-1.54.0-dev" + chart: "agones-1.54.0" release: "agones-manual" heritage: "Helm" data: @@ -170,7 +170,7 @@ metadata: namespace: agones-system labels: app: agones - chart: "agones-1.54.0-dev" + chart: "agones-1.54.0" release: "agones-manual" heritage: "Helm" data: @@ -200,7 +200,7 @@ metadata: labels: component: crd app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -6441,7 +6441,7 @@ metadata: labels: component: crd app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -7153,7 +7153,7 @@ metadata: labels: component: crd app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -13226,7 +13226,7 @@ metadata: labels: component: crd app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm name: gameserverallocationpolicies.multicluster.agones.dev @@ -13305,7 +13305,7 @@ metadata: labels: component: crd app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -19514,7 +19514,7 @@ metadata: name: agones-allocator labels: app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm rules: @@ -19544,7 +19544,7 @@ metadata: name: agones-controller labels: app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm rules: @@ -19598,7 +19598,7 @@ metadata: name: agones-sdk labels: app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm rules: @@ -19617,7 +19617,7 @@ metadata: name: agones-allocator labels: app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm subjects: @@ -19636,7 +19636,7 @@ metadata: name: agones-controller-access labels: app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm subjects: @@ -19688,7 +19688,7 @@ metadata: namespace: default labels: app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm subjects: @@ -19722,7 +19722,7 @@ metadata: labels: agones.dev/role: controller app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -19756,7 +19756,7 @@ metadata: labels: agones.dev/role: extensions app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -19776,7 +19776,7 @@ metadata: labels: component: ping app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -19799,7 +19799,7 @@ metadata: labels: component: ping app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -19836,7 +19836,7 @@ metadata: labels: agones.dev/role: extensions app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -19873,7 +19873,7 @@ metadata: labels: component: allocator app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -19896,7 +19896,7 @@ metadata: labels: multicluster.agones.dev/role: allocator app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -19930,7 +19930,7 @@ metadata: labels: component: controller app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -19972,7 +19972,7 @@ spec: serviceAccountName: agones-controller containers: - name: agones-controller - image: "us-docker.pkg.dev/agones-images/release/agones-controller:1.54.0-dev" + image: "us-docker.pkg.dev/agones-images/release/agones-controller:1.54.0" imagePullPolicy: IfNotPresent securityContext: runAsNonRoot: true @@ -19986,7 +19986,7 @@ spec: - name: MAX_PORT value: "8000" - name: SIDECAR_IMAGE # overwrite the GameServer sidecar image that is used - value: "us-docker.pkg.dev/agones-images/release/agones-sdk:1.54.0-dev" + value: "us-docker.pkg.dev/agones-images/release/agones-sdk:1.54.0" - name: ALWAYS_PULL_SIDECAR # set the sidecar imagePullPolicy to Always value: "false" - name: SIDECAR_CPU_REQUEST @@ -20106,7 +20106,7 @@ metadata: labels: component: extensions app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -20150,7 +20150,7 @@ spec: terminationGracePeriodSeconds: 27 containers: - name: agones-extensions - image: "us-docker.pkg.dev/agones-images/release/agones-extensions:1.54.0-dev" + image: "us-docker.pkg.dev/agones-images/release/agones-extensions:1.54.0" imagePullPolicy: IfNotPresent securityContext: runAsNonRoot: true @@ -20260,7 +20260,7 @@ metadata: labels: component: ping app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -20295,7 +20295,7 @@ spec: priorityClassName: agones-system containers: - name: agones-ping - image: "us-docker.pkg.dev/agones-images/release/agones-ping:1.54.0-dev" + image: "us-docker.pkg.dev/agones-images/release/agones-ping:1.54.0" imagePullPolicy: IfNotPresent securityContext: runAsNonRoot: true @@ -20373,7 +20373,7 @@ spec: secretName: allocator-client-ca containers: - name: agones-allocator - image: "us-docker.pkg.dev/agones-images/release/agones-allocator:1.54.0-dev" + image: "us-docker.pkg.dev/agones-images/release/agones-allocator:1.54.0" imagePullPolicy: IfNotPresent securityContext: runAsNonRoot: true @@ -20460,7 +20460,7 @@ metadata: labels: component: controller app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm spec: @@ -20526,7 +20526,7 @@ metadata: labels: component: controller app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm webhooks: @@ -20569,7 +20569,7 @@ metadata: labels: component: controller app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm webhooks: @@ -20605,7 +20605,7 @@ metadata: labels: component: controller app: agones - chart: agones-1.54.0-dev + chart: agones-1.54.0 release: agones-manual heritage: Helm webhooks: diff --git a/sdks/csharp/sdk/AgonesSDK.nuspec b/sdks/csharp/sdk/AgonesSDK.nuspec index 6c843f0944..a21d450915 100644 --- a/sdks/csharp/sdk/AgonesSDK.nuspec +++ b/sdks/csharp/sdk/AgonesSDK.nuspec @@ -2,7 +2,7 @@ AgonesSDK - 1.54.0-dev + 1.54.0 Google LLC Google LLC false diff --git a/sdks/csharp/sdk/csharp-sdk.csproj b/sdks/csharp/sdk/csharp-sdk.csproj index 20f05b39b4..a05a817c6b 100644 --- a/sdks/csharp/sdk/csharp-sdk.csproj +++ b/sdks/csharp/sdk/csharp-sdk.csproj @@ -13,7 +13,7 @@ https://agones.dev http://www.apache.org/licenses/LICENSE-2.0 AgonesSDK - 1.54.0-dev + 1.54.0 agones, googleforgames, kuberenetes, multiplayer, gameservers agones.dev Debug;Release;DebugProtoGen diff --git a/sdks/nodejs/package-lock.json b/sdks/nodejs/package-lock.json index 0592c5ff91..e702d15a5e 100644 --- a/sdks/nodejs/package-lock.json +++ b/sdks/nodejs/package-lock.json @@ -1,12 +1,12 @@ { "name": "@google-cloud/agones-sdk", - "version": "1.54.0-dev", + "version": "1.54.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@google-cloud/agones-sdk", - "version": "1.54.0-dev", + "version": "1.54.0", "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "1.10.9", diff --git a/sdks/nodejs/package.json b/sdks/nodejs/package.json index 17b7713973..7a370beb98 100644 --- a/sdks/nodejs/package.json +++ b/sdks/nodejs/package.json @@ -26,5 +26,5 @@ "publishConfig": { "access": "public" }, - "version": "1.54.0-dev" + "version": "1.54.0" } diff --git a/sdks/rust/Cargo.toml b/sdks/rust/Cargo.toml index 509f430bd9..08f5f22e19 100644 --- a/sdks/rust/Cargo.toml +++ b/sdks/rust/Cargo.toml @@ -14,7 +14,7 @@ [package] name = "agones" -version = "1.54.0-dev" +version = "1.54.0" edition = "2021" description = "The Rust SDK for Agones." license = "Apache-2.0" diff --git a/sdks/unity/package.json b/sdks/unity/package.json index 9512425e7b..d1df6663f5 100644 --- a/sdks/unity/package.json +++ b/sdks/unity/package.json @@ -1,6 +1,6 @@ { "name": "com.googleforgames.agones", - "version": "1.54.0-dev", + "version": "1.54.0", "displayName": "Agones Unity SDK", "description": "The Unity Gameserver SDK for Agones", "unity": "2019.1", diff --git a/site/config.toml b/site/config.toml index 341217a58f..2594a19293 100644 --- a/site/config.toml +++ b/site/config.toml @@ -80,17 +80,17 @@ github_repo = "https://github.com/googleforgames/agones" gcs_engine_id = "016691298986124624340:x7qv2dywdao" # current release branch. Never is rc. -release_branch = "release-1.53.0" +release_branch = "release-1.54.0" # the main version. Never is rc. -release_version = "1.53.0" +release_version = "1.54.0" # shown for production -supported_k8s = ["1.31", "1.32", "1.33"] -k8s_api_version = "1.32" -gke_example_cluster_version = "1.32" -aks_example_cluster_version = "1.33" -eks_example_cluster_version = "1.33" -minikube_example_cluster_version = "1.32.5" +supported_k8s = ["1.32", "1.33", "1.34"] +k8s_api_version = "1.33" +gke_example_cluster_version = "1.33" +aks_example_cluster_version = "1.34" +eks_example_cluster_version = "1.34" +minikube_example_cluster_version = "1.33.5" # shown in development (or the next versions that will be supported) dev_supported_k8s = ["1.32", "1.33", "1.34"] dev_k8s_api_version = "1.33" diff --git a/site/content/en/blog/releases/1.53.0.md b/site/content/en/blog/releases/1.53.0.md index 1055e61219..3db4c3f1a3 100644 --- a/site/content/en/blog/releases/1.53.0.md +++ b/site/content/en/blog/releases/1.53.0.md @@ -21,7 +21,7 @@ Note: This critical fix was also backported and is available in the v1.52.2 patc - **New Policy Type: WebAssembly (Wasm) Fleet Autoscaling**: Introduced Wasm as a new policy type option for the *FleetAutoscaler* CRD. This involved defining a new Wasm policy schema (*function, config, from.url, and hash*) and refactoring existing webhook templates into a reusable *url.configuration* template. -Check the README for details on features, installation and usage. +Check the README for details on features, installation and usage. **Breaking changes** * feat(autoscaling): CRDs for Wasm autoscaler policy by @markmandel in https://github.com/googleforgames/agones/pull/4281 @@ -75,7 +75,7 @@ Check the CHANGELOG for more details on changes. +See CHANGELOG for more details on changes. Images available with this release: @@ -96,7 +96,7 @@ Images available with this release: Helm chart available with this release: -- +- helm install agones agones/agones --version 1.53.0 > Make sure to add our stable helm repository using `helm repo add agones https://agones.dev/chart/stable` \ No newline at end of file diff --git a/site/content/en/blog/releases/1.54.0.md b/site/content/en/blog/releases/1.54.0.md new file mode 100644 index 0000000000..66c78ad0a7 --- /dev/null +++ b/site/content/en/blog/releases/1.54.0.md @@ -0,0 +1,92 @@ +--- +title: "1.54.0 - Kubernetes v1.34 Support, GKE Autopilot Passthrough Port, Simplified Autoscaling, Init Container Fixes, and New Counter State Tools." +linktitle: "1.54.0" +date: "2025-12-02" +--- + +This is the 1.54.0 release of Agones. + +Agones now supports Kubernetes 1.32,1.33,1.34 and introduces a new Counter feature that improves state management and visibility in the GameServer resource, along with a fix for a related update issue. Autoscaler configuration is easier thanks to removing the caBundle requirement for standard HTTPS endpoints. A major bug affecting missing Agones SDK environment variables in Init Containers has been resolved. This release graduates AutopilotPassthroughPort to Stable, enabling direct node-to-GameServer communication on GKE Autopilot + +- **Updated Kubernetes Version Support (v1.32, v1.33, v1.34)**: Agones now officially supports Kubernetes versions 1.32, 1.33, and 1.34, ensuring compatibility with the latest Kubernetes releases for improved performance and stability. + +- **Improved Reliability for Counter Updates**: An issue where the SDK's UpdateCounter call did not return the updated Counter values has been fixed. This correction ensures that developers immediately receive accurate count and capacity data upon successful update. + +- **Counter Status Visibility Added**: The current state (Count and Capacity) of the GameServer Counters is now exposed in the GameServer status. This allows external systems, like Allocators or FleetAutoscalers, to easily read the counter status from the Kubernetes resource. + +- **Simplified Autoscaler HTTPS Configuration**: The Autoscaler no longer requires a caBundle when accessing standard HTTPS webhook or WASM URLs served by a trusted certificate authority. This change simplifies configuration for auto scaling logic. + +- **Agones SDK Environment Variables for Init Containers**: Fixed an issue where Agones SDK environment variables (like GRPC and HTTP ports) were not being injected into GameServer Init Containers. This correction ensures your Init Containers can communicate with the Agones SDK server during setup, enabling complex initialization logic before the main game server starts. + +- **Autopilot Passthrough Port Graduation to Stable**: The AutopilotPassthroughPort feature has been graduated to Stable. This allows complex game server architectures to expose specific ports that bypass the Agones sidecar logic for direct node-to-GameServer communication. + +Check the README for details on features, installation and usage. + +**Breaking changes** +- Update supported Kubernetes versions to 1.32, 1.33, 1.34 by @Sivasankaran25 in https://github.com/googleforgames/agones/pull/4320 +- [Unreal] Refactor agones component to subsystem by @GloryOfNight in https://github.com/googleforgames/agones/pull/4033 +- Return GameServerAllocationUnAllocated when an game server update error occurs by @miai10 in https://github.com/googleforgames/agones/pull/4267 +- feat(autoscaler)!: Remove caBundle requirement for HTTPS URLs by @markmandel in https://github.com/googleforgames/agones/pull/4332 + +**Implemented enhancements** +- [Unreal] Add counters support to status by @GloryOfNight in https://github.com/googleforgames/agones/pull/4333 +- docs(examples): add working autoscaler-wasm example configuration by @markmandel in https://github.com/googleforgames/agones/pull/4345 +- Graduate AutopilotPassthroughPort to Stable by @Sivasankaran25 in https://github.com/googleforgames/agones/pull/4335 + +**Fixed bugs** +- Populate Env Vars for GameServer init containers by @giornetta in https://github.com/googleforgames/agones/pull/4319 +- Fix update counter to return correct values by @indurireddy-TF in https://github.com/googleforgames/agones/pull/4324 +- Fix: ensure the uninstall wait to be properly done by @lacroixthomas in https://github.com/googleforgames/agones/pull/4355 +- Fix race condition in PerNodeCounter by tracking processed events by @markmandel in https://github.com/googleforgames/agones/pull/4363 + +**Other** +- Preparation for Release v1.54.0 by @Sivasankaran25 in https://github.com/googleforgames/agones/pull/4313 +- cleanup(e2e): Scale back autoscaler timeout. by @markmandel in https://github.com/googleforgames/agones/pull/4312 +- Refactor FleetAutoscaler state from map to typed struct by @markmandel in https://github.com/googleforgames/agones/pull/4315 +- Created performance test cluster for 1.33 by @Sivasankaran25 in https://github.com/googleforgames/agones/pull/4325 +- docs: Add Wasm autoscaling documentation to FleetAutoscaler reference by @markmandel in https://github.com/googleforgames/agones/pull/4314 +- Feat: add metallb on kind / minikube to run e2e locally by @lacroixthomas in https://github.com/googleforgames/agones/pull/4318 +- build: upgrade MetalLB to v0.15.2 and use helm upgrade --install by @markmandel in https://github.com/googleforgames/agones/pull/4330 +- test: simplify autoscaler e2e tests for minikube compatibility by @markmandel in https://github.com/googleforgames/agones/pull/4331 +- cleanup(examples): Upgrade SuperTuxKart and increase timeout. by @markmandel in https://github.com/googleforgames/agones/pull/4338 +- cleanup(ci): Remove 403 link for Win 10 and minikube by @markmandel in https://github.com/googleforgames/agones/pull/4349 +- Remove assignees from update dependencies github issue creation by @igooch in https://github.com/googleforgames/agones/pull/4327 +- test: improve TestMultiClusterAllocationFromLocal flakiness. by @markmandel in https://github.com/googleforgames/agones/pull/4350 +- Cleanup on SuperTuxKart README by @markmandel in https://github.com/googleforgames/agones/pull/4344 +- Exclude wasm from example image check by @igooch in https://github.com/googleforgames/agones/pull/4353 +- docs: add section highlighting good first issue and help wanted labels by @markmandel in https://github.com/googleforgames/agones/pull/4362 +- More fixes for SuperTuxKart example to attempt to fix flakiness. by @markmandel in https://github.com/googleforgames/agones/pull/4359 +- cleanup(agones-bots): Update Agones Bot Deps. by @markmandel in https://github.com/googleforgames/agones/pull/4366 +- Bumps SuperTuxKart image version by @igooch in https://github.com/googleforgames/agones/pull/4367 +- feat: Bump golang.org/x/crypto to v0.45.0 by @indurireddy-TF in https://github.com/googleforgames/agones/pull/4370 +- Adds the build environment image to the pre_cloudbuild pipeline by @igooch in https://github.com/googleforgames/agones/pull/4372 + +**New Contributors** +- @giornetta made their first contribution in https://github.com/googleforgames/agones/pull/4319 +- @indurireddy-TF made their first contribution in https://github.com/googleforgames/agones/pull/4324 + +See CHANGELOG for more details on changes. + +Images available with this release: + +- [us-docker.pkg.dev/agones-images/release/agones-controller:1.54.0](https://us-docker.pkg.dev/agones-images/release/agones-controller:1.54.0) +- [us-docker.pkg.dev/agones-images/release/agones-sdk:1.54.0](https://us-docker.pkg.dev/agones-images/release/agones-sdk:1.54.0) +- [us-docker.pkg.dev/agones-images/release/agones-ping:1.54.0](https://us-docker.pkg.dev/agones-images/release/agones-ping:1.54.0) +- [us-docker.pkg.dev/agones-images/release/agones-allocator:1.54.0](https://us-docker.pkg.dev/agones-images/release/agones-allocator:1.54.0) +- [us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.14](https://us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.14) +- [us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.20](https://us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.20) +- [us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.23](https://us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.23) +- [us-docker.pkg.dev/agones-images/examples/crd-client:0.22](https://us-docker.pkg.dev/agones-images/examples/crd-client:0.22) +- [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.39](https://us-docker.pkg.dev/agones-images/examples/simple-game-server:0.39) +- [us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.21](https://us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.21) +- [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.5](https://us-docker.pkg.dev/agones-images/examples/xonotic-example:2.5) + +Helm chart available with this release: + +- + helm install agones agones/agones --version 1.54.0 + +> Make sure to add our stable helm repository using `helm repo add agones https://agones.dev/chart/stable` \ No newline at end of file diff --git a/site/content/en/docs/Guides/Client SDKs/unreal.md b/site/content/en/docs/Guides/Client SDKs/unreal.md index 914238afa6..bce033bcea 100644 --- a/site/content/en/docs/Guides/Client SDKs/unreal.md +++ b/site/content/en/docs/Guides/Client SDKs/unreal.md @@ -120,51 +120,6 @@ PublicDependencyModuleNames.AddRange( "Agones", }); ``` -{{% feature expiryVersion="1.54.0" %}} -- Add component in header -```c++ -#include "AgonesComponent.h" - -UPROPERTY(EditAnywhere, BlueprintReadWrite) -UAgonesComponent* AgonesSDK; -``` -- Initialize component in GameMode -```c++ -#include "AgonesComponent.h" -#include "Classes.h" - -ATestGameMode::ATestGameMode() -{ - AgonesSDK = CreateDefaultSubobject(TEXT("AgonesSDK")); -} -``` - -- Use the Agones component to call PlayerReady -```c++ -void APlatformGameSession::PostLogin(APlayerController* NewPlayer) -{ - // Empty brances are for callbacks on success and errror. - AgonesSDK->PlayerConnect("netspeak-player", {}, {}); -} -``` - -#### Using Blueprints (UE5) -- Add Component to your Blueprint GameMode -![component](../../../../images/unreal5_bp_component.png) -- This will automatically call `/health` every 10 seconds and once `/gameserver` calls are succesful it will call `/ready`. - -- Accessing other functionality of Agones can be done via adding a node in Blueprints. -![actions](../../../../images/unreal5_bp_actions.png) - -#### Using Blueprints (UE4) -- Add Component to your Blueprint GameMode -![component](../../../../images/unreal_bp_component.png) -- This will automatically call `/health` every 10 seconds and once `/gameserver` calls are succesful it will call `/ready`. - -- Accessing other functionality of Agones can be done via adding a node in Blueprints. -![actions](../../../../images/unreal_bp_actions.png) -{{% /feature %}} -{{% feature publishVersion="1.54.0" %}} - Add subsystem in header ```c++ #include "AgonesSubsystem.h" @@ -186,7 +141,6 @@ void APlatformGameSession::PostLogin(APlayerController* NewPlayer) #### Using Blueprints - Accessing Agones functionality can be done via Blueprints. ![usage](../../../../images/unreal_bp_usage.png) -{{% /feature %}} ## Configuration Options @@ -196,9 +150,7 @@ A number of options can be altered via config files in Unreal these are supplied [/Script/Agones.AgonesComponent] HttpPort=1337 HealthRateSeconds=5.0 -{{% feature publishVersion="1.54.0" %}} bDisableAutoHealthPing=false -{{% /feature %}} bDisableAutoConnect=true ``` diff --git a/site/content/en/docs/Guides/feature-stages.md b/site/content/en/docs/Guides/feature-stages.md index 492a6842f6..43ba8f44f7 100644 --- a/site/content/en/docs/Guides/feature-stages.md +++ b/site/content/en/docs/Guides/feature-stages.md @@ -26,7 +26,6 @@ be disabled. The current set of `alpha` and `beta` feature gates: -{{% feature publishVersion="1.54.0" %}} | Feature Name | Gate | Default | Stage | Since | |----------------------------------------------------------------------------------------------------------------------------|------------------------------------|----------|----------|--------| @@ -45,27 +44,7 @@ The current set of `alpha` and `beta` feature gates: | [Wasm Autoscaler](https://github.com/googleforgames/agones/issues/4080) | `WasmAutoscaler` | Disabled | `Alpha` | 1.54.0 | | Example Gate (not in use) | `Example` | Disabled | None | 0.13.0 | -{{% /feature %}} -{{% feature expiryVersion="1.54.0" %}} - -| Feature Name | Gate | Default | Stage | Since | -|----------------------------------------------------------------------------------------------------------------------------|------------------------------------|----------|----------|--------| -| [CountsAndLists](https://github.com/googleforgames/agones/issues/2716) | `CountsAndLists` | Enabled | `Beta` | 1.41.0 | -| [DisableResyncOnSDKServer](https://github.com/googleforgames/agones/issues/3377) | `DisableResyncOnSDKServer` | Enabled | `Stable` | 1.49.0 | -| [Support Passthrough on GKE Autopilot](https://github.com/googleforgames/agones/issues/3721) | `AutopilotPassthroughPort` | Enabled | `Beta` | 1.43.0 | -| [Support for Extended Duration Pods on GKE Autopilot (*1.28+ only*)](https://github.com/googleforgames/agones/issues/3386) | `GKEAutopilotExtendedDurationPods` | Enabled | `Beta` | 1.44.0 | -| [Port Policy None](https://github.com/googleforgames/agones/issues/3804) | `PortPolicyNone` | Enabled | `Beta` | 1.49.0 | -| [Multiple dynamic port ranges](https://github.com/googleforgames/agones/issues/1911) | `PortRanges` | Enabled | `Beta` | 1.49.0 | -| [Rolling Update Fixes](https://github.com/googleforgames/agones/issues/3688) | `RollingUpdateFix` | Enabled | `Beta` | 1.50.0 | -| [GameServer player capacity filtering on GameServerAllocations](https://github.com/googleforgames/agones/issues/1239) | `PlayerAllocationFilter` | Disabled | `Alpha` | 1.14.0 | -| [Player Tracking]({{< ref "/docs/Guides/player-tracking.md" >}}) | `PlayerTracking` | Disabled | `Alpha` | 1.6.0 | -| [Scheduled Fleet Autoscaling](https://github.com/googleforgames/agones/issues/3008) | `ScheduledAutoscaler` | Enabled | `Beta` | 1.51.0 | -| [Extend Webhook autoscaler to send fleet metadata with the request](https://github.com/googleforgames/agones/issues/3951) | `FleetAutoscaleRequestMetaData` | Disabled | `Alpha` | 1.48.0 | -| [Sidecar Containers](https://github.com/googleforgames/agones/issues/3642) | `SidecarContainers` | Disabled | `Alpha` | 1.49.0 | -| Example Gate (not in use) | `Example` | Disabled | None | 0.13.0 | - -{{% /feature %}} [fleet-updates]: {{% relref "./fleet-updates.md#notifying-gameservers-on-fleet-updatedownscale" %}} diff --git a/site/content/en/docs/Installation/_index.md b/site/content/en/docs/Installation/_index.md index 8e8200b170..696cdc67f7 100644 --- a/site/content/en/docs/Installation/_index.md +++ b/site/content/en/docs/Installation/_index.md @@ -47,7 +47,8 @@ The following table lists recent Agones versions and their corresponding require | Agones version | Kubernetes version(s) | | -------------- | ------------------ | -| 1.53 | {{% k8s-version %}} | +| 1.54 | {{% k8s-version %}} | +| 1.53 | 1.31, 1.32, 1.33 | | 1.52 | 1.31, 1.32, 1.33 | | 1.51 | 1.31, 1.32, 1.33 | | 1.50 | 1.31, 1.32, 1.33 | diff --git a/site/content/en/docs/Reference/fleetautoscaler.md b/site/content/en/docs/Reference/fleetautoscaler.md index 9cb8e8976e..0cc79d7d3c 100644 --- a/site/content/en/docs/Reference/fleetautoscaler.md +++ b/site/content/en/docs/Reference/fleetautoscaler.md @@ -246,7 +246,6 @@ The example of the webhook written in Go could be found {{< ghlink href="example It implements the {{< ghlink href="examples/autoscaler-webhook/" >}}scaling logic{{< /ghlink >}} based on the percentage of allocated gameservers in a fleet. -{{% feature publishVersion="1.54.0" %}} ## Wasm Autoscaling @@ -370,7 +369,6 @@ The example of a Wasm autoscaler written in Go using the Extism PDK can be found It implements {{< ghlink href="examples/autoscaler-wasm/" >}}scaling logic{{< /ghlink >}} that maintains a buffer of available replicas based on allocated game servers. -{{% /feature %}} ## Schedule and Chain Autoscaling @@ -533,7 +531,6 @@ The `spec` field of the `FleetAutoscaler` is composed as follows: - `bufferSize` is the size of a buffer based on the List capacity that is available over the current aggregate List length in the Fleet (available capacity). It can be specified either as an absolute value or percentage format. - `minCapacity` is the minimum aggregate List total capacity across the fleet. If zero, it is ignored. If non zero, it must be smaller than MaxCapacity and bigger than BufferSize. - `maxCapacity` is the maximum aggregate List total capacity across the fleet. It must be bigger than both MinCapacity and BufferSize. Required field. -{{% feature publishVersion="1.54.0" %}} - `wasm` parameters of the wasm policy type - The following are subfields of the `wasm` field, which contains the settings for WebAssembly-based autoscaling: - `function` is the exported function to call in the wasm module. Optional, defaults to 'scale'. @@ -548,7 +545,6 @@ The `spec` field of the `FleetAutoscaler` is composed as follows: - `url` gives the direct URL location of the Wasm module, in standard URL form (`[scheme://]host:port/path`). Exactly one of `url` or `service` must be specified. Optional. - `caBundle` is a PEM encoded certificate authority bundle for HTTPS. Base64 encoded PEM string. Required only for HTTPS with custom certificates. - `hash` is an optional hex encoded sha256 hash to verify the integrity of the Wasm module. Optional but recommended. -{{% /feature %}} - `sync` is autoscaling sync strategy. It defines when to run the autoscaling - `type` is type of the sync. For now only "FixedInterval" is available - `fixedInterval` parameters of the fixedInterval sync diff --git a/site/layouts/partials/navbar.html b/site/layouts/partials/navbar.html index edfe88751a..66a343f428 100644 --- a/site/layouts/partials/navbar.html +++ b/site/layouts/partials/navbar.html @@ -27,6 +27,7 @@ {{ if (gt (len .Site.Home.Translations) 0) }} diff --git a/test/upgrade/versionMap.yaml b/test/upgrade/versionMap.yaml index 702e0c0515..06be4b7ecb 100644 --- a/test/upgrade/versionMap.yaml +++ b/test/upgrade/versionMap.yaml @@ -23,19 +23,6 @@ data: version-mappings.json: | { "k8sToAgonesVersions": { - "1.31": [ - "1.44.0", - "1.45.0", - "1.46.0", - "1.47.0", - "1.48.0", - "1.49.0", - "1.50.0", - "1.51.0", - "1.52.2", - "1.53.0", - "Dev" - ], "1.32": [ "1.48.0", "1.49.0", @@ -43,6 +30,7 @@ data: "1.51.0", "1.52.2", "1.53.0", + "1.54.0", "Dev" ], "1.33": [ @@ -50,9 +38,11 @@ data: "1.51.0", "1.52.2", "1.53.0", + "1.54.0", "Dev" ], "1.34": [ + "1.54.0", "Dev" ] }, @@ -113,6 +103,10 @@ data: "alphaGates": ["FleetAutoscaleRequestMetaData", "PlayerAllocationFilter", "PlayerTracking", "SidecarContainers"], "betaGates": ["AutopilotPassthroughPort", "CountsAndLists", "GKEAutopilotExtendedDurationPods", "PortPolicyNone", "PortRanges", "RollingUpdateFix", "ScheduledAutoscaler"] }, + "1.54.0": { + "alphaGates": ["FleetAutoscaleRequestMetaData", "PlayerAllocationFilter", "PlayerTracking", "SidecarContainers", "WasmAutoscaler"], + "betaGates": ["CountsAndLists", "GKEAutopilotExtendedDurationPods", "PortPolicyNone", "PortRanges", "RollingUpdateFix", "ScheduledAutoscaler"] + }, "Dev": { "alphaGates": ["FleetAutoscaleRequestMetaData", "PlayerAllocationFilter", "PlayerTracking", "SidecarContainers", "WasmAutoscaler"], "betaGates": ["CountsAndLists", "GKEAutopilotExtendedDurationPods", "PortPolicyNone", "PortRanges", "RollingUpdateFix", "ScheduledAutoscaler"]