Skip to content

Commit

Permalink
Helm 3 Install Documentation (googleforgames#1627)
Browse files Browse the repository at this point in the history
* Helm 3 Install Documentation

Split Helm install documentation into Helm 3 and Helm 2 - deliberately
putting Helm 3 at the top, since we would like to push people that way.

Closes googleforgames#1494
Work on googleforgames#1436
  • Loading branch information
markmandel authored Jun 24, 2020
1 parent 3738b72 commit c8d6dd4
Showing 1 changed file with 77 additions and 30 deletions.
107 changes: 77 additions & 30 deletions site/content/en/docs/Installation/Install Agones/helm.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,32 @@ linkTitle: "Helm"
weight: 20
description: >
Install Agones on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
---

## Prerequisites

- [Helm](https://docs.helm.sh/helm/) package manager 2.10.0+
- [Helm](https://helm.sh/) package manager 2.10.0+, or 3.2.3+
- [Supported Kubernetes Cluster]({{< relref "../_index.md#usage-requirements" >}})

## Installing the Chart
{{% alert title="Note" color="info"%}}
We are in the process of shifting our development platform to run on [Helm 3](https://helm.sh/blog/helm-3-released/),
and recommend upgrading your Helm installs,
as it will soon become the most tested platform.
{{% /alert %}}

{{< alert title="Note" color="info">}}
If you don't have `Helm` installed locally, or `Tiller` installed in your Kubernetes cluster, read the [Using Helm](https://docs.helm.sh/using_helm/) documentation to get started.
{{< /alert >}}
## Helm 3

### Installing the Chart

To install the chart with the release name `my-release` using our stable helm repository:

```bash
$ helm repo add agones https://agones.dev/chart/stable
$ helm install --name my-release --namespace agones-system agones/agones
$ helm install my-release --namespace agones-system --create-namespace agones/agones
```

_We recommend to install Agones in its own namespaces (like `agones-system` as shown above)
you can use the helm `--namespace` parameter to specify a different namespace._
_We recommend installing Agones in its own namespaces, such as `agones-system` as shown above.
If you want to use a different namespace, you can use the helm `--namespace` parameter to specify._

When running in production, Agones should be scheduled on a dedicated pool of nodes, distinct from where Game Servers are scheduled for better isolation and resiliency. By default Agones prefers to be scheduled on nodes labeled with `agones.dev/agones-system=true` and tolerates node taint `agones.dev/agones-system=true:NoExecute`. If no dedicated nodes are available, Agones will
run on regular nodes, but that's not recommended for production use. For instructions on setting up a dedicated node
Expand All @@ -35,24 +38,68 @@ pool for Agones, see the [Agones installation instructions]({{< relref "../_inde
The command deploys Agones on the Kubernetes cluster with the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.

{{< alert title="Tip" color="info">}}
List all releases using `helm list`
List all releases using `helm list --all-namespaces`
{{< /alert >}}

### Namespaces

By default Agones is configured to work with game servers deployed in the `default` namespace. If you are planning to use another namespace you can configure Agones via the parameter `gameservers.namespaces`.

For example to use `default` **and** `xbox` namespaces:

```bash
$ kubectl create namespace xbox
$ helm install my-release agones/agones --set "gameservers.namespaces={default,xbox}" --namespace agones-system
```

{{< alert title="Note" color="info">}}
If you are installing a development build of Agones (i.e. not the {{< release-version >}} release), you will need to install Agones the following way:
You need to create your namespaces before installing Agones.
{{< /alert >}}

If you want to add a new namespace afterward upgrade your release:

```bash
$ cd install/helm/
$ helm install --name my-release --namespace agones-system agones --set agones.image.tag={{< release-version >}}-481970d
$ kubectl create namespace ps4
$ helm upgrade my-release agones/agones --reuse-values --set "gameservers.namespaces={default,xbox,ps4}"
```
where 481970d - is a short hash of the latest commit.

The full list of available tags is [here](https://console.cloud.google.com/gcr/images/agones-images/)
### Uninstalling the Chart

---
To uninstall/delete the `my-release` deployment:

```bash
$ helm uninstall my-release --namespace=agones-system
```

## Helm 2

### Installing the Chart

{{< alert title="Note" color="info">}}
If you don't have `Helm` installed locally, or `Tiller` installed in your Kubernetes cluster, read the [Using Helm](https://v2.helm.sh/docs/using_helm/) documentation to get started.
{{< /alert >}}

To install the chart with the release name `my-release` using our stable helm repository:

```bash
$ helm repo add agones https://agones.dev/chart/stable
$ helm install --name my-release --namespace agones-system agones/agones
```

_We recommend installing Agones in its own namespaces, such as `agones-system` as shown above.
If you want to use a different namespace, you can use the helm `--namespace` parameter to specify._

When running in production, Agones should be scheduled on a dedicated pool of nodes, distinct from where Game Servers are scheduled for better isolation and resiliency. By default Agones prefers to be scheduled on nodes labeled with `agones.dev/agones-system=true` and tolerates node taint `agones.dev/agones-system=true:NoExecute`. If no dedicated nodes are available, Agones will
run on regular nodes, but that's not recommended for production use. For instructions on setting up a dedicated node
pool for Agones, see the [Agones installation instructions]({{< relref "../_index.md" >}}) for your preferred environment.

The command deploys Agones on the Kubernetes cluster with the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.

{{< alert title="Tip" color="info">}}
List all releases using `helm list`
{{< /alert >}}

## Namespaces
### Namespaces

By default Agones is configured to work with game servers deployed in the `default` namespace. If you are planning to use another namespace you can configure Agones via the parameter `gameservers.namespaces`.

Expand All @@ -67,22 +114,14 @@ $ helm install --set "gameservers.namespaces={default,xbox}" --namespace agones-
You need to create your namespaces before installing Agones.
{{< /alert >}}

If you want to add a new namespace afterward simply upgrade your release:
If you want to add a new namespace afterward upgrade your release:

```bash
$ kubectl create namespace ps4
$ helm upgrade --set "gameservers.namespaces={default,xbox,ps4}" my-release agones/agones
$ helm upgrade --reuse-values --set "gameservers.namespaces={default,xbox,ps4}" my-release agones/agones
```

## RBAC

By default, `agones.rbacEnabled` is set to true. This enables RBAC support in Agones and must be true if RBAC is enabled in your cluster.

The chart will take care of creating the required service accounts and roles for Agones.

If you have RBAC disabled, or to put it another way, ABAC enabled, you should set this value to `false`.

## Uninstalling the Chart
### Uninstalling the Chart

To uninstall/delete the `my-release` deployment:

Expand All @@ -92,6 +131,14 @@ $ helm delete my-release

The command removes all the Kubernetes components associated with the chart and deletes the release.

## RBAC

By default, `agones.rbacEnabled` is set to true. This enables RBAC support in Agones and must be true if RBAC is enabled in your cluster.

The chart will take care of creating the required service accounts and roles for Agones.

If you have RBAC disabled, or to put it another way, ABAC enabled, you should set this value to `false`.

## Configuration

The following tables lists the configurable parameters of the Agones chart and their default values.
Expand Down Expand Up @@ -194,7 +241,7 @@ The following tables lists the configurable parameters of the Agones chart and t
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,

```bash
$ helm install --name my-release --namespace agones-system \
$ helm install my-release --namespace agones-system \
--set gameservers.minPort=1000,gameservers.maxPort=5000 agones
```

Expand All @@ -203,7 +250,7 @@ The above command will deploy Agones controllers to `agones-system` namespace. A
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,

```bash
$ helm install --name my-release --namespace agones-system -f values.yaml agones/agones
$ helm install my-release --namespace agones-system -f values.yaml agones/agones
```

{{< alert title="Tip" color="info">}}
Expand Down

0 comments on commit c8d6dd4

Please sign in to comment.