This guide assumes you are migrating a viya4-deployment (e.g., v8.2.1) to a newer version (e.g., v9.0.0) using the latest viya4-deployment baseline that includes the csi-driver-nfs.
- Ensure you have cluster admin access.
- The NFS server used in the existing setup must be retained and accessible.
- All PVs and PVCs should be backed up as a precaution.
Trigger a manual backup of your running viya4-deployment:
kubectl create job --from=cronjob/sas-scheduled-backup-all-sources manual-backup-$(date +%s) -n <viya4-namespace>Fatch the backup ID
kubectl describe job <backup-job-name> -n va-viya | grep "sas.com/sas-backup-id"kubectl get jobs \
-L "sas.com/sas-backup-id,sas.com/backup-job-type,sas.com/sas-backup-job-status,sas.com/backup-persistence-status" -n viya_namespace_nameStop the SAS viya4 environment using the cron job:
kubectl -n <viya4-namespace> create job --from=cronjob/sas-stop-all stopdep-<date +%s>Example:
kubectl -n viya4 create job --from=cronjob/sas-stop-all stopdep-22072025Remove the sas StorageClass:
For SAS viya4 environments deployed on Google Cloud Platform (GCP), the legacy pg-storage StorageClass must be deleted.
kubectl delete storageclass sasDelete the namespace used by the legacy provisioner (typically nfs-client):
kubectl delete namespace nfs-clientUpdate your DaC baseline to install the CSI NFS driver
To install/upgrade baseline dependencies only using "Docker"
docker run --rm \
--group-add root \
--user $(id -u):$(id -g) \
--volume $HOME/deployments:/data \
--volume $HOME/deployments/dev-cluster/.kube/config:/config/kubeconfig \
--volume $HOME/deployments/dev-cluster/dev-namespace/ansible-vars.yaml:/config/config \
--volume $HOME/.ssh/id_rsa:/config/jump_svr_private_key \
viya4-deployment --tags "baseline,install"To install/upgrade baseline dependencies only using "ansible"
ansible-playbook \
-e BASE_DIR=$HOME/deployments \
-e KUBECONFIG=$HOME/deployments/.kube/config \
-e CONFIG=$HOME/deployments/dev-cluster/dev-namespace/ansible-vars.yaml \
-e JUMP_SVR_PRIVATE_KEY=$HOME/.ssh/id_rsa \
playbooks/playbook.yaml --tags "baseline,install"If you have redeployed viya4-deployment using the 9.0.0 release, which includes CSI NFS driver support, no additional action is required.
However, if you have only updated the viya4-deployment baseline without redeploying viya4, you will need to manually start the viya4 environment using the following command:
kubectl -n <viya4-namespace> create job --from=cronjob/sas-start-all startdep-<date +%s>Important Note: You do not need to restore from backup, as the NFS server path to the PVs remains the same. The CSI driver will reuse existing PVs and directories automatically.
- Confirm all PVCs are bound and mounted correctly in the new viya4-deployment.
- Validate data availability and application functionality.
- The CSI NFS driver offers improved compatibility with newer Kubernetes versions and is the recommended provisioner going forward.
- Avoid reusing the old Helm release metadata (
meta.helm.sh/*) to prevent installation or upgrade conflicts.