Upgrade base OS from Ubuntu 16.04 to 20.04
This article describes the upgrade path and expectations for IDAs moving from ubuntu 16.04 LTS to Ubuntu 20.04 LTS. We will be skipping over 18.04.
This page is public, but some of the details here pertain only to edX deployments, and many of the links are to protected pages.
External Links
Platform, Blockstore and Designer Portal use Aurora clusters in stage or production so they will not be able to be upgraded to Ubuntu 20.04 until the databases are on MySQL 5.7. Ubuntu 20.04 requires TLS 1.2 system wide which isn’t supported for 5.6. You’ll see SSL errors for your database connections if you try.
For regular MySQL RDS, TLS 1.2 is supported for MySQL 5.6.46 and later
Instructions
Upgrading your testing environment
Sandboxes
Update the base AMI on your sandbox build to Ubuntu_20.04
Run the sandbox build for your application, fix bugs, repeat.
Travis CI or CircleCI
This might require you to update the devstack docker container your app runs in. If your app runs travis integration tests in a docker container pulled from the edxops org, you may have to do step 5 (below) first.
Update the
dist:
field in your.travis.yml
file tofocal
Identifying dependency changes
Ansible system packages
Look at the package list passed into the
edx_django_service_debian_pkgs_extra
parameter for your ansible role. This will be in themeta/main.yaml
file, and will probably reference a variable set indefaults/main.yaml
Look at
tasks/main.yaml
and look for calls toapt
.Look up the differences between an 16.04 sandbox vs. a 20.04 sandbox (created above) by running
dpkg -l | grep packagename
on each machine type.on the 20.04 server, run
apt-get changelog packagename
to see the changelog. read through the changelog to determine if any changes need to be accounted for in your use of that dependency. Ask SRE if you need specific advice.
Upgrading Devstack
Find your app in https://github.com/edx/configuration/tree/master/docker/build
change the line
From edxops/xenial-common
toFrom edxops/focal-common
in theDockerfile
run the jenkins job that rebuilds the base image. (https://tools-edx-jenkins.edx.org/job/DockerCI/job/image-builders/)
Upgrading your deployment (this may be a separate ticket)
Make sure all Jenkins jobs that hit this service support the correct version of python and Ubuntu
GoCD Base AMI
Find your IDA’s staging environment config in https://github.com/edx/gomatic-internal/tree/master/gocd/vars/tools/environment-deployment-play
Change the value for
base_ami_ubuntu_version
to20.04
Your pipelines should reseed after your changes are merged, if you have issues ask SRE to reseed your pipelines manually.
Significant Changes since 16.04
Python 2 is no longer in the base image. It will be installed by the ansible bootstrap method, but it may not be identical to what you had on 16.04.
NTPd is no longer used, and instead timesyncd is used.
Timeline
Service | Owner | Current Ubuntu Version | In Open edX? | Ubuntu 20.04 DevStack Upgrade due November 9th | Ubuntu 20.04 Travis Upgrade due November 9th | Ubuntu 20.04 Stage Upgrade Dependent on Aurora upgrade Due January 15 | Ubuntu 20.04 Prod Upgrade Dependent on Aurora upgrade Due January 15 | Ubuntu 20.04 Edge Upgrade Due January 15 |
---|---|---|---|---|---|---|---|---|
Platform (LMS + CMS) | Arbi-BOM - @Jeremy Bowman (Deactivated) | 20.04 | Yes | No Travis Docker Tests | (dedicated aurora) | (dedicated aurora) https://openedx.atlassian.net/browse/BOM-2068 BLOCKED | ||
eCommerce & Workers | Engagement - @Shelby Quinn (Deactivated) / @Seth McCann Dev - @Emma Green (Deactivated) | 20.04 | Yes |
| ||||
Aperture - @Matt Tuchfarber (Deactivated) | 20.04 | Yes |
|
| ||||
Aperture - | 20.04 | No | Upgraded as of October 9 | Upgraded as of October 9 | Upgraded as of October 9 | Upgraded as of October 9 | N/A | |
SRE → ? @Bill DeRusha (Deactivated) | 20.04 | Yes | Upgraded as of October 21 | Upgraded as of October 21 | (shared aurora) Upgraded as of October 21 | (dedicated mysql) Upgraded as of October 21 | Upgraded as of October 21 | |
Arbi-BOM - @Jeremy Bowman (Deactivated) | 20.04 | Yes | (shared aurora) |
| ||||
Registrar & Workers | Programs - @Simon Chen | 20.04 | No | Upgraded as of Sep 29, 2020 | No Travis Docker Tests | (shared aurora) Upgraded as of January 8 | https://openedx.atlassian.net/browse/MST-387 Upgraded as of January 11 | BLOCKED |
Enterprise - @Brandon Baker (Deactivated) | 20.04 | Yes | https://openedx.atlassian.net/browse/ENT-3318 - blocked until at least end November | No Travis Docker Tests | (shared aurora)
|
|
| |
Enterprise - @Brandon Baker (Deactivated) | 20.04 | Yes, for now | https://openedx.atlassian.net/browse/ENT-3319 - blocked until at least end November | No Travis or CircleCI | (shared aurora) |
|
| |
Engage - @Michael Terry (Deactivated) | 20.04 | Yes | Upgraded as of Oct 8, 2020 | Upgraded as of Oct 8, 2020 | (shared aurora)
|
|
| |
Masters - @Simon Chen | 20.04 | No | Upgraded as of Sep 21, 2020 | No Travis or CircleCI | https://openedx.atlassian.net/browse/MST-388 Upgraded as of January 11 | https://openedx.atlassian.net/browse/MST-388 Upgraded as of January 11 |
| |
T&L - @Dave Ormsbee (Deactivated) | 18.04 | Yes | https://openedx.atlassian.net/browse/TNL-7643 https://openedx.atlassian.net/browse/OSPR-5101 - Braden (OpenCraft) | https://openedx.atlassian.net/browse/TNL-7643 https://openedx.atlassian.net/browse/OSPR-5101 - Braden (OpenCraft) | (shared aurora) | (shared aurora) |
| |
Data Engineering - @Brian Beggs | 20.04 | Yes | No Travis Docker Tests | Will be deprecated
| Will be deprecated | Will be deprecated | ||
Data Engineering - @Brian Beggs | 20.04 | Yes | N/A (According to @Brian Beggs , insights and analytics-api do not have a devstack.) | Needs work or investigation | Needs work or investigation | Needs work or investigation | ||
Insights and/or Analytics Dashboard | Data Engineering - @Brian Beggs | 20.04 | Yes | N/A (According to @Brian Beggs , insights and analytics-api do not have a devstack.) | Needs work or investigation | Needs work or investigation | Needs work or investigation | |
Notifier | @Simon Chen , @Julie Davis (Deactivated) - repo owner @Jeremy Bowman (Deactivated) - deprecation | N/A | No | Done 11/13 | No Travis Docker or CircleCI Tests |
| ||
ensure retirement | @Albemarle (Deactivated) | 20.04 | No | Due January 15 - https://openedx.atlassian.net/browse/WS-1413 | Due January 15 - https://openedx.atlassian.net/browse/WS-1413 | Not on Stage Will be retired before December 15 - https://openedx.atlassian.net/browse/WS-1413 | Not on Prod Will be retired before December 15 - https://openedx.atlassian.net/browse/WS-1413 |
|
@Mat Carter (Deactivated) | 20.04 | Yes |
https://openedx.atlassian.net/browse/DOS-1619 - needs to be done by 11/9
16.04 becomes end of life in April, 2021.
Open edX Juniper will ship based on 16.04, but Open edX Koa will ship based on 20.04.
Application Owners should plan to upgrade to 20.04 as part of the Koa release (targeted for December 9, 2020, upgrades must be in place by Nov 9).
Out of Scope
https://github.com/edx/taxonomy-connector - it is currently an IDA, but the goal is to turn it into a plugin for edx-platform, so we don't believe any work is needed.
Related articles
Filter by label
There are no items with the selected labels at this time.