|
1 | 1 | # GameServer Specification |
2 | 2 |
|
3 | | -Like any other Kubernetes ressources you describe a GameServer 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. |
| 3 | +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. |
4 | 4 |
|
5 | 5 | A full GameServer specification is available below and in the [example folder](../examples/gameserver.yaml) for reference : |
6 | 6 |
|
@@ -31,15 +31,15 @@ spec: |
31 | 31 | imagePullPolicy: Always |
32 | 32 | ``` |
33 | 33 |
|
34 | | -Since Agones defines a new [Custom Ressources Definition (CRD)](https://kubernetes.io/docs/concepts/api-extension/custom-resources/) we can define a new ressource using the kind `GameServer` with the custom group `stable.agones.dev` and API version `v1alpha1`. |
| 34 | +Since Agones defines a new [Custom Resources Definition (CRD)](https://kubernetes.io/docs/concepts/api-extension/custom-resources/) we can define a new resource using the kind `GameServer` with the custom group `stable.agones.dev` and API version `v1alpha1`. |
35 | 35 |
|
36 | 36 | You can use the metadata field to target a specific [namespaces](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) but also attach specific [annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) and [labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) to your ressource. This is a very common pattern in the Kubernetes ecosystem. |
37 | 37 |
|
38 | 38 | The `spec` field is the actual GameServer specification and it is composed as follow: |
39 | 39 |
|
40 | 40 | - `container` is the name of container running the GameServer in case you have more than one container defined in the [pod](https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/). If you do, this is a mandatory field. For instance this is useful if you want to run a sidecar to ship logs. |
41 | 41 | - `portPolicy` has two options `dynamic` (default) the system allocates a free hostPort for the gameserver, for game clients to connect to. And `static`, user defines the hostPort that the game client will connect to. Then onus is on the user to ensure that the port is available. When static is the policy specified, `hostPort` is required to be populated. |
42 | | -- `containerPort` the port that is being opened on the game server process, this is required field. |
| 42 | +- `containerPort` the port that is being opened on the game server process, this is a required field. |
43 | 43 | - `protocol` the protocol being used. Defaults to UDP. TCP is the only other option. |
44 | 44 | - `health` to track the overall healthy state of the GameServer, more information available in the [health check documentation](./health_checking.md). |
45 | | -- `template` the [pod spec template](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.9/#pod-v1-core) to run you GameServer containers, [see](https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/#pod-templates) for more information. |
| 45 | +- `template` the [pod spec template](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.9/#pod-v1-core) to run your GameServer containers, [see](https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/#pod-templates) for more information. |
0 commit comments