Skip to content

4.0 Migration Guide

Jonathon Saunders edited this page Nov 29, 2023 · 2 revisions

4.0 Migration Guide

CromwellOnAzure 4.0 introduces a number of breaking changes, and doesn't support upgrade from prior versions with the --update flag. However, you can reuse your existing resource groups and many resources such as the storage account and batch account if you like.

VM Based Deployments

Download the containers-to-mount file from your storage account and you can pass it to the deployer.

    ./deploy-cromwell-on-azure-linux --subscriptionid $subscription --regionname $region \
        --mainidentifierprefix $prefix \
        --StorageAccountName $storage_account_name \
        --BatchAccountName $batch_account_name \
        --resourcegroupname $resource_group_name \
        --vnetname $vnet_name \
        --vnetresourcegroupname $resource_group_name \
        --subnetname vmsubnet \
        --containersToMountPath containers-to-mount

After the deployment is finished, you can delete the old CosmosDb account and VM.

AKS Based Deployments

For AKS based deployments, you can do the above as well which will create a new AKS cluster and Postgresql database.

To upgrade to 4.0 with an existing AKS cluster, you can do the following steps.

  1. Create a TES database and Tes user on the Postgresql server.
// Reset Admin password
az postgres server update --resource-group myresourcegroup --name myserver --admin-password <new-password>

// Create TES DB
az postgres db create --resource-group myresourcegroup --server myserver -n tes_db

// Create TES user
PGPASSWORD=<admin-password> -U coa_admin@<myserver> -h <myserver>.postgres.database.azure.com -d tes_db  -v sslmode=true -c "CREATE USER tes WITH PASSWORD '<your-random-tes-password>'; GRANT ALL PRIVILEGES ON DATABASE tes_db TO tes;"
  1. Update the helm chart with the correct values for 4.0.

Images should be the following for 4.0

images:
  cromwell: broadinstitute/cromwell:85
  tes: mcr.microsoft.com/cromwellonazure/tes:4
  triggerservice: mcr.microsoft.com/cromwellonazure/triggerservice:4

This config should be as follows:

  gen2BatchImageOffer: ubuntu-hpc
  gen2BatchImagePublisher: microsoft-dsvm
  gen2BatchImageSku: 2004
  gen2BatchImageVersion: latest
  gen1BatchImageOffer: ubuntu-server-container
  gen1BatchImagePublisher: microsoft-azure-batch
  gen1BatchImageSku: 20-04-lts
  gen1BatchImageVersion: latest
  ...
  batchPrefix: // Fill this value with a random eight character alphanumeric string such as (ER6F4XFI), this value must be unique for TES deployments that share a batch account. 
  1. Finally run the helm update.
az aks get-credentials --resource-group $rgName --name $aksName --subscription $subscription --file kubeconfig.txt
helm upgrade --install cromwellonazure ./helm --kubeconfig kubeconfig.txt --namespace coa

When finished updating, delete the old CosmosDb account, and the old AKS cluster if using the deployer install.

Clone this wiki locally