Skip to content

Upgrade Base Versions

Amos Kong edited this page Oct 3, 2021 · 2 revisions

Base Versions of Upgrade Tests

History

We assign the upgrade base_versions from pipelines (eg: jenkins-pipelines/rolling-upgrade-*.jenkinsfile), and the base_versions parameter will be filtered by supportedUpgradeFromVersions.groovy.

We don't support to migrate from enterprise to OSS version, and we share SCT master branch with scylla-master and scylla-enterprise tests. So the enterprise base version should be filtered out in OSS tests.

The base_versions needs to be updated when we have new releases or start to support new distros (eg: centos-9, debian-11, ubuntu-22.04, oel-10, sles), we also need to maintain the base_version of old branches.

Improvement

@amoskong sent a PR (https://github.com/scylladb/scylla-cluster-tests/pull/3794) to make the base version configuration easily.

Setting the base_versions to an empty list in jenkins-pipelines/rolling-upgrade-*.jenkinsfile, then it will switch to Auto Mode. A hydra command will be executed to generate a supported base versions list.

-    base_versions: ['2020.1', '4.5', '2021.1'],`
-    linux_distro: 'centos',`
+    base_versions: [],  // auto mode`
+    linux_distro: 'centos-8',`

I didn't implement all the function by groovy, but implement it with a a new hydra command 'get-base-versions', which reused the helper functions to detect the scylla repo from s3.

Hydra Example

 hydra get-scylla-base-versions --only-print-versions true \
   --linux-distro centos \
   --scylla-repo http://downloads.scylladb.com/unstable/scylla/master\
      /rpm/centos/2021-08-29T00:58:58Z/scylla.repo
 Supported Versions: ['1.0', '1.1', '1.2', '1.3', '1.4', '1.5',
   '1.6', '1.7', '2.0', '2.1', '2.2', '2.3', '2018.1', '2019.1',
   '2020.1', '2021.1', '3.0', '3.1', '3.2', '3.3', '4.0', '4.1',
   '4.2', '4.3', '4.4', '4.5']
 Base Versions: 4.5

Configuration

There are two config in utils/get_supported_scylla_base_versions.py. supported_srt_oss needs to be updated when we have a new scylla-enterprise release. start_support_versions needs to be updated when scylla starts to support a new distro.

  • supported_srt_oss
    • We support to migrate from specific OSS version to enterprise, each enterprise release is based on specific OSS version.
supported_src_oss = {'2021.1': '4.3', '2020.1': '4.0', '2019.1': '3.0'}
  • start_support_versions
    • If new support distro shared repo with others, we need to assign the start support versions. eg: centos8
start_support_versions = {'centos-8': {'scylla': '4.1', 'enterprise': '2021.1'}}

We need to update supported_src_oos when we have new enterprise release. If a new supported distro (eg: centos-9) shares scylla repo with others, we need to update supported_src_oos. debian-11 / ubuntu 2204 has independent repo so it will be detected automatically.