Upgrade Guide for v9 to v10 or v20.6.0

Hi,

I would like to upgrade my sentry v9.0.0 to v10.0.0 or v20.6.0 (is this GA), i am currently running my setup on k8s, like below :

kubectl get pods -n sentry
NAME READY STATUS RESTARTS AGE
sentry-pgmetrics-77f8dfcbf9-ntzdp 1/1 Running 0 7d8h
sentry-postgresql-307758786-g42sb 3/3 Running 0 7d8h
sentry-redis-1445743939-rxzjc 1/1 Running 0 7d8h
sentry-sentry-5d54fd49c5-ln5jz 1/1 Running 0 7d8h
sentry-sentry-5d54fd49c5-rl9mb 1/1 Running 0 7d8h
sentry-sentry-cron-25066699-m5dkj 1/1 Running 0 7d8h
sentry-sentry-operator-991458702-kphzw 1/1 Running 0 7d8h
sentry-sentry-pruning-2654542752-c87bx 1/1 Running 0 7d8h
sentry-sentry-worker-2450742215-njcsm 1/1 Running 0 7d8h
sentry-sentry-worker-2450742215-wrp4k 1/1 Running 0 7d8h

I did review many docs and online articles for the upgrade but there is No clear upgrade path or documentation:

https://medium.com/@tnesztler/upgrade-from-sentry-9-to-sentry-10-on-aws-77ed7fd1824

Wasnt able to add other links to the post due to new user restrictions.

Is it mandatory to upgrade to v9.1.2 prior to upgrade to v10.0.0 ?

Would be great to get assistance on this query.

Regards,
Rajiv

Yes. For the new database migrations to work, you first need to upgrade to 9.1.2, run sentry upgrade and then continue onward to Sentry 10+ (or 20.6.0).

Unfortunately there’s still no official guide for upgrading from Sentry 9 to 10, or for migrating from a non-Docker installation to our Docker-based installation. We are planning to have this in the coming months though.

Also, v20.6.0 is GA. It was tagged yesterday but we were already telling people to use :latest for everything. What this version provides you is a single version across all projects you can refer to, instead of separate SHAs, that are known to work well together. This should help you deploy Sentry yourself on AWS etc.

Thanks for the details info, do we need to upgrade python 2.7 to python 3.6 ?

Do these dependants need to run as independent pods ? https://github.com/getsentry/onpremise/blob/131a324af29c57716830c02996e753ee36d58d1b/docker-compose.yml#L17-L22

Sentry itself needs Python 2.7 still (work ongoing for Py3 migration) whereas Snuba uses Python 3.7. When using Docker images, this should be irrelevant as they are all isolated.

Those are all independent services, just using the same main application but with different parameters so I think yes (I don’t know what you are referring to as independent pods).

My sentry on production runs on k8s

kubectl get pods -n sentry
NAME READY STATUS RESTARTS AGE
sentry-pgmetrics-77f8dfcbf9-ntzdp 1/1 Running 0 7d8h
sentry-postgresql-307758786-g42sb 3/3 Running 0 7d8h
sentry-redis-1445743939-rxzjc 1/1 Running 0 7d8h
sentry-sentry-5d54fd49c5-ln5jz 1/1 Running 0 7d8h
sentry-sentry-5d54fd49c5-rl9mb 1/1 Running 0 7d8h
sentry-sentry-cron-25066699-m5dkj 1/1 Running 0 7d8h
sentry-sentry-operator-991458702-kphzw 1/1 Running 0 7d8h
sentry-sentry-pruning-2654542752-c87bx 1/1 Running 0 7d8h
sentry-sentry-worker-2450742215-njcsm 1/1 Running 0 7d8h
sentry-sentry-worker-2450742215-wrp4k 1/1 Running 0 7d8h

do these services need to run as an individual pod or would it be present in v9.1.2 docker image ?

The Sentry Docker images only contain Sentry, nothing else.