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