Skip to Content

Helm

Last updated: May 29, 2026


Upgrade instructions for Helm-based installations (Kubernetes and OpenShift). See Release Notes for the full changelog.

Upgrade Paths

Click a version to expand upgrade instructions. Orange rows are migration boundaries. All Helm upgrades require helm uninstall before helm upgrade --install because StatefulSets cannot be updated in-place. PVCs/PVs are preserved.

5.0.0 latest May 28, 2026

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 5.0.0 kubectl get pods # verify all pods are running

4.3.5166-384943f December 11, 2025

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.3.5166-384943f kubectl get pods # verify all pods are running

⚠️ PVC migration — MinIO backup/restore required

Version 4.3.4811 introduces a new PVC xt-git-repositories which replaces the old xt-source-xltrail-volume-xt-git-web-0. Migration uses MinIO as temporary storage.

1. Snapshot the PVC xt-source-xltrail-volume-xt-git-web-0 for backup. Ensure the MinIO PVC has enough space:

kubectl exec xt-git-web-0 -c git -n xltrail -- df -h /source/repositories kubectl exec xt-minio-0 -n xltrail -- df -h /data

2. Uninstall, then run in backup mode (copies repos from old PVC to MinIO):

helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version <target> \ --set maintenanceMode=true --set backupRepositories=true kubectl logs -f xt-git-web-0 -c ops # wait until Running

3. Run in restore mode (copies repos from MinIO to new PVC):

helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version <target> \ --set maintenanceMode=true --set restoreRepositories=true kubectl logs -f xt-app-0 -c ops # wait until Running

4. Start normally:

helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version <target>

5. Verify everything works, then delete the old PVC:

kubectl delete pvc xt-source-xltrail-volume-xt-git-web-0

4.3.4811-3f509cc July 4, 2025

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.3.4811-3f509cc kubectl get pods # verify all pods are running

⚠️ StatefulSet migration — xt-git-web → xt-app

Version 4.2.4548 renamed the StatefulSet from xt-git-web to xt-app. This requires a manual backup and restore of git repositories via MinIO.

1. Backup repositories from xt-git-web-0:

kubectl exec xt-git-web-0 -c git -n xltrail -- \ mc cp --recursive /source/repositories/ minio/xltrail-repositories/

2. Uninstall and deploy the new version (creates xt-app StatefulSet):

helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.2.4548

3. Restore repositories to xt-app-0:

kubectl exec xt-app-0 -c git -n xltrail -- \ mc cp --recursive minio/xltrail-repositories/ /source/repositories/

4. Verify: kubectl get pods — everything should be up and running.

4.2.4548 April 28, 2025

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.2.4548 kubectl get pods # verify all pods are running

4.1.12 March 18, 2025

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.1.12 kubectl get pods # verify all pods are running

4.1.11 March 9, 2025

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.1.11 kubectl get pods # verify all pods are running

4.1.10 February 13, 2025

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.1.10 kubectl get pods # verify all pods are running

4.1.8 January 31, 2025

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.1.8 kubectl get pods # verify all pods are running

4.1.7 October 30, 2024

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.1.7 kubectl get pods # verify all pods are running

4.1.6 October 9, 2024

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.1.6 kubectl get pods # verify all pods are running

⚠️ Non-root migration — fsGroup / chown required

Since 4.1.6, all containers run as non-root user (UID 1001). When upgrading from < 4.1.6, existing files under /source/repositories may be owned by root.

The chart handles this automatically via an init container controlled by git.provisionMountPath (default: true). If your cluster does not allow init containers to run as root, run a one-off pod:

kubectl run chown-repositories -n xltrail \ --image=alpine --restart=Never \ --overrides='{"spec":{"securityContext":{"runAsUser":0},"containers":[{"name":"chown-repositories","image":"alpine","command":["chown","-R","1001:0","/source/repositories"],"volumeMounts":[{"name":"source","mountPath":"/source/repositories"}]}],"volumes":[{"name":"source","persistentVolumeClaim":{"claimName":"xt-source-xltrail-volume-xt-git-web-0"}}]}}' kubectl wait pod chown-repositories -n xltrail \ --for=jsonpath='{.status.phase}'=Succeeded --timeout=5m kubectl delete pod chown-repositories -n xltrail

Then continue with the standard upgrade for your target version.

Symptom of incorrect ownership: Sync error: repository path '/source/repositories/<repo-id>/origin/' is not owned by current user

4.1.5 September 22, 2024

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.1.5 kubectl get pods # verify all pods are running

4.1.4 September 13, 2024

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.1.4 kubectl get pods # verify all pods are running

4.1.3 July 26, 2024

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.1.3 kubectl get pods # verify all pods are running

4.1 July 18, 2024

helm repo add xltrail https://xltrail.com/charts helm repo update helm show values xltrail/xltrail > values.yaml # Merge your settings into values.yaml kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain helm upgrade --install xltrail xltrail/xltrail -f values.yaml --version 4.1 kubectl get pods # verify all pods are running

⚠️ v4.0 upgrade — PVC resize + reprocessing

Upgrading to v4.0 triggers reprocessing of all repositories (may take hours). The xltrail PVC must be resized to match the git PVC.

1. Snapshot PVC xt-source-xltrail-volume-xt-git-web-0 for backup.

2. Uninstall and resize PVC:

kubectl config set-context --current --namespace=xltrail helm uninstall xltrail kubectl get pods # wait until no pods remain kubectl patch pvc xt-source-xltrail-volume-xt-git-web-0 \ -p '{ "spec": { "resources": { "requests": { "storage": "100Gi" }}}}' kubectl get pvc # verify size

3. Install the latest version:

helm upgrade --install xltrail xltrail/xltrail -f values.yaml

4. Migrate drag-and-drop projects (once pods are running):

kubectl exec -it svc/xt-web -c server -- python /server/scripts/k8s_repo_migration.py

Note: Reprocessing may take up to a few hours.

5. Clean up old PVCs (once everything works):

kubectl delete pvc/xt-filestore-volume-xt-filestore-0 kubectl delete pvc/xt-source-git-volume-xt-git-web-0

3.5.0

Update the imageTag under minio in your values.yaml:

imageTag: RELEASE.2021-12-10T23-03-39Z

Then follow the standard upgrade steps.

Last updated on