Skip to main content
Version: 3.1.0

Install Resoto with Kubernetes

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.

Prerequisites​

  • Helm (version 3 or above)
  • Kubernetes cluster (kind or minikube should work as well)
  • At least 2 CPU cores and 8 GB of RAM
note

Resoto performs CPU-intensive graph operations. In a production setup, we recommend at least four cores and 16 gigabytes of RAM. See Configuring Resoto Worker for more information.

Installing Resoto​

Prepare ArangoDB operator​

If you don't have ArangoDB, you can use the operator to install it. See more info here.

You can use the following commands to install the operator:

$ helm repo add arangodb https://arangodb.github.io/kube-arangodb
$ helm repo update
$ helm install kube-arangodb-crd arangodb/kube-arangodb-crd
note

These instructions were tested with version 1.2.15 of the operator.

Install Helm Chart​

  1. Add the Some Engineering Helm chart repository:

    $ helm repo add someengineering https://helm.some.engineering
  2. Update cached chart information:

    $ helm repo update
  3. And install the resoto chart:

    $ helm install resoto someengineering/resoto --set image.tag=3.1.0

And just like that, you have Resoto running in a Kubernetes cluster! A collect run will begin automatically. This first collect usually takes less than 3 minutes.

Launching the Web UI​

  1. Resoto Core provides a service that exposes Resoto UI on port 8900. We recommend configuring an Ingress with a valid certificate for UI access, but you can port-forward the service as a temporary solution:

    $ kubectl port-forward services/resoto-resotocore 8900
  2. Open https://localhost:8900 in your browser to access Resoto UI.

    note

    The SSL certificate is self-signed, but you can safely ignore any browser warnings.

  3. If it is your first time starting Resoto UI, the setup wizard will appear and help you configure Resoto:

    Screenshot of Resoto UI

Launching the Resoto Command-Line Interface​

The resh command is used to interact with resotocore.

We need to first make sure that the deployment is available:

$ kubectl wait --for=condition=available deployment/resoto-resotocore

Then, simply execute the following to access the Resoto Shell interface:

$ kubectl exec -it service/resoto-resotocore -- resh

Resoto Shell

Accessing Credentials​

The Helm chart stack generates credentials that are used by Resoto's components.

These credentials are stored in Kubernetes Secrets as Base64-encoded strings:

SecretDescriptionOutput Command
arango-userThe ArangoDB user and passwordkubectl get secret arango-user -o jsonpath="{.data.password}" \| base64 --decode
resoto-pskThe pre-shared key used for communication between componentskubectl get secret resoto-psk -o jsonpath="{.data.psk}" \| base64 --decode