2018-02-06 07:16:21 +00:00
|
|
|
# ArangoDB Kubernetes Operator
|
|
|
|
|
2018-09-11 13:03:30 +00:00
|
|
|
[![Docker Pulls](https://img.shields.io/docker/pulls/arangodb/kube-arangodb.svg)](https://hub.docker.com/r/arangodb/kube-arangodb/)
|
|
|
|
|
2018-04-06 11:58:19 +00:00
|
|
|
ArangoDB Kubernetes Operator helps do run ArangoDB deployments
|
|
|
|
on Kubernetes clusters.
|
2018-02-06 07:16:21 +00:00
|
|
|
|
2018-04-06 11:58:19 +00:00
|
|
|
To get started, follow the Installation instructions below and/or
|
|
|
|
read the [tutorial](./docs/Manual/Tutorials/Kubernetes/README.md).
|
|
|
|
|
|
|
|
## State
|
|
|
|
|
2018-06-19 09:47:56 +00:00
|
|
|
The ArangoDB Kubernetes Operator is still in **development**.
|
2018-04-06 11:58:19 +00:00
|
|
|
|
2018-04-11 06:49:40 +00:00
|
|
|
Running ArangoDB deployments (single, active-failover or cluster)
|
2018-06-19 09:47:56 +00:00
|
|
|
is reasonably stable, and we're in the process of validating
|
|
|
|
production readiness of various Kubernetes platforms.
|
2018-04-06 11:58:19 +00:00
|
|
|
|
|
|
|
The feature set of the ArangoDB Kubernetes Operator is close to what
|
2018-06-19 09:47:56 +00:00
|
|
|
it is intended to be.
|
2018-02-06 07:16:21 +00:00
|
|
|
|
2018-04-04 14:48:43 +00:00
|
|
|
[Documentation](./docs/README.md)
|
2018-03-12 11:18:50 +00:00
|
|
|
|
2018-06-19 10:02:21 +00:00
|
|
|
### Production readiness state
|
|
|
|
|
2019-04-06 18:06:28 +00:00
|
|
|
| Platform | Kubernetes version | ArangoDB version | ArangoDB K8s Operator Version | State | Production ready | Remarks |
|
|
|
|
|----------------------|--------------------|------------------|-------------------------------|-------|------------------|-----------------------|
|
|
|
|
| Google GKE | 1.10 | >= 3.3.13 | | Runs | Yes | Don't use micro nodes |
|
|
|
|
| Google GKE | 1.11 | >= 3.3.13 | | Runs | Yes | Don't use micro nodes |
|
|
|
|
| Amazon EKS | 1.11 | >= 3.3.13 | | Runs | Yes | |
|
|
|
|
| Pivotal PKS | 1.11 | >= 3.3.13 | | Runs | Yes | |
|
2019-05-13 10:54:08 +00:00
|
|
|
| IBM Cloud | 1.11 | >= 3.4.5 | >= 0.3.11 | Runs | Yes | |
|
2019-05-28 09:40:56 +00:00
|
|
|
| IBM Cloud | 1.12 | >= 3.4.5 | >= 0.3.11 | Runs | Yes | |
|
2019-04-06 18:06:28 +00:00
|
|
|
| Amazon & Kops | 1.10 | >= 3.3.13 | | Runs | No | |
|
|
|
|
| Azure AKS | 1.10 | >= 3.3.13 | | Runs | No | |
|
|
|
|
| OpenShift | 1.10 | >= 3.3.13 | | Runs | No | |
|
|
|
|
| Bare metal (kubeadm) | 1.10 | >= 3.3.13 | | Runs | Yes | |
|
|
|
|
| Bare metal (kubeadm) | 1.11 | >= 3.3.13 | | Runs | Yes | |
|
2019-04-30 11:48:12 +00:00
|
|
|
| Bare metal (kubeadm) | 1.12 | >= 3.3.13 | | Runs | In progress | |
|
2019-05-13 11:56:40 +00:00
|
|
|
| Bare metal (kubeadm) | 1.13 | >= 3.3.13 | | Runs | Yes | |
|
2019-04-06 18:06:28 +00:00
|
|
|
| Bare metal (kubeadm) | 1.14 | >= 3.3.13 | | Runs | In progress | |
|
|
|
|
| Minikube | 1.10 | >= 3.3.13 | | Runs | Not intended | |
|
|
|
|
| Docker for Mac Edge | 1.10 | >= 3.3.13 | | Runs | Not intended | |
|
2019-04-30 11:50:11 +00:00
|
|
|
| Scaleway Kubernetes | 1.10 | >= 3.3.13 | ? | No | | |
|
2018-06-19 10:02:21 +00:00
|
|
|
|
2019-04-08 09:42:21 +00:00
|
|
|
## WARNING
|
2018-08-20 14:25:07 +00:00
|
|
|
|
2019-03-04 11:01:19 +00:00
|
|
|
**WARNING**: There is a problem with rolling upgrades in version 0.3.8.
|
|
|
|
**DO NOT USE 0.3.8 FOR ROLLING UPGRADES.** If you are still using 0.3.8,
|
|
|
|
then upgrade to 0.3.9 of the operator first before running any rolling
|
|
|
|
upgrade.
|
2019-02-26 08:56:28 +00:00
|
|
|
|
2019-04-08 09:42:21 +00:00
|
|
|
## Installation of latest release using Kubectl
|
|
|
|
|
|
|
|
```bash
|
2019-06-07 09:29:38 +00:00
|
|
|
kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.11/manifests/arango-crd.yaml
|
|
|
|
kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.11/manifests/arango-deployment.yaml
|
2019-04-08 09:42:21 +00:00
|
|
|
# To use `ArangoLocalStorage`, also run
|
2019-06-07 09:29:38 +00:00
|
|
|
kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.11/manifests/arango-storage.yaml
|
2019-04-08 09:42:21 +00:00
|
|
|
# To use `ArangoDeploymentReplication`, also run
|
2019-06-07 09:29:38 +00:00
|
|
|
kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.11/manifests/arango-deployment-replication.yaml
|
2019-04-08 09:42:21 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
This procedure can also be used for upgrades and will not harm any
|
|
|
|
running ArangoDB deployments.
|
|
|
|
|
|
|
|
## Installation of latest release using Helm
|
|
|
|
|
|
|
|
Only use this procedure for a new install of the operator. See below for
|
|
|
|
upgrades.
|
|
|
|
|
2018-08-20 14:25:07 +00:00
|
|
|
```bash
|
2018-10-30 16:13:06 +00:00
|
|
|
# The following will install the custom resources required by the operators.
|
2019-06-07 09:29:38 +00:00
|
|
|
helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.11/kube-arangodb-crd.tgz
|
2018-08-20 14:25:07 +00:00
|
|
|
# The following will install the operator for `ArangoDeployment` &
|
2018-11-09 04:34:54 +00:00
|
|
|
# `ArangoDeploymentReplication` resources.
|
2019-06-07 09:29:38 +00:00
|
|
|
helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.11/kube-arangodb.tgz
|
2018-08-20 14:25:07 +00:00
|
|
|
# To use `ArangoLocalStorage`, also run
|
2019-06-07 09:29:38 +00:00
|
|
|
helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.11/kube-arangodb-storage.tgz
|
2018-08-20 14:25:07 +00:00
|
|
|
```
|
|
|
|
|
2019-04-08 09:42:21 +00:00
|
|
|
## Upgrading the operator using Helm
|
|
|
|
|
|
|
|
To upgrade the operator to the latest version with Helm, you have to
|
|
|
|
delete the previous deployment and then install the latest. **HOWEVER**:
|
|
|
|
You *must not delete* the deployment of the custom resource definitions
|
|
|
|
(CRDs), or your ArangoDB deployments will be deleted!
|
|
|
|
|
|
|
|
Therefore, you have to use `helm list` to find the deployments for the
|
|
|
|
operator (`kube-arangodb`) and of the storage operator
|
|
|
|
(`kube-arangodb-storage`) and use `helm delete` to delete them using the
|
|
|
|
automatically generated deployment names. Here is an example of a `helm
|
|
|
|
list` output:
|
|
|
|
|
|
|
|
```
|
|
|
|
% helm list
|
|
|
|
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
|
|
|
|
intent-camel 1 Mon Apr 8 11:37:52 2019 DEPLOYED kube-arangodb-storage-0.3.10-preview default
|
|
|
|
steely-mule 1 Sun Mar 31 21:11:07 2019 DEPLOYED kube-arangodb-crd-0.3.9 default
|
|
|
|
vetoed-ladybird 1 Mon Apr 8 11:36:58 2019 DEPLOYED kube-arangodb-0.3.10-preview default
|
|
|
|
```
|
|
|
|
|
|
|
|
So here, you would have to do
|
2018-03-20 10:33:37 +00:00
|
|
|
|
|
|
|
```bash
|
2019-04-08 09:42:21 +00:00
|
|
|
helm delete intent-camel
|
|
|
|
helm delete vetoed-ladybird
|
|
|
|
```
|
|
|
|
|
|
|
|
but **not delete `steely-mule`**. Then you could install the new version
|
|
|
|
with `helm install` as normal:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# The following will install the operator for `ArangoDeployment` &
|
|
|
|
# `ArangoDeploymentReplication` resources.
|
2019-06-07 09:29:38 +00:00
|
|
|
helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.11/kube-arangodb.tgz
|
2018-03-20 10:33:37 +00:00
|
|
|
# To use `ArangoLocalStorage`, also run
|
2019-06-07 09:29:38 +00:00
|
|
|
helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.11/kube-arangodb-storage.tgz
|
2018-03-20 10:33:37 +00:00
|
|
|
```
|
|
|
|
|
2018-03-12 11:18:50 +00:00
|
|
|
## Building
|
|
|
|
|
|
|
|
```bash
|
|
|
|
DOCKERNAMESPACE=<your dockerhub account> make
|
2018-03-19 10:09:20 +00:00
|
|
|
kubectl apply -f manifests/arango-deployment-dev.yaml
|
|
|
|
# To use `ArangoLocalStorage`, also run
|
|
|
|
kubectl apply -f manifests/arango-storage-dev.yaml
|
2018-06-19 09:47:56 +00:00
|
|
|
# To use `ArangoDeploymentReplication`, also run
|
|
|
|
kubectl apply -f manifests/arango-deployment-replication-dev.yaml
|
2018-03-12 11:18:50 +00:00
|
|
|
```
|