The ArangoDB Kubernetes Operator (kube-arangodb) is a set of operators
that you deploy in your Kubernetes cluster to:
- Manage deployments of the ArangoDB database
- Manage backups
- Provide PersistentVolumes on local storage of your nodes for optimal storage performance.
- Configure ArangoDB Datacenter-to-Datacenter Replication
Each of these uses involves a different custom resource:
- Use an ArangoDeployment resource to create an ArangoDB database deployment.
- Use an ArangoMember resource to observe and adjust individual deployment members.
- Use an ArangoBackup and ArangoBackupPolicy resources to create ArangoDB backups.
- Use an ArangoLocalStorage resource to provide local PersistentVolumes for optimal I/O performance.
- Use an ArangoDeploymentReplication resource to configure ArangoDB Datacenter-to-Datacenter Replication.
- Use an ArangoPlatformChart and ArangoProfile resources to customize ArangoDB Platform deployments.
Continue with Using the ArangoDB Kubernetes Operator to learn how to install the ArangoDB Kubernetes operator and create your first deployment.
The ArangoDB Kubernetes Operator is Production ready.
| Limit | Description | Community | Enterprise |
|---|---|---|---|
| Cluster size limit | Limits of the nodes (DBServers & Coordinators) supported in the Cluster mode | 64 | 1024 |
Beginning with Version 0.3.11 we maintain a production readiness state for individual new features, since we expect that new features will first be released with an "alpha" or "beta" readiness state and over time move to full "production readiness".
Operator will support Kubernetes versions supported on providers and maintained by Kubernetes. Once version is not supported anymore it will go into "Deprecating" state and will be marked as deprecated on Minor release.
Kubernetes versions starting from 1.18 are supported and tested, charts and manifests can use API Versions which are not present in older versions.
The following table has the general readiness state, the table below covers individual newer features separately.
| Platform | State | Kubernetes Version | ArangoDB Version | Remarks | Provider Remarks |
|---|---|---|---|---|---|
| Google GKE | Production | 1.28-1.34 | >= 3.11.0 | Don't use micro nodes | |
| EOL | 1.25-1.27 | 3.9.0-3.10.0 | Don't use micro nodes | ||
| NotSupported | < 1.25 | < 3.8.0 | Don't use micro nodes | ||
| Azure AKS | Production | 1.28-1.34 | >= 3.11.0 | ||
| EOL | 1.25-1.27 | 3.9.0-3.10.0 | |||
| NotSupported | < 1.25 | < 3.8.0 | |||
| Amazon EKS | Production | 1.28-1.34 | >= 3.11.0 | Amazon EKS | |
| EOL | 1.25-1.27 | 3.9.0-3.10.0 | Amazon EKS | ||
| NotSupported | < 1.25 | < 3.8.0 | Amazon EKS | ||
| IBM Cloud | Production | 1.29-1.31 | >= 3.11.0 | ||
| EOL | 1.25-1.28 | 3.9.0-3.10.0 | |||
| NotSupported | < 1.25 | < 3.8.0 | |||
| OpenShift | Production | 4.11-4.17 | >= 3.11.0 | ||
| EOL | 4.2-4.11 | 3.9.0-3.10.0 | |||
| NotSupported | < 4.2 | < 3.8.0 | |||
| BareMetal (kubeadm) | Production | 1.28-1.34 | >= 3.11.0 | ||
| EOL | 1.25-1.27 | 3.9.0-3.10.0 | |||
| NotSupported | < 1.25 | < 3.8.0 | |||
| Minikube | Devel Only | 1.28-1.34 | >= 3.11.0 | ||
| EOL | 1.25-1.27 | 3.9.0-3.10.0 | |||
| NotSupported | < 1.25 | < 3.8.0 | |||
| Other | Production | 1.28-1.34 | >= 3.11.0 | ||
| EOL | 1.25-1.27 | 3.9.0-3.10.0 | |||
| NotSupported | < 1.25 | < 3.8.0 |
| Feature | Operator Version | Introduced | ArangoDB Version | ArangoDB Edition | State | Enabled | Flag | Remarks |
|---|---|---|---|---|---|---|---|---|
| ArangoPlatform OpenID SSO | 1.2.49 | 1.2.49 | >= 3.8.0 | Community, Enterprise | Beta | True | N/A | Support for ArangoPlatform SSO with OpenID |
| ArangoPlatform OpenID SSO Refresh | 1.2.49 | 1.2.49 | >= 3.8.0 | Community, Enterprise | Alpha | True | N/A | Support for ArangoPlatform SSO with OpenID Refresh |
| ArangoPlatform | 1.2.49 | 1.2.43 | >= 3.8.0 | Community, Enterprise | Beta | True | N/A | ArangoPlatform Solution with support for ArangoDeployment Gateway Group |
| Cleanup Imported Backups | 1.2.41 | 1.2.41 | >= 3.8.0 | Community, Enterprise | Production | False | --deployment.feature.backup-cleanup | Cleanup backups created outside of the Operator and imported into Kubernetes ArangoBackup |
| Upscale resources spec in init containers | 1.2.36 | 1.2.36 | >= 3.8.0 | Community, Enterprise | Production | True | --deployment.feature.init-containers-upscale-resources | Upscale resources spec to built-in init containers if they are not specified or lower |
| Create backups asynchronously | 1.2.35 | 1.2.41 | >= 3.8.0 | Community, Enterprise | Production | True | --deployment.feature.async-backup-creation | Create backups asynchronously to avoid blocking the operator and reaching the timeout |
| Enforced ResignLeadership | 1.2.34 | 1.2.34 | >= 3.8.0 | Community, Enterprise | Production | True | --deployment.feature.enforced-resign-leadership | Enforce ResignLeadership and ensure that Leaders are moved from restarted DBServer |
| Copy resources spec to init containers | 1.2.33 | 1.2.33 | >= 3.8.0 | Community, Enterprise | Production | True | --deployment.feature.init-containers-copy-resources | Copy resources spec to built-in init containers if they are not specified |
| Rebalancer V2 | 1.2.31 | 1.2.31 | >= 3.10.0 | Community, Enterprise | Alpha | False | --deployment.feature.rebalancer-v2 | N/A |
| Secured containers | 1.2.31 | 1.2.31 | >= 3.8.0 | Community, Enterprise | Alpha | False | --deployment.feature.secured-containers | If set to True Operator will run containers in secure mode |
| Version Check V2 | 1.2.31 | 1.2.31 | >= 3.8.0 | Community, Enterprise | Alpha | False | --deployment.feature.upgrade-version-check-V2 | N/A |
| Operator Ephemeral Volumes | 1.2.31 | 1.2.2 | >= 3.8.0 | Community, Enterprise | Beta | False | --deployment.feature.ephemeral-volumes | N/A |
| Force Rebuild Out Synced Shards | 1.2.27 | 1.2.27 | >= 3.8.0 | Community, Enterprise | Production | False | --deployment.feature.force-rebuild-out-synced-shards | It should be used only if user is aware of the risks. |
| Spec Default Restore | 1.2.25 | 1.2.21 | >= 3.8.0 | Community, Enterprise | Beta | True | --deployment.feature.deployment-spec-defaults-restore | If set to False Operator will not change ArangoDeployment Spec |
| Version Check | 1.2.23 | 1.1.4 | >= 3.8.0 | Community, Enterprise | Production | True | --deployment.feature.upgrade-version-check | N/A |
| Failover Leader service | 1.2.13 | 1.2.13 | < 3.12.0 | Community, Enterprise | Production | False | --deployment.feature.failover-leadership | N/A |
| Graceful Restart | 1.2.5 | 1.0.7 | >= 3.8.0 | Community, Enterprise | Production | True | ---deployment.feature.graceful-shutdown | N/A |
| Optional Graceful Restart | 1.2.0 | 1.2.5 | >= 3.8.0 | Community, Enterprise | Production | False | --deployment.feature.optional-graceful-shutdown | N/A |
| Operator Internal Metrics Exporter | 1.2.0 | 1.2.0 | >= 3.8.0 | Community, Enterprise | Production | True | --deployment.feature.metrics-exporter | N/A |
| Operator Maintenance Management Support | 1.2.0 | 1.0.7 | >= 3.8.0 | Community, Enterprise | Production | True | --deployment.feature.maintenance | N/A |
| Encryption Key Rotation Support | 1.2.0 | 1.0.3 | >= 3.8.0 | Enterprise | NotSupported | False | --deployment.feature.encryption-rotation | N/A |
| TLS Runtime Rotation Support | 1.1.0 | 1.0.4 | >= 3.8.0 | Enterprise | Production | True | --deployment.feature.tls-rotation | N/A |
| JWT Rotation Support | 1.1.0 | 1.0.3 | >= 3.8.0 | Enterprise | Production | True | --deployment.feature.jwt-rotation | N/A |
| Operator Single Mode | 1.0.4 | 1.0.4 | >= 3.8.0 | Community, Enterprise | Production | False | --mode.single | Only 1 instance of Operator allowed in namespace when feature is enabled |
| TLS SNI Support | 1.0.3 | 1.0.3 | >= 3.8.0 | Enterprise | Production | True | --deployment.feature.tls-sni | N/A |
| ActiveFailover Support | 1.0.0 | 1.0.0 | < 3.12.0 | Community, Enterprise | Production | True | --deployment.feature.active-failover | N/A |
| Disabling of liveness probes | 0.3.11 | 0.3.10 | >= 3.8.0 | Community, Enterprise | Production | True | N/A | N/A |
| Pod Disruption Budgets | 0.3.11 | 0.3.10 | >= 3.8.0 | Community, Enterprise | Production | True | N/A | N/A |
| Prometheus Metrics Exporter | 0.3.11 | 0.3.10 | >= 3.8.0 | Community, Enterprise | Production | True | N/A | Prometheus required |
| Sidecar Containers | 0.3.11 | 0.3.10 | >= 3.8.0 | Community, Enterprise | Production | True | N/A | N/A |
| Volume Claim Templates | 0.3.11 | 0.3.10 | >= 3.8.0 | Community, Enterprise | Production | True | N/A | N/A |
| Volume Resizing | 0.3.11 | 0.3.10 | >= 3.8.0 | Community, Enterprise | Production | True | N/A | N/A |
To upgrade to the Enterprise Edition, you need to get in touch with the ArangoDB team. Contact us for more details.
| Feature | Operator Version | Introduced | ArangoDB Version | ArangoDB Edition | State | Enabled | Flag | Remarks |
|---|---|---|---|---|---|---|---|---|
| ArangoML integration | 1.2.36 | 1.2.36 | >= 3.8.0 | Enterprise | Alpha | True | N/A | Support for ArangoML CRDs |
| AgencyCache | 1.2.30 | 1.2.30 | >= 3.8.0 | Enterprise | Production | True | N/A | Enable Agency Cache mechanism in the Operator (Increase limit of the nodes) |
| Member Maintenance Support | 1.2.25 | 1.2.16 | >= 3.8.0 | Enterprise | Production | True | N/A | Enable Member Maintenance during planned restarts |
| Rebalancer | 1.2.15 | 1.2.5 | >= 3.8.0 | Enterprise | Production | True | N/A | N/A |
| TopologyAwareness | 1.2.4 | 1.2.4 | >= 3.8.0 | Enterprise | Production | True | N/A | N/A |
``` Flags: --action.PVCResize.concurrency int Define limit of concurrent PVC Resizes on the cluster (default 32) --agency.refresh-delay duration The Agency refresh delay (0 = no delay) (default 500ms) --agency.refresh-interval duration The Agency refresh interval (0 = do not refresh) --agency.retries int The Agency retries (0 = no retries) (default 1) --api.basic-secret-name string Name of secret containing username + password for login to the dashboard (default "arangodb-operator-credentials") --api.grpc-port int gRPC API port to listen on (default 8728) --api.http-port int HTTP API port to listen on (default 8528) --api.secondary-name stringArray Secondary names for a certificate --api.tls-ca-secret-name string Name of secret containing ca.crt & ca.key for HTTPS API (if does not exist, new one is generated) (default "arangodb-operator-ca") --backup-concurrent-uploads int Number of concurrent uploads per deployment (default 4) --chaos.allowed Set to allow chaos in deployments. Only activated when allowed and enabled in deployment --crd.install Install missing CRD if access is possible (default true) --crd.preserve-unknown-fields stringArray Controls which CRD should have enabled preserve unknown fields in validation schema =
$ claude mcp add kube-arangodb \
-- python -m otcore.mcp_server <graph>