3 - Upgrade
How to upgrade Memphis on K8S
Discover step-by-step instructions and best practices for safely and efficiently updating your Memphis installation to the latest version.
Step 1: Deploy the new Memphis version

Step 2: Create a second connection for the consumers
Establish an additional connection and consumer entities within each existing consumer, enabling them to consume messages from both the existing Memphis and the newly created version.

Step 3: Shift producers to the newer version
Reestablish the connections for the producers to send messages to the newly created Memphis.

Step 4: Disconnect old consumers' connections
After ensuring that all the existing messages on the older Memphis server have been processed, it is secure to disconnect the connections to the older Memphis server and finalize the migration.

1:1 replacement for >= v1.0.0
Step 0: Obtain user-supplied values.
helm get values memphis --namespace memphis
Step 1: Obtain the credentials of your current deployment.
export CT=$(kubectl get secret --namespace "memphis" memphis-creds -o jsonpath="{.data.CONNECTION_TOKEN}" | base64 -d)
export ROOT_PASSWORD=$(kubectl get secret --namespace "memphis" memphis-creds -o jsonpath="{.data.ROOT_PASSWORD}" | base64 -d)
export PASSWORD=$(kubectl get secret --namespace "memphis" memphis-metadata -o jsonpath="{.data.password}" | base64 -d)
export REPMGR_PASSWORD=$(kubectl get secret --namespace "memphis" memphis-metadata -o jsonpath="{.data.repmgr-password}" | base64 -d)
export ADMIN_PASSWORD=$(kubectl get secret --namespace "memphis" memphis-metadata-coordinator -o jsonpath="{.data.admin-password}" | base64 -d)
export ENCRYPTION_SECRET_KEY=$(kubectl get secret --namespace "memphis" memphis-creds -o jsonpath="{.data.ENCRYPTION_SECRET_KEY}" | base64 -d)
Step 2: Uninstall existing helm installation
helm uninstall memphis --namespace memphis
Data will not be lost! PVCs are not removed and will be re-attached to the new installation
Step 3: Upgrade Memphis helm repo
helm repo update
Step 4: Reinstall Memphis
Upgrade Memphis cluster with "helm upgrade" using a manual rolling upgrade
Step 0: Obtain user-supplied values.
helm get values memphis --namespace memphis
Step 1: Obtain the credentials of your current deployment
export CT=$(kubectl get secret --namespace "memphis" memphis-creds -o jsonpath="{.data.CONNECTION_TOKEN}" | base64 -d)
export ROOT_PASSWORD=$(kubectl get secret --namespace "memphis" memphis-creds -o jsonpath="{.data.ROOT_PASSWORD}" | base64 -d)
export PASSWORD=$(kubectl get secret --namespace "memphis" memphis-metadata -o jsonpath="{.data.password}" | base64 -d)
export REPMGR_PASSWORD=$(kubectl get secret --namespace "memphis" memphis-metadata -o jsonpath="{.data.repmgr-password}" | base64 -d)
export ADMIN_PASSWORD=$(kubectl get secret --namespace "memphis" memphis-metadata-coordinator -o jsonpath="{.data.admin-password}" | base64 -d)
export ENCRYPTION_SECRET_KEY=$(kubectl get secret --namespace "memphis" memphis-creds -o jsonpath="{.data.ENCRYPTION_SECRET_KEY}" | base64 -d)
Step 2: Delete the statefulset with cascade=orphan option
kubectl delete statefulset memphis --cascade=orphan -n memphis
Step 3: Run helm upgrade with all the values you need + updateStrategy=OnDelete
helm repo add memphis https://k8s.memphis.dev/charts/ --force-update &&helm upgrade --install memphis --set metadata.postgresql.password=$PASSWORD,metadata.postgresql.repmgrPassword=$REPMGR_PASSWORD,metadata.pgpool.adminPassword=$ADMIN_PASSWORD,memphis.creds.connectionToken=$CT,memphis.creds.rootPwd=$ROOT_PASSWORD,memphis.creds.encryptionSecretKey=$ENCRYPTION_SECRET_KEY memphis/memphis --create-namespace --namespace memphis --wait
Step 4: Upgrade brokers. Delete one by one and validate each one to get back to the online state.
1:1 replacement for versions < v1.0.0
Step 0: Obtain user-supplied values.
helm get values memphis --namespace memphis
Step 1: Obtain the credentials of your current deployment.
export CT=$(kubectl get secret --namespace "memphis" memphis-creds -o jsonpath="{.data.CONNECTION_TOKEN}" | base64 -d)
export ROOT_PASSWORD=$(kubectl get secret --namespace "memphis" memphis-creds -o jsonpath="{.data.ROOT_PASSWORD}" | base64 -d)
Step 2: Uninstall existing helm installation
helm uninstall memphis -n memphis
Data will not be lost! PVCs are not removed and will be re-attached to the new installation
Step 3: Upgrade Memphis helm repo
helm repo update
Step 4: Reinstall Memphis
Last updated
Was this helpful?