# Deploying on Kubernetes with Helm

## Install

A Tonic Structural Helm chart is located at: <https://github.com/TonicAI/tonic_helm_charts>.

To use the Helm chart, you can either:

* Use the [OCI-based registry](https://helm.sh/docs/topics/registries/#using-an-oci-based-registry) that Tonic hosts on [Quay.io](https://quay.io/).
* Fork or clone the repository and then maintain it locally.

The Structural images are hosted on [Quay.io.](https://quay.io/) During the onboarding period, you are provided access credentials to our repositories. If you require new credentials, or you experience issues accessing the repository, contact <support@tonic.ai>.

## Configure

Before you deploy Structural, you create a **values.yaml** file with the configuration for your instance.

For details about the required and optional configuration options, go to the [repository readme](https://github.com/TonicAI/tonic_helm_charts#configuration).

## Deploy

To deploy and validate access to Structural from the forked repository, follow the [instructions in the repository readme](https://github.com/TonicAI/tonic_helm_charts#deploy).

To use the OCI-based registry, run:

{% code overflow="wrap" %}

```
helm install structural oci://quay.io/tonicai/structural -f values.yaml -n structural --create-namespace
```

{% endcode %}

## Update

Structural notifies you when the current version is more than 10 versions behind the most recent release. The notification is on the **System Status** tab of **Structural Settings** view.

Before you update, make sure to back up your Structural application database.

To get the latest Structural version, users with the **Update Tonic** global permission can use the [in-app update feature](https://docs.tonic.ai/app/admin/updating-tonic).&#x20;

Alternatively, if you need to specify a particular version of Structural to use, set [`tonicVersion`](https://github.com/TonicAI/tonic_helm_charts#version), then run the following:

```
$ helm upgrade <name_of_release> -n <namespace_name> <path-to-helm-chart>
```

To upgrade using the OCI-based repository, run:

{% code overflow="wrap" %}

```
helm upgrade -n structural structural oci://quay.io/tonicai/structural -f values.yaml --version "1.${TONIC_RELEASE}.0"
```

{% endcode %}

{% hint style="info" %}
When you make changes to your deployment with Helm, if your `tonicVersion` tag is `latest`, make sure that you update all of your individual pods/containers to the same version.
{% endhint %}
