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 theArangoDeployment
andArangoDeploymentReplication
resource types.kube-arangodb-storage
which contains the operator for theArangoLocalStorage
resource type.Thekube-arangodb-storage
only has to be installed if your Kubernetes clusterdoes not already provideStorageClasses
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
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 for details. |
RBAC.Create | bool | Set to true (default) to create roles & role bindings. |
Values applicable to the 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 |
Values applicable to the 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 |
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 —namespace
argument like this.
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:
helm install --namespace=namespace1 kube-arangodb.tgz
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.