This version of Kaptain includes a different MinIO version than the previous release.

Therefore, you MUST:

  • Upgrade Kaptain BEFORE upgrading DKP.
    Why? DKP versions 2.4 and later remove a MinIO version required for Kaptain. To solve this, Kaptain versions 2.2 and later include their own MinIO instance. Upgrading Kaptain first ensures it has a dedicated MinIO instance before DKP removes MinIO on the DKP side.

  • Create a backup BEFORE upgrading.

Here is a high-level overview of the upgrade process:

  1. Create a backup of your Data in Kaptain 2.1

  2. Update your GitRepository

  3. Upgrade to 2.2

  4. Restore your Backup in Kaptain 2.2

Create a Backup of your Data in Kaptain 2.1

  1. Create a notebook server based on the Tensorflow image in Kaptain. Make certain to specify a data volume size large enough to hold all the data stored in Minio.

  2. Launch a new terminal and run the following commands to create a backup:

    minio_accesskey=$(kubectl get secret minio-creds-secret -o jsonpath="{.data.accesskey}" | base64 --decode)
    minio_secretkey=$(kubectl get secret minio-creds-secret -o jsonpath="{.data.secretkey}" | base64 --decode)
    mc alias set minio http://minio.kubeflow ${minio_accesskey} ${minio_secretkey}
    
    mkdir minio-backup
    mc mirror minio/ minio-backup/
    CODE

Update your GitRepository

For non-airgapped environments, update the GitRepository by modifying the spec.ref.tag of the GitRepository resource to the version you want to upgrade to, for example, from v2.1.0 to v2.2.0.

For air-gapped environments, load all necessary artifacts for installation.

Upgrade to 2.2

Kaptain is a DKP Catalog application. Therefore, follow the steps in the Catalog Application Upgrade section to obtain the current version of Kaptain on DKP. You can upgrade via the UI or CLI.

Restore your Backup in Kaptain 2.2

To restore the data stored in the MinIO server:

  1. Log in to the profile used for backup.

  2. Connect to the notebook server with the new installation of Kaptain.

  3. Execute the following command to restore the data from the terminal:

    minio_accesskey=$(kubectl get secret minio-creds-secret -o jsonpath="{.data.accesskey}" | base64 --decode)
    minio_secretkey=$(kubectl get secret minio-creds-secret -o jsonpath="{.data.secretkey}" | base64 --decode)
    mc alias set minio http://kaptain-minio.kubeflow ${minio_accesskey} ${minio_secretkey}
    
    for bucket in $(ls minio-backup); do mc mb -p minio/${bucket}; done
    mc mirror -a minio-backup/ minio/
    CODE