We list here specific points that should be paid attention to when upgrading an Open edX platform from Ironwood to Juniper. This is not meant as a step-by-step manual, but rather as a high-level guide for operators who already know how to operate an Open edX platform.
This page is very much a work-in-progress. Feel free to edit this page in a collaborative manner if you feel like some elements are missing.
With the new Juniper release, the platform is upgraded to Python 3 and Django 2.2 and Python 2.7 support is completely removed. Perform a triage of all xblocks currently used by your instance and check for compatibility with Python 3 and Django 2.2. If they don't already support python 3 and django 2.2, an upgrade is recommended. For example, xblock-vimeo xblock upgrade.
Upgrade of custom branches
If using a custom edx-platform branch for your deployment, identify the code drift with the corresponding upstream branch. Ensure that these are compatible with python 3 and django 2.2 to add them to your new custom branch that is based on juniper.
Webpack build: Same behaviour can be seen during the webpack build process i.e. the cached files are generated with different hashes on each build, resulting in 404 errors while loading course assets on studio and/or LMS. A quick fix can be to use MD5 hash plugin like in https://github.com/open-craft/edx-platform/pull/268. But a better solution is to use Webpack's Content Hash and upgrade webpack to v4.44.2. Efforts are being made towards upstreaming the fix.
If you are using custom themeing for your instance, check if any stying changes made for juniper are needed and update your custom theme accordingly.
You might need to get the latest templates for some pages and apply your changes on top.
Single Server Install
Mostly using the steps in upgrading from the ironwood release. The first 5 steps assume that MongoDB is running on a separate instance and you are using a RDS Instance for MySQL. If you are running everything locally, skip to step 5 (and ignore 6.b).
Create mongodb instance.
From old open edx instance, use mongodump to backup and then mongorestore into new mongodb instance.
On the new mongodb instance, create edxapp and cs_comments_service users in the respective databases.
Create new RDS instance from a snapshot of your ironwood instance.
Create new EC2 instance for your open edx instance.
Set the following variables to False: ecommerce_create_demo_data, credentials_create_demo_data, DEMO_ROLE_ENABLED
(Optional) Add variables MYSQL_HOST and MONGO_HOSTS and use them as values for EDXAPP_MYSQL_HOST, EDXAPP_MONGO_HOSTS and any other service you want installed (DISCOVERY_MYSQL, DISCOVERY_MYSQL_REPLICA_HOST, ECOMMERCE_DATABASE_HOST, FORUM_MONGO_HOSTS…)