# ArangoDB Kubernetes Operator [![Docker Pulls](https://img.shields.io/docker/pulls/arangodb/kube-arangodb.svg)](https://hub.docker.com/r/arangodb/kube-arangodb/) ArangoDB Kubernetes Operator helps do run ArangoDB deployments on Kubernetes clusters. To get started, follow the Installation instructions below and/or read the [tutorial](./docs/Manual/Tutorials/Kubernetes/README.md). ## State The ArangoDB Kubernetes Operator is still in **development**. Running ArangoDB deployments (single, active-failover or cluster) is reasonably stable, and we're in the process of validating production readiness of various Kubernetes platforms. The feature set of the ArangoDB Kubernetes Operator is close to what it is intended to be. [Documentation](./docs/README.md) ### Production readiness state | Platform | Kubernetes version | ArangoDB 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 | | | 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 | No | | | Minikube | 1.10 | >= 3.3.13 | Runs | Not intended | | | Docker for Mac Edge | 1.10 | >= 3.3.13 | Runs | Not intended | | | Scaleway Kubernetes | 1.10 | >= 3.3.13 | ? | No | | ## Installation of latest release using Helm **WARNING**: Note that 0.3.8 is the latest release but we have just found a problem with it when performing rolling upgrades of a cluster, which can lead to data loss! **DO NOT USE 0.3.8 FOR ROLLING UPGRADES.** We will publish a fixed 0.3.9 as soon as possible, but we need rather thorough testing for this. Therefore the commands below use the second latest release 0.3.7. ```bash # The following will install the custom resources required by the operators. helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.7/kube-arangodb-crd.tgz # The following will install the operator for `ArangoDeployment` & # `ArangoDeploymentReplication` resources. helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.7/kube-arangodb.tgz # To use `ArangoLocalStorage`, also run helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.7/kube-arangodb-storage.tgz ``` ## Installation of latest release using Kubectl ```bash kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.7/manifests/arango-crd.yaml kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.7/manifests/arango-deployment.yaml # To use `ArangoLocalStorage`, also run kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.7/manifests/arango-storage.yaml # To use `ArangoDeploymentReplication`, also run kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.7/manifests/arango-deployment-replication.yaml ``` ## Building ```bash DOCKERNAMESPACE= make kubectl apply -f manifests/arango-deployment-dev.yaml # To use `ArangoLocalStorage`, also run kubectl apply -f manifests/arango-storage-dev.yaml # To use `ArangoDeploymentReplication`, also run kubectl apply -f manifests/arango-deployment-replication-dev.yaml ```