Deploying with Helm

Install

We have a Tonic Helm chart located here: https://github.com/TonicAI/tonic_helm_charts. Please fork this repository for ease of future updates.

Tonic requires access to a Postgres instance to store user data, DB connection data, and fingerprints. When running in a cloud service (e.g. AWS), we recommend that you use your cloud providers managed database service (e.g. RDS for AWS). If you are running locally, we recommend using a local instance of Postgres as well.

Contact [email protected] to get access to our Quay.io docker repositories for the helm chart.

Copy the values.sample.yaml file in the helm chat to values.yaml, then open the file in you editor of choice. Fill in the connection information to Tonic's Metadata Database, credentials for our Docker repository, and other values, then save and close the file.

Create a Kubernetes namespace:

$ kubectl create namespace <namespace_name>

Deploy the Tonic containers:

$ helm install <name-of-release> -n <your-namespace> <path-to-helm-chart>

You can check the progress of the deploy by running the following command:

$ kubectl get all -n <your-namespace>

Once the deploy has completed, Tonic will be available on ports 80 and 443. If you are having connection issues, please ensure that your instance allows incoming traffic on these ports. If you would like to change these ports, you can do so in the tonic_web_server_service.yaml file in the templates directory of the helm chart.

By default, Tonic will deploy a Classic Load Balancer as defined in the tonic_web_server_service.yaml file. If you need to change this to a different ingress method you can do so by removing the annotations, nodePort, and type variables from the tonic_web_server_service.yaml file and defining your own ingress method in a new ingress.yaml file in the templates directory of the helm chart.

Updating

To get the latest version of Tonic, run the following command:

$ helm upgrade <release-name> -n <your-namespace> <path-to-helm-chart>