Skip to content

Upgrade Run:ai

Preparations

Helm

Run:ai requires Helm 3.14 or later. Before you continue, validate your installed helm client version. To install or upgrade Helm, see Installing Helm. If you are installing an air-gapped version of Run:ai, The Run:ai tar file contains the helm binary.

Software files

Run the helm command below:

helm repo add runai-backend https://runai.jfrog.io/artifactory/cp-charts-prod
helm repo update
  • Ask for a tar file runai-air-gapped-<NEW-VERSION>.tar.gz from Run:ai customer support. The file contains the new version you want to upgrade to. <NEW-VERSION> is the updated version of the Run:ai control plane.
  • Upload the images as described here.

Before upgrade

Before proceeding with the upgrade, it's crucial to apply the specific prerequisites associated with your current version of Run:ai and every version in between up to the version you are upgrading to.

Upgrade from version 2.9

Two significant changes to the control-plane installation have happened with version 2.12: PVC ownership, Ingress and installation customization.

PVC ownership

Run:ai will no longer directly create the PVCs that store Run:ai data (metrics and database). Instead, going forward, * Run:ai requires a Kubernetes storage class to be installed. * The PVCs are created by the Kubernetes StatefulSets.

The storage class, as per Kubernetes standards, controls the reclaim behavior: whether the data is saved or deleted when the Run:ai control plane is deleted.

To remove the ownership in an older installation, run:

kubectl patch pvc -n runai-backend pvc-thanos-receive  -p '{"metadata": {"annotations":{"helm.sh/resource-policy": "keep"}}}'
kubectl patch pvc -n runai-backend pvc-postgresql  -p '{"metadata": {"annotations":{"helm.sh/resource-policy": "keep"}}}'

Ingress

Delete the ingress object which will be recreated by the control plane upgrade

kubectl delete ing -n runai-backend runai-backend-ingress

Installation customization

The Run:ai control-plane installation has been rewritten and is no longer using a backend values file. Instead, to customize the installation use standard --set flags. If you have previously customized the installation, you must now extract these customizations and add them as --set flag to the helm installation:

  • Find previous customizations to the control plane if such exist. Run:ai provides a utility for that here https://raw.githubusercontent.com/run-ai/docs/v2.13/install/backend/cp-helm-vals-diff.sh. For information on how to use this utility please contact Run:ai customer support.
  • Search for the customizations you found in the optional configurations table and add them in the new format.

Upgrade Control Plane

Note

To upgrade to a specific version, modify the --version flag by specifying the desired . You can find all available versions by using the helm search repo runai-backend/control-plane --versions command.

Upgrade from version 2.16

You must perform a two-step upgrade:

  • Upgrade to version 2.18:
helm get values runai-backend -n runai-backend > runai_control_plane_values.yaml
helm upgrade runai-backend -n runai-backend runai-backend/control-plane --version "2.18.0" -f runai_control_plane_values.yaml --reset-then-reuse-values
helm get values runai-backend -n runai-backend > runai_control_plane_values.yaml
helm upgrade runai-backend control-plane-2.18.0.tgz -n runai-backend -f runai_control_plane_values.yaml --reset-then-reuse-values
  • Then upgrade to the required version:
helm get values runai-backend -n runai-backend > runai_control_plane_values.yaml
helm upgrade runai-backend -n runai-backend runai-backend/control-plane --version "<VERSION>" -f runai_control_plane_values.yaml --reset-then-reuse-values
helm get values runai-backend -n runai-backend > runai_control_plane_values.yaml
helm upgrade runai-backend control-plane-<NEW-VERSION>.tgz -n runai-backend -f runai_control_plane_values.yaml --reset-then-reuse-values

Upgrade from version 2.17 or later

If your current version is 2.17 or higher, you can upgrade directly to the required version:

helm get values runai-backend -n runai-backend > runai_control_plane_values.yaml
helm upgrade runai-backend -n runai-backend runai-backend/control-plane --version "<VERSION>" -f runai_control_plane_values.yaml --reset-then-reuse-values
helm get values runai-backend -n runai-backend > runai_control_plane_values.yaml
helm upgrade runai-backend control-plane-<NEW-VERSION>.tgz -n runai-backend -f runai_control_plane_values.yaml --reset-then-reuse-values

Upgrade from version 2.9

helm upgrade -i runai-backend -n runai-backend runai-backend/control-plane --version "~2.19.0" \
--set global.domain=<DOMAIN> \
--set postgresql.primary.persistence.existingClaim=pvc-postgresql \ 
--set thanos.receive.persistence.existingClaim=pvc-thanos-receive 

Note

The helm repository name has changed from runai-backend/runai-backend to runai-backend/control-plane.

helm upgrade -i runai-backend control-plane-<NEW-VERSION>.tgz -n runai-backend \
--set global.domain=<DOMAIN> \
--set postgresql.primary.persistence.existingClaim=pvc-postgresql \ 
--set thanos.receive.persistence.existingClaim=pvc-thanos-receive 

Upgrade Cluster

To upgrade the cluster follow the instructions here.