1. Images & Charts
  2. arangodb
arangodb

arangodb

Data
Updated 21 hours ago

ArangoDB Overview

Secure your stack with a hardened ArangoDB image freshly-built by Minimus. Minimus images always include the most up-to-date package version for all packages and dependencies.


ArangoDB is a native graph multi-model database that unifies graph, document, key-value, vector, and full-text search in one engine with one query language.


Try It Out

Prerequisites

  • A running Kubernetes cluster (v1.30 or higher is required by KEDA)
  • Helm v3.8 or higher for OCI support (Installation instructions)
  • kubectl installed and configured

Step 1: Start Cluster

If you have a cluster to work with, skip this step. Otherwise, start a Minikube cluster. Deployment instructions

Step 2: Add Repository to your Local Client

Add the Helm chart to your local Helm client.

helm repo add arangodb https://arangodb.github.io/kube-arangodb
helm repo update

Step 3: Deploy Helm Chart

Create values.yaml with the following code:

operator:
  enableCRDManagement: false
  enableCRDCreation: false
  features:
    storageCRD: false
  architectures:
    - amd64
    - arm64

Install the deployment:

helm install arangodb arangodb/kube-arangodb \
  -f values.yaml \
  --wait --timeout 360s

Step 4: Create file single-server.yaml

Save the file to substitute ArangoDB Minimus image and the relevant architecture: amd64 or arm64. The below example assumes amd64.

apiVersion: "database.arangodb.com/v1"
kind: "ArangoDeployment"
metadata:
  name: "example-simple-single"
spec:
  mode: Single
  image: reg.mini.dev/arangodb
  architecture:
    - amd64
  tls:
    ttl: 2160h

Apply configured ArangoDB deployment:

kubectl apply -f single-server.yaml --wait=true --timeout 360s
kubectl wait --for=condition=Ready arangodeployment/example-simple-single --timeout=360s
kubectl wait --for=condition=Ready pod -l app=arangodb --timeout=360s

Next, you'll need to port-forward the server pod that's running the server.

Run the following kubectl command to list the ArangoDB pods and locate the pod name for your example server:

kubectl get pods -l app=arangodb

Open a new terminal window and use kubectl port-forward to map the pod's port 8529 to your local port 8529. Replace <pod-name> with the actual name of the pod you found above:

kubectl port-forward pod/<pod-name> 8529:8529

Once port-forwarding is set up, you can continue following the subsequent steps using your original terminal window.

Step 5: Run Sample Commands

Check ArangoDB API version:

curl -k -u root: https://localhost:8529/_api/version

Create a new database testdb using the ArangoDB shell (arangosh) command-line client tool and print all databases:

ARANGO_POD=$(kubectl get pods -l app=arangodb -o jsonpath='{.items[0].metadata.name}')
kubectl exec $ARANGO_POD -c server -- \
  arangosh --server.endpoint ssl://localhost:8529 \
  --server.username root \
  --server.password "" \
  --javascript.execute-string 'db._createDatabase("testdb"); db._databases().forEach(function(d) { print(d); });'

Visit the Arangodb Web UI at https://localhost:8529/_db/_system/_admin/aardvark/index.html.

Step 6: Clean Up

Uninstall the chart to delete the namespace and its resources, including Pods, Deployments, Services, Secrets, ConfigMaps, etc.:

helm uninstall arangodb

Technical Considerations

The ArangoDB image provided by Minimus is a FIPS-validated, slim, security-hardened alternative to the public image from Docker Hub. The images are largely interchangeable, with a few differences as noted below.

ArangoDB built by Minimus:

  1. Runs as root by default to support required functions. The public image also runs as root.
  2. Drill down on the version specification tab to see the default user, listening ports, entrypoint, volumes, environment variables, etc.

The Payoff

A hardened, minimal image that will remain more secure for the long run and accrue vulnerabilities at a slower rate.


Terms & Info

Trademark

This catalog is published by Minimus. All product names, logos, and marks, other than those belonging to Minimus, shown are owned by their respective rights holders and appear here only to identify the open source software each image contains. Minimus claims no ownership of those marks and implies no affiliation with, endorsement by, certification by, or sponsorship by any rights holder.

Disclaimer

Images are provided "as-is" without warranty of any kind. "Hardened" refers to the security configuration applied at the time of build and does not constitute a guarantee of ongoing security or absence of vulnerabilities. The free tier is provided without support, SLA, or guaranteed patching timelines. Security updates may be applied to paid subscriptions before or instead of free tier images. By pulling or using any image you agree to our Terms of Use.