Using the ArangoDB Kubernetes Operator with Helm

Helm is a package manager for Kubernetes, which enablesyou 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 thandefault.

Charts

The ArangoDB Kubernetes Operator is contained in two helm charts:

  • kube-arangodb which contains the operator for the ArangoDeploymentand ArangoDeploymentReplication resource types.
  • kube-arangodb-storage which contains the operator for the ArangoLocalStorageresource type.The kube-arangodb-storage only has to be installed if your Kubernetes clusterdoes not already provide StorageClasses that use locally attached SSDs.

Configurable values for ArangoDB Kubernetes Operator

The following values can be configured when installing theArangoDB Kubernetes Operator with helm.

Values are passed to helm using an —set=<key>=<value> argument passedto the helm install or helm upgrade command.

Values applicable to both charts

KeyTypeDescription
ImagestringOverride the docker image used by the operators
ImagePullPolicystringOverride the image pull policy used by the operators. See Updating Images for details.
RBAC.CreateboolSet to true (default) to create roles & role bindings.

Values applicable to the kube-arangodb chart

KeyTypeDescription
Deployment.CreateboolSet to true (default) to deploy the ArangoDeployment operator
Deployment.User.ServiceAccountNamestringName of the ServiceAccount that is the subject of the RoleBinding of users of the ArangoDeployment operator
Deployment.Operator.ServiceAccountNamestringName of the ServiceAccount used to run the ArangoDeployment operator
Deployment.Operator.ServiceTypestringType of Service created for the dashboard of the ArangoDeployment operator
Deployment.AllowChaosboolSet to true to allow the introduction of chaos. Only use for testing, never for production! Defaults to false.
DeploymentReplication.CreateboolSet to true (default) to deploy the ArangoDeploymentReplication operator
DeploymentReplication.User.ServiceAccountNamestringName of the ServiceAccount that is the subject of the RoleBinding of users of the ArangoDeploymentReplication operator
DeploymentReplication.Operator.ServiceAccountNamestringName of the ServiceAccount used to run the ArangoDeploymentReplication operator
DeploymentReplication.Operator.ServiceTypestringType of Service created for the dashboard of the ArangoDeploymentReplication operator

Values applicable to the kube-arangodb-storage chart

KeyTypeDescription
Storage.User.ServiceAccountNamestringName of the ServiceAccount that is the subject of the RoleBinding of users of the ArangoLocalStorage operator
Storage.Operator.ServiceAccountNamestringName of the ServiceAccount used to run the ArangoLocalStorage operator
Storage.Operator.ServiceTypestringType of Service created for the dashboard of the ArangoLocalStorage operator

Alternate namespaces

The kube-arangodb chart supports deployment into a non-default namespace.

To install the kube-arangodb chart is a non-default namespace, use the —namespaceargument like this.

  1. helm install --namespace=mynamespace kube-arangodb.tgz

Note that since the operators claim exclusive access to a namespace, you caninstall the kube-arangodb chart in a namespace once.You can install the kube-arangodb chart in multiple namespaces. To do so, run:

  1. helm install --namespace=namespace1 kube-arangodb.tgz
  2. helm install --namespace=namespace2 kube-arangodb.tgz

The kube-arangodb-storage chart is always installed in the kube-system namespace.

Common problems

Error: no available release name found

This error is given by helm install … in some cases where it hasinsufficient permissions to install charts.

For various ways to work around this problem go to this Stackoverflow article.