Upgrading to Release 2023.03.01

Instructions for upgrading to release 2023.03.01 from 2023.02.01

The instructions assume that you have a terminal located in the installation directory. This is the directory you ran the installer from. It should contain a config.yaml file

1. Add your IP address to the EKS cluster

In our standard installation, the control plane of the EKS cluster is on the public internet with a security group that only allows traffic from specific IP addresses. By default we automatically add the IP address of Saturn Cloud management servers, as well as the NAT gateways for your VPC to this list. During the update process - the IP address of your local machine must also be on this list so that you can communicate with the cluster.

Grab your IP address with a command like

$ curl ifconfig.me

Add this IP address to public_cluster_allow_list:

public_cluster_allow_list:
- 1.2.3.4

Now, add this IP address to the EKS cluster. Navigate to the EKS cluster in the AWS console and click on Networking.

Click on Manage Networking.

Add your IP address to the list with a /32 to make it a cidr block.

2. Get credentials for the Saturn Cloud installation role.

The IAM Role is located in the config.yaml under the field role_arn. Usually this is something like arn:aws:iam::123456789:role/saturn/customer-admin. Grab the external id from config.yaml under the field external_id.

Execute the following to retrieve credentials for the role.

aws sts assume-role --role-arn ${your-role-arn} --role-session-name debug --external-id ${your-external-id} --duration-seconds 3600 --query Credentials

This command will return something like this:

{
    "AccessKeyId": "your-access-key",
    "SecretAccessKey": "your-secret",
    "SessionToken": "your-token",
    "Expiration": "2022-06-23T15:17:55Z"
}

Create a file in the same directory as config.yaml named installer-vars where we will store these temporary AWS credentials.

AWS_DEFAULT_REGION=${your-region}
AWS_ACCESS_KEY_ID=${your-access-key}
AWS_SECRET_ACCESS_KEY=${your-secret}
AWS_SESSION_TOKEN=${your-token}

3. Setup the installer shell

Set the following environment variables. You will need use the values from the previous step.

export INSTALLER_IMAGE=public.ecr.aws/saturncloud/saturn-aws:2023.02.01-7
export DATA_DIR=`pwd`

Now we will start a bash shell inside the installer container.

docker run --rm -it -v ${DATA_DIR}:/sdata --env-file installer-vars ${INSTALLER_IMAGE} bash

The rest of the install commands must take place inside this shell.

3a. Backup all EBS volumes

 python saturn_aws/scripts/main.py snapshots take

Wait 5 minutes for snapshots to complete.

 python saturn_aws/scripts/main.py snapshots validate

3b. Run the upgrade

Run these commands:

python saturn_aws/scripts/main.py migrate /sdata
python saturn_aws/scripts/main.py update-infra /sdata
python saturn_aws/scripts/main.py update-k8s /sdata