Skip to content

Commit

Permalink
Merge branch 'main' into update-rust-sdk
Browse files Browse the repository at this point in the history
  • Loading branch information
gongmax authored Oct 9, 2024
2 parents 6fd359a + 7cae9e3 commit c81f87c
Show file tree
Hide file tree
Showing 19 changed files with 225 additions and 78 deletions.
46 changes: 45 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,50 @@
# Changelog

## [v1.43 .0](https://github.com/googleforgames/agones/tree/v1.43.0) (2024-08-27)
## [v1.44.0](https://github.com/googleforgames/agones/tree/v1.44.0) (2024-10-08)

[Full Changelog](https://github.com/googleforgames/agones/compare/v1.43.0...v1.44.0)

**Implemented enhancements:**
- Unreal SDK - Added counters to unreal sdk by @GloryOfNight in https://github.com/googleforgames/agones/pull/3935
- Unreal SDK - Add Support for GameServer Status Addresses by @KAllan357 in https://github.com/googleforgames/agones/pull/3932
- Updates upgrade test to install multiple versions of Agones on a cluster in succession by @igooch in https://github.com/googleforgames/agones/pull/3982
- Adds game server template with containerized sdk-client-test by @igooch in https://github.com/googleforgames/agones/pull/3987
- Adds clusters for the in place upgrades tests by @igooch in https://github.com/googleforgames/agones/pull/3990
- Test in place upgrades run tests by @igooch in https://github.com/googleforgames/agones/pull/3991
- Move Feature GKEAutopilotExtendedDurationPods To Beta by @kamaljeeti in https://github.com/googleforgames/agones/pull/4006
**Fixed bugs:**
- fix: remove bad character from metrics markdown by @code-eg in https://github.com/googleforgames/agones/pull/3981
- Updating UpdateList to update the values on a list by @chrisfoster121 in https://github.com/googleforgames/agones/pull/3899
- Cleanup Patch Sidecar Logging by @markmandel in https://github.com/googleforgames/agones/pull/3973
- Refactor metrics registry exporter by @kamaljeeti in https://github.com/googleforgames/agones/pull/3989
- Fix the build-e2e error by @gongmax in https://github.com/googleforgames/agones/pull/4009
- Add a flag to sdkserver to avoid a collision on port 8080 by @KAllan357 in https://github.com/googleforgames/agones/pull/4010
**Other:**
- Update the note at the top of the player tracking docs by @roberthbailey in https://github.com/googleforgames/agones/pull/3974
- Adds schedule and chain policy to fleetautoscaler documentation by @indexjoseph in https://github.com/googleforgames/agones/pull/3934
- Improve documentation to run performance script by @vicentefb in https://github.com/googleforgames/agones/pull/3948
- Preparation for Release v1.44.0 by @kamaljeeti in https://github.com/googleforgames/agones/pull/3975
- Add instructions for running Agones on Minikube with the Windows Docker driver by @brightestpixel in https://github.com/googleforgames/agones/pull/3965
- Use Markdown when use k8s-api-version variable by @peterzhongyi in https://github.com/googleforgames/agones/pull/3964
- Refactor Terraform by @kamaljeeti in https://github.com/googleforgames/agones/pull/3958
- Created performance cluster 1.29 by @ashutosji in https://github.com/googleforgames/agones/pull/3986
- Adding missing documentation about: add option for extensions components to use host network and configure ports by @Orza in https://github.com/googleforgames/agones/pull/3912
- fix: correct misspelled metric in docs by @antiphp in https://github.com/googleforgames/agones/pull/3999
- Add finalizer name change to create gameserver example by @indexjoseph in https://github.com/googleforgames/agones/pull/4005
- Formatting code with gofmt by @cuishuang in https://github.com/googleforgames/agones/pull/4000
- Add 'Trace' to LogLevel in GameServer.Spec.SdkServer by @0xaravindh in https://github.com/googleforgames/agones/pull/3995
- Upgrade to Golang Version 1.22.6 and Golangci lint version v1.61.0 by @0xaravindh in https://github.com/googleforgames/agones/pull/3988
- Update the go version upgrade template by @gongmax in https://github.com/googleforgames/agones/pull/4011

**New Contributors:**
- @GloryOfNight made their first contribution in https://github.com/googleforgames/agones/pull/3935
- @brightestpixel made their first contribution in https://github.com/googleforgames/agones/pull/3965
- @code-eg made their first contribution in https://github.com/googleforgames/agones/pull/3981
- @chrisfoster121 made their first contribution in https://github.com/googleforgames/agones/pull/3899
- @cuishuang made their first contribution in https://github.com/googleforgames/agones/pull/4000
- @0xaravindh made their first contribution in https://github.com/googleforgames/agones/pull/3995

## [v1.43.0](https://github.com/googleforgames/agones/tree/v1.43.0) (2024-08-27)

[Full Changelog](https://github.com/googleforgames/agones/compare/v1.42.0...v1.43.0)

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ the [Project Security Policy](.github/SECURITY.md)

Please read the [contributing](CONTRIBUTING.md) guide for directions on submitting Pull Requests to Agones, and community membership governance.

See the [Developing, Testing and Building Agones](build/README.md) documentation for developing, testing and building Agones from source.
See the [Developing, Testing and Building Agones](build/README.md) documentation for developing, testing and building Agones from source. For adding a new field to one of the Custom Resource Definitions refer to [Development Work on Agones Custom Resource Definitions (CRDs)](install/helm/agones/README.md).

For Agones client SDK development refer to [Developing, Testing, and Building Agones Client SDKs](sdks/README.md).

Expand Down
2 changes: 1 addition & 1 deletion build/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#

# base version target. This is usually the next release.
base_version = 1.44.0
base_version = 1.45.0

#
# All of the following can be overwritten with environment variables
Expand Down
4 changes: 2 additions & 2 deletions install/helm/agones/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
# Declare variables to be passed into your templates.

apiVersion: v1
appVersion: "1.44.0-dev"
version: 1.44.0-dev
appVersion: "1.45.0-dev"
version: 1.45.0-dev
name: agones
description: a library for hosting, running and scaling dedicated game servers on Kubernetes.
keywords:
Expand Down
66 changes: 66 additions & 0 deletions install/helm/agones/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,69 @@
This chart installs the Agones application and defines deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.

See [Install Agones using Helm](https://agones.dev/site/docs/installation/install-agones/helm/) for installation and configuration instructions.

## Development Work on Agones Custom Resource Definitions (CRDs)

Agones [extends the Kubernetes API with CustomResourceDefinitions](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/) for the kinds `Fleet`, `GameServerSet`, `GameServer`, `FleetAutoscaler`. (`GameServerAllocation` does not a have CRD.) Regardless of installation method, the definitions for the Agones Custom Resources are in the [agones/install/helm/agones/templates/crds](./templates/crds/) directory. The double braces `{{ }}` in the CRDs and elsewhere are [Helm chart template](https://helm.sh/docs/chart_template_guide/getting_started/) features.

### Adding a New Field to a CRD

> [!IMPORTANT]
>
> Any new *required* field in a CRD must be non-nullable **and** have a default. We define a field as required if the controller throws a panic or error when it encounters a `nil` value for that field. Most new fields should be `nullable: true`, and the controller should be able to handle a `nil` value without a panic or error.
>
> This ensures that after an Agones upgrade to a version that introduces a new field, the upgraded controller does not panic or error when encountering an older custom resource that was created before the Agones upgrade.
```yaml
foo:
title: Example required CRD field. Non-nullable with default.
type: string
enum:
- foo1
- foo2
- foo3
default: foo3
bar:
title: Example non-required CRD field. Nullable with optional default.
type: object
nullable: true
properties:
barCapacity:
type: integer
minimum: 0
default: 99 # Default for a nullable field is optional
```
Once you have added a new field to a CRD, generate the values for the `install.yaml` file by running `~/agones/build$ make gen-install`. This ensure that the `yaml` installation methods has the same values as the preferred Helm installation method.

If the above example fields were added, for example, to the [_gameserverspecschema.yaml](./templates/crds/_gameserverspecschema.yaml), then the fields should also be added to the `GameServerSpec` struct in [gameserver.go](../../../pkg/apis/agones/v1/gameserver.go).

```go
type GameServerSpec struct {
...
Foo apis.Foos `json:"foo"`
Bar *apis.Bars `json:"bar,omitempty"`
...
}

const (
// Foo1 enum value for testing CRD defaulting
Foo1 Foos = "foo1"
// Foo2 enum value for testing CRD defaulting
Foo2 Foos = "foo2"
// Foo3 enum value for testing CRD defaulting
Foo3 Foos = "foo3"
)

// Foos enum values for testing CRD defaulting
type Foos string

// Bars tracks the initial player capacity
type Bars struct {
BarCapacity int64 `json:"barCapacity,omitempty"`
}
```

### Removing an Existing Field From a CRD

Keep in mind that there can only be one definition of a `kind` in the `apiVersion: agones.dev/v1` in a Kubernetes cluster. This means that change to a CRD during an upgrade, downgrade, or Feature Gate change of Agones is immediately applied to custom resources in the cluster. Breaking changes to fields may be covered under our [SDK deprecation policy](../../../site/content/en/docs/Installation/upgrading.md).
2 changes: 1 addition & 1 deletion install/helm/agones/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ agones:
topologySpreadConstraints: {}
image:
registry: us-docker.pkg.dev/agones-images/release
tag: 1.44.0-dev
tag: 1.45.0-dev
controller:
name: agones-controller
pullPolicy: IfNotPresent
Expand Down
Loading

0 comments on commit c81f87c

Please sign in to comment.