diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a3786e702..cd1a73821f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Change Log +## [v0.4.0](https://github.com/GoogleCloudPlatform/agones/tree/v0.4.0) (2018-09-04) +[Full Changelog](https://github.com/GoogleCloudPlatform/agones/compare/v0.4.0.rc...v0.4.0) + +**Closed issues:** + +- Release 0.4.0.rc [\#330](https://github.com/GoogleCloudPlatform/agones/issues/330) + +**Merged pull requests:** + +- Fix yaml file paths [\#339](https://github.com/GoogleCloudPlatform/agones/pull/339) ([oskoi](https://github.com/oskoi)) +- Add Troubleshooting section to Build doc [\#337](https://github.com/GoogleCloudPlatform/agones/pull/337) ([victor-prodan](https://github.com/victor-prodan)) +- Preparing for 0.4.0 release next week. [\#333](https://github.com/GoogleCloudPlatform/agones/pull/333) ([markmandel](https://github.com/markmandel)) + ## [v0.4.0.rc](https://github.com/GoogleCloudPlatform/agones/tree/v0.4.0.rc) (2018-08-28) [Full Changelog](https://github.com/GoogleCloudPlatform/agones/compare/v0.3.0...v0.4.0.rc) @@ -19,6 +32,7 @@ **Fixed bugs:** - Fleet allocation request could not find fleet [\#324](https://github.com/GoogleCloudPlatform/agones/issues/324) +- Hotfix: Ensure multiple Pods don't get created for a GameServer [\#332](https://github.com/GoogleCloudPlatform/agones/pull/332) ([markmandel](https://github.com/markmandel)) - Fleet Allocation via REST was failing [\#325](https://github.com/GoogleCloudPlatform/agones/pull/325) ([markmandel](https://github.com/markmandel)) - Make sure the test-e2e ensures the build image. [\#322](https://github.com/GoogleCloudPlatform/agones/pull/322) ([markmandel](https://github.com/markmandel)) - Update getting started guides with kubectl custom columns [\#319](https://github.com/GoogleCloudPlatform/agones/pull/319) ([markmandel](https://github.com/markmandel)) @@ -33,6 +47,7 @@ **Merged pull requests:** +- Changelog, and documentation changes for 0.4.0.rc [\#331](https://github.com/GoogleCloudPlatform/agones/pull/331) ([markmandel](https://github.com/markmandel)) - Added github.com/spf13/viper to dep toml [\#327](https://github.com/GoogleCloudPlatform/agones/pull/327) ([markmandel](https://github.com/markmandel)) - Add Minikube instructions [\#321](https://github.com/GoogleCloudPlatform/agones/pull/321) ([slartibaartfast](https://github.com/slartibaartfast)) - Convert Go example into multi-stage Docker build [\#320](https://github.com/GoogleCloudPlatform/agones/pull/320) ([markmandel](https://github.com/markmandel)) diff --git a/docs/access_api.md b/docs/access_api.md index 7e8559a7a0..d18e82bc97 100644 --- a/docs/access_api.md +++ b/docs/access_api.md @@ -83,7 +83,7 @@ func main() { Spec: v1alpha1.GameServerSpec{ Template: corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ - Containers: []corev1.Container{{Name: "udp-server", Image: "gcr.io/agones-images/udp-server:0.2"}}, + Containers: []corev1.Container{{Name: "udp-server", Image: "gcr.io/agones-images/udp-server:0.3"}}, }, }, }, @@ -171,7 +171,7 @@ $ curl http://localhost:8001/apis/stable.agones.dev/v1alpha1/namespaces/default/ "kind": "GameServer", "metadata": { "annotations": { - "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"stable.agones.dev/v1alpha1\",\"kind\":\"GameServer\",\"metadata\":{\"annotations\":{},\"name\":\"simple-udp\",\"namespace\":\"default\"},\"spec\":{\"containerPort\":7654,\"hostPort\":7777,\"portPolicy\":\"static\",\"template\":{\"spec\":{\"containers\":[{\"image\":\"gcr.io/agones-images/udp-server:0.2\",\"name\":\"simple-udp\"}]}}}}\n" + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"stable.agones.dev/v1alpha1\",\"kind\":\"GameServer\",\"metadata\":{\"annotations\":{},\"name\":\"simple-udp\",\"namespace\":\"default\"},\"spec\":{\"containerPort\":7654,\"hostPort\":7777,\"portPolicy\":\"static\",\"template\":{\"spec\":{\"containers\":[{\"image\":\"gcr.io/agones-images/udp-server:0.3\",\"name\":\"simple-udp\"}]}}}}\n" }, "clusterName": "", "creationTimestamp": "2018-03-02T21:41:05Z", @@ -203,7 +203,7 @@ $ curl http://localhost:8001/apis/stable.agones.dev/v1alpha1/namespaces/default/ "spec": { "containers": [ { - "image": "gcr.io/agones-images/udp-server:0.2", + "image": "gcr.io/agones-images/udp-server:0.3", "name": "simple-udp", "resources": {} } diff --git a/docs/create_fleet.md b/docs/create_fleet.md index 3b059f5566..fd455f8778 100644 --- a/docs/create_fleet.md +++ b/docs/create_fleet.md @@ -109,7 +109,7 @@ Spec: Creation Timestamp: Spec: Containers: - Image: gcr.io/agones-images/udp-server:0.2 + Image: gcr.io/agones-images/udp-server:0.3 Name: simple-udp Resources: Status: @@ -225,7 +225,7 @@ status: creationTimestamp: null spec: containers: - - image: gcr.io/agones-images/udp-server:0.2 + - image: gcr.io/agones-images/udp-server:0.3 name: simple-udp resources: {} status: diff --git a/docs/create_gameserver.md b/docs/create_gameserver.md index d0cf76cb17..9b1b9153b5 100644 --- a/docs/create_gameserver.md +++ b/docs/create_gameserver.md @@ -104,7 +104,7 @@ Spec: Creation Timestamp: Spec: Containers: - Image: gcr.io/agones-images/udp-server:0.2 + Image: gcr.io/agones-images/udp-server:0.3 Name: simple-udp Resources: Status: diff --git a/docs/fleet_spec.md b/docs/fleet_spec.md index cdaf19e03c..042e017dcf 100644 --- a/docs/fleet_spec.md +++ b/docs/fleet_spec.md @@ -81,7 +81,6 @@ spec: fleetName: fleet-example # Custom metadata that is added to game server status in the moment of allocation # You can use this to tell the server necessary session data - # ⚠️⚠️⚠️ **This is currently a release candidate feature** ⚠️⚠️⚠️ metadata: labels: mode: deathmatch @@ -97,5 +96,4 @@ The `spec` field is the actual `FleetAllocation` specification and it is compose - `fleetName` is the name of an existing Fleet. If this doesn't exist, and error will be returned when the `FleetAllocation` is created - `metadata` is an optional list of custom labels and/or annotations that will be used to patch - the game server's metadata in the moment of allocation. - ⚠️⚠️⚠️ **This is currently a release candidate feature** ⚠️⚠️⚠️ + the game server's metadata in the moment of allocation. diff --git a/docs/gameserver_spec.md b/docs/gameserver_spec.md index 06bec110dd..81c3609f20 100644 --- a/docs/gameserver_spec.md +++ b/docs/gameserver_spec.md @@ -2,7 +2,7 @@ Like any other Kubernetes resource you describe a GameServer's desired state via a specification written in YAML or JSON to the Kubernetes API. The Agones controller will then change the actual state to the desired state. -A full GameServer specification is available below and in the [example folder](https://github.com/GoogleCloudPlatform/agones/blob/release-0.3.0/examples/gameserver.yaml) for reference : +A full GameServer specification is available below and in the [example folder](https://github.com/GoogleCloudPlatform/agones/blob/release-0.4.0/examples/gameserver.yaml) for reference : ``` apiVersion: "stable.agones.dev/v1alpha1" diff --git a/docs/sdk_rest_api.md b/docs/sdk_rest_api.md index 1a307108e2..35725d486d 100644 --- a/docs/sdk_rest_api.md +++ b/docs/sdk_rest_api.md @@ -127,8 +127,6 @@ Response: ### Watch GameServer -⚠️⚠️⚠️ **/watch/gameserver is currently a release candidate feature** ⚠️⚠️⚠️ - Call this when you want to get updates of when the backing `GameServer` configuration is updated. These updates will come as newline delimited JSON, send on each update. To that end, you will diff --git a/install/README.md b/install/README.md index 2e9f97f1c8..d82f4e1377 100644 --- a/install/README.md +++ b/install/README.md @@ -261,11 +261,11 @@ This will install Agones in your cluster. ## Install with YAML We can install Agones to the cluster using the -[install.yaml](https://github.com/GoogleCloudPlatform/agones/blob/release-0.3.0/install/yaml/install.yaml) file. +[install.yaml](https://github.com/GoogleCloudPlatform/agones/blob/release-0.4.0/install/yaml/install.yaml) file. ```bash kubectl create namespace agones-system -kubectl apply -f https://github.com/GoogleCloudPlatform/agones/raw/release-0.3.0/install/yaml/install.yaml +kubectl apply -f https://github.com/GoogleCloudPlatform/agones/raw/release-0.4.0/install/yaml/install.yaml ``` You can also find the install.yaml in the latest `agones-install` zip from the [releases](https://github.com/GoogleCloudPlatform/agones/releases) archive. diff --git a/install/helm/README.md b/install/helm/README.md index dd35279f8e..78240b1347 100644 --- a/install/helm/README.md +++ b/install/helm/README.md @@ -18,8 +18,8 @@ To install the chart with the release name `my-release`: Download the latest `agones-install` zip from the [releases](https://github.com/GoogleCloudPlatform/agones/releases) archive. ```bash -$ wget https://github.com/GoogleCloudPlatform/agones/releases/download/v0.3.0/agones-install-0.3.0.zip -$ unzip agones-install-0.3.0.zip +$ wget https://github.com/GoogleCloudPlatform/agones/releases/download/v0.4.0/agones-install-0.4.0.zip +$ unzip agones-install-0.4.0.zip $ cd install/helm/ $ helm install --name my-release --namespace agones-system agones ``` @@ -32,11 +32,11 @@ The command deploys Agones on the Kubernetes cluster with the default configurat > **Tip**: List all releases using `helm list` > -> If you are installing a development build of Agones (i.e. not the 0.3.0 release), you will need to install Agones the following way: +> If you are installing a development build of Agones (i.e. not the 0.4.0 release), you will need to install Agones the following way: ```bash $ cd install/helm/ -$ helm install --name my-release --namespace agones-system agones --set agones.image.tag=0.3.0-481970d +$ helm install --name my-release --namespace agones-system agones --set agones.image.tag=0.4.0-481970d ``` The full list of available tags is [here](https://console.cloud.google.com/gcr/images/agones-images/) @@ -91,7 +91,7 @@ The following tables lists the configurable parameters of the Agones chart and t | `agones.serviceaccount.controller` | Service account name for the controller | `agones-controller` | | `agones.serviceaccount.sdk` | Service account name for the sdk | `agones-sdk` | | `agones.image.registry` | Global image registry for all images | `gcr.io/agones-images` | -| `agones.image.tag` | Global image tag for all images | `0.3.0` | +| `agones.image.tag` | Global image tag for all images | `0.4.0` | | `agones.image.controller.name` | Image name for the controller | `agones-controller` | | `agones.image.controller.pullPolicy` | Image pull policy for the controller | `IfNotPresent` | | `agones.image.sdk.name` | Image name for the sdk | `agones-sdk` | diff --git a/sdks/README.md b/sdks/README.md index cb6c159cd6..0414a1aed4 100644 --- a/sdks/README.md +++ b/sdks/README.md @@ -47,7 +47,6 @@ The GameServer state will be set `Shutdown` and the backing Pod will be deleted, if they have not shut themselves down already. ### SetLabel(key, value) -⚠️⚠️⚠️ **`SetLabel` is currently a release candidate feature** ⚠️⚠️⚠️ This will set a [Label](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) value on the backing `GameServer` record that is stored in Kubernetes. To maintain isolation, the `key` value is automatically prefixed with "stable.agones.dev/sdk-" @@ -57,7 +56,6 @@ record that is stored in Kubernetes. To maintain isolation, the `key` value is a This can be useful if you want to information from your running game server process to be observable or searchable through the Kubernetes API. ### SetAnnotation(key, value) -⚠️⚠️⚠️ **`SetAnnotation` is currently a release candidate feature** ⚠️⚠️⚠️ This will set a [Annotation](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) value on the backing `Gameserver` record that is stored in Kubernetes. To maintain isolation, the `key` value is automatically prefixed with "stable.agones.dev/sdk-" @@ -65,6 +63,7 @@ This will set a [Annotation](https://kubernetes.io/docs/concepts/overview/workin This can be useful if you want to information from your running game server process to be observable through the Kubernetes API. ### GameServer() + This returns most of the backing GameServer configuration and Status. This can be useful for instances where you may want to know Health check configuration, or the IP and Port the GameServer is currently allocated to. @@ -81,8 +80,6 @@ and the [examples](../examples). ### WatchGameServer(function(gameserver){...}) -⚠️⚠️⚠️ **`WatchGameServer` is currently a release candidate feature** ⚠️⚠️⚠️ - This executes the passed in callback with the current `GameServer` details whenever the underlying `GameServer` configuration is updated. This can be useful to track `GameServer > Status > State` changes, `metadata` changes, such as labels and annotations, and more. @@ -137,8 +134,6 @@ $ ./sidecar.linux.amd64 --local ### Providing your own `GameServer` configuration for local development -⚠️⚠️⚠️ **Providing your own `GameServer` is currently a release candidate feature** ⚠️⚠️⚠️ - By default, the local sdk-server will create a dummy `GameServer` configuration that is used for `GameServer()` and `WatchGameServer()` SDK calls. If you wish to provide your own configuration, as either yaml or json, this can be passed through as either `--file` or `-f` along with the `--local` flag. diff --git a/sdks/cpp/README.md b/sdks/cpp/README.md index e6c8884cfa..8e4a4f8a95 100644 --- a/sdks/cpp/README.md +++ b/sdks/cpp/README.md @@ -58,8 +58,6 @@ if (!status.ok()) { ... } To [set a Label](../README.md#setlabelkey-value) on the backing `GameServer` call `sdk->SetLabel(key, value)`. -⚠️⚠️⚠️ **`SetLabel` is currently a release candidate feature** ⚠️⚠️⚠️ - This will return a grpc::Status object, from which we can call `status.ok()` to determine if the function completed successfully. @@ -73,8 +71,6 @@ if (!status.ok()) { ... } To [set an Annotation](../README.md#setannotationkey-value) on the backing `GameServer` call `sdk->SetAnnotation(key, value)`. -⚠️⚠️⚠️ **`SetAnnotation` is currently a release candidate feature** ⚠️⚠️⚠️ - This will return a grpc::Status object, from which we can call `status.ok()` to determine if the function completed successfully. @@ -101,8 +97,6 @@ if (!status.ok()) {...} To get [updates on the backing `GameServer`](../README.md#watchgameserverfunctiongameserver) as they happen, call `sdk->WatchGameServer([](stable::agones::dev::sdk::GameServer gameserver){...})`. -⚠️⚠️⚠️ **`WatchGameServer` is currently a release candidate feature** ⚠️⚠️️⚠️ - This will call the passed in `std::function` synchronously (this is a blocking function, so you may want to run it in its own thread) whenever the backing `GameServer` is updated.