---
title: Turbine 23.5.6 Upgrade Instructions
slug: turbine-upgrade-guide/turbine-2356-upgrade-instructions
docTags: 
createdAt: 2025-12-01T08:44:59.054Z
---

Use these upgrade instructions to upgrade your instance of Turbine 23.x. The instructions are organized by subsections of this document that will help you upgrade by specific installation type, whether you have an embedded or existing cluster installation.
 <u>**Known Issue with Embedded/Existing Cluster/helm Installations:**</u>&#x20;
We are aware of an issue where the user is 'unable to generate a URL while creating a webhook'. There is a workaround for that for now. This script which can be used on all deployment methods, for KOTS (existing or embedded clusters) and for helm deployments. Contact Support for additional details.&#x20;

### Instructions:

1. **Set the value for the NS variable in line 5 to the Kubernetes namespace where Turbine has been installed.**
   - KOTS existing cluster and Helm deployments allow setting the namespace where the app is installed.
   - KOTS embedded cluster should be set to “default”.
2. **Copy the script to a computer where you have access to the Kubernetes cluster.&#x20;**

:::BlockQuote{indent="1"}
\#!/bin/bash
set -e
\# Set the Kubernetes namespace where Turbine is installed, this should be  "default" for a Turbine installation with an embedded cluster
\# NS=default
NS=
\[\[ -z $NS ]] && echo "This script requires that you set the name of the Kubernetes namespace where Turbine is installed in the NS variable." && exit 1

configmap=$(kubectl -n $NS get configmap tenant-services -o jsonpath='\{.data.turbine\\-init\\-tenant\\-job\\.yaml}')
tenants=$(kubectl get ns -l "app.kubernetes.io/name"="tenant-services" -o json | jq -r '.items\[] | .metadata.labels."tenant.swimlane.io/account-id" + ";" + .metadata.labels."tenant.swimlane.io/tenant-id"')
IFS=$'\n'
for i in $tenants;do
&#x20; accountid=$(echo $i | cut -d";" -f1)
&#x20; tenantid=$(echo $i | cut -d";" -f2)
&#x20; yaml=$(echo "$configmap" | sed -r -e "s/REPLACE\_ACCOUNT\_ID/$&#x7B;accountid}/g" -e "s/REPLACE\_TENANT\_ID/$&#x7B;tenantid}/g")
&#x20; echo "$yaml" | kubectl -n tenant$tenantid apply -f -
done
:::

3. Run the script on the host with a command like “chmod +x script.sh && ./script.sh"
4. The script will show the output of the kubectl command which applies the job manifest for each tenant&#x20;

:::BlockQuote{indent="1"}
$ chmod +x script.sh && ./script.sh
job.batch/tenant-init-791dac50-10cc-4096-944f-a2ae98560d1a created
:::

## Upgrade Turbine on Embedded Cluster Installations

Use the following instructions to upgrade this version of Swimlane on an embedded cluster installation.

Prerequisites:

- Turbine version 23.2.x+
- MongoDB 5.0.23

**Important!&#x20;**&#x53;wimlane recommends that you perform a MongoDB backup prior to starting this update. For more information, see Backup and Restore on an Embedded Cluster with Snapshots.

### Upgrade Instructions

1. SSH into any node in your deployment.
2. Scale down EKCO and kotsadm-rqlite.

:::BlockQuote{indent="1"}
kubectl scale deployment ekc-operator --replicas=0 -n kurl
kubectl scale statefulsets kotsadm-rqlite --replicas=0 -n default &#x20;
:::

3. Execute the following command to begin the Turbine Platform Installer component upgrade:&#x20;

:::BlockQuote{indent="1"}
$ curl -sSL https\://kurl.sh/turbine-turbine-23-5-6 | sudo bash -s ha&#x20;
:::

:::Paragraph{indent="1"}
**NOTE:** If you have configured SELinux, add this to the end of the command above:
:::

:::BlockQuote{indent="1"}
installer-spec-file=se.yaml
:::

4. After the install script has completed, log in to the Turbine Platform Installer dashboard (https\://\<SwimlaneDNS>:8800).
5. Go to the Version History tab and click Check For Updates.
6. A pop-up window appears, click **Go to updated version** and click configure.
7. Scroll down to Swimlane Logging Level and change default, warn, to info and then save.
8. Click **Deploy** on the new 23.5.6 version with the highest sequence number at the top of the versions list.
9. Once the Application tab shows ‘Ready’ your upgrade is complete.

## Upgrade Turbine on Existing Cluster Installations

Prerequisites:

- Turbine version 23.2.x+
- MongoDB 5.0.23
- Kubernetes 1.22-1.27
- KOTS kubectl plugin 1.107.3
- Velero 1.10.x

**Important!&#x20;**&#x53;wimlane recommends that you perform a MongoDB backup prior to starting this update. For more information, see Backup and Restore on an Existing Cluster with Snapshots.

### Upgrade Instructions

1. Prepare the Swimlane Turbine Installer Kubectl Add-on

   1. Download the Swimlane Turbine Installer kubectl add-on for the OS version where you run kubectl commands from:
      Linux: https\://get.swimlane.io/turbine/existing-cluster/install/linux
      OSX: https\://get.swimlane.io/turbine/existing-cluster/install/osx
   2. Untar the file:

   :::BlockQuote
   tar zxf kots\_\<OS version>.tar.gz
   :::

   3. Rename the kots binary to kubectl-kots:

   :::BlockQuote
   mv kots kubectl-kots
   :::

   4. Move the kubectl-kots binary into your PATH so that it can be recognized by kubectl (e.g. /usr/local/bin/)

   :::BlockQuote
   mv kubectl-kots /usr/local/bin/
   :::
2. Run the upgrade command:

:::BlockQuote{indent="1"}
kubectl kots admin-console upgrade -n \<namespace>
:::

3. Download Velero 1.10.2 for your OS version:
   https\://github.com/vmware-tanzu/velero/releases/tag/v1.10
4. Untar the file and then change directory (cd) into the uncompressed directory:

:::BlockQuote{indent="1"}
$ tar -zxf \<FILENAME>.tar.gz
:::

:::BlockQuote{indent="1"}
$ cd \<DIRECTORY>
:::

5. Update Velero custom resource definitions:

:::BlockQuote{indent="1"}
$ ./velero install --crds-only --dry-run -o yaml | kubectl apply -f -
:::

6. Update the images Velero and Restic use to 1.10.2

:::BlockQuote{indent="1"}
$ kubectl set image deployment/velero velero=velero/velero\:v1.10.2 --namespace velero
:::

:::BlockQuote{indent="1"}
$ kubectl set image daemonset/restic restic=velero/velero\:v1.10.2 --namespace velero
:::

:::Paragraph{indent="1"}
**Note:&#x20;**&#x54;his update may take a minute in order to get the new pods rolled out.
:::

7. Confirm that both the client and server versions are on the same 1.10.2 release:

:::BlockQuote{indent="1"}
$ ./velero version
:::

8. When the upgrade is complete, login to the Turbine Installer dashboard (https\://\<SwimlaneDNS>:8800).
9. Go to the Version History tab - you will see a version for 23.5.6
10. Click **Deploy** once the preflight checks have completed.
11. A new configuration is needed for the Elasticsearch persistent volume size and storageclass. Recommended sizes for small/medium/large environments are 8GB/16GB/32GB respectively.
12. Once the Application tab shows ‘Ready’ your upgrade is complete.

## Upgrade Turbine on Embedded Airgap Cluster Installations

### \[ 23.5.6 Will not be available for airgapped environments. 23.5.7 is expected to follow shortly which will have airgap support.]&#x20;

## Upgrade Turbine on Existing Airgap Cluster Installations

### \[ 23.5.6 Will not be available for airgapped environments. 23.5.7 is expected to follow shortly which will have airgap support.]&#x20;

