From e1b72b5115d2a47e763210d0b02f217aa4e62956 Mon Sep 17 00:00:00 2001 From: "wu.chunyang" Date: Tue, 25 Jul 2023 14:57:34 +0800 Subject: [PATCH] [CI]: Add support for Ubuntu Jammy Run tests on Ubuntu Jammy in zuul. refer to:https://governance.openstack.org/tc/reference/runtimes/2023.2.html Change-Id: Ib12b92ed4ddd9133ad7a3d079534d02f403dbdc0 --- devstack/settings | 2 +- doc/source/admin/building_guest_images.rst | 12 +++---- doc/source/admin/datastore.rst | 2 +- doc/source/admin/upgrade.rst | 4 +-- integration/README.md | 6 ++-- .../files/elements/guest-agent/pkg-map | 4 +-- .../pre-install.d/10-percona-apt-key | 2 +- integration/scripts/trovestack | 6 ++-- zuul.d/jobs.yaml | 32 +++++++++---------- zuul.d/nodesets.yaml | 8 ++--- zuul.d/projects.yaml | 4 +-- 11 files changed, 40 insertions(+), 42 deletions(-) diff --git a/devstack/settings b/devstack/settings index 8fd7f97c49..5dd2107d66 100644 --- a/devstack/settings +++ b/devstack/settings @@ -31,7 +31,7 @@ TROVE_LOCAL_API_PASTE_INI=${TROVE_LOCAL_API_PASTE_INI:-${TROVE_LOCAL_CONF_DIR}/a TROVE_LOCAL_POLICY_JSON=${TROVE_LOCAL_POLICY_JSON:-${TROVE_LOCAL_CONF_DIR}/policy.yaml} TROVE_IMAGE_OS=${TROVE_IMAGE_OS:-"ubuntu"} -TROVE_IMAGE_OS_RELEASE=${TROVE_IMAGE_OS_RELEASE:-"focal"} +TROVE_IMAGE_OS_RELEASE=${TROVE_IMAGE_OS_RELEASE:-"jammy"} TROVE_DATASTORE_TYPE=${TROVE_DATASTORE_TYPE:-"mysql"} TROVE_DATASTORE_VERSION=${TROVE_DATASTORE_VERSION:-"5.7.29"} diff --git a/doc/source/admin/building_guest_images.rst b/doc/source/admin/building_guest_images.rst index f25a1a40ad..5bfb98d190 100644 --- a/doc/source/admin/building_guest_images.rst +++ b/doc/source/admin/building_guest_images.rst @@ -149,7 +149,7 @@ The trove guest image could be created by running the following command: ${guest_username} \ ${output_image_path} -* Currently, only ``guest_os=ubuntu`` and ``guest_os_release=focal`` are fully +* Currently, only ``guest_os=ubuntu`` and ``guest_os_release=jammy`` are fully tested and supported. * Default input values: @@ -157,7 +157,7 @@ The trove guest image could be created by running the following command: .. code-block:: ini guest_os=ubuntu - guest_os_release=focal + guest_os_release=jammy dev_mode=true guest_username=ubuntu output_image_path=$HOME/images/trove-guest-${guest_os}-${guest_os_release}-dev.qcow2 @@ -182,12 +182,12 @@ The trove guest image could be created by running the following command: extension, e.g. to build a raw image, you can specify ``$your-image-name.raw`` as the ``output_image_path`` parameter. -For example, in order to build a guest image for Ubuntu focal operating +For example, in order to build a guest image for Ubuntu jammy operating system in development mode: .. code-block:: console - $ ./trovestack build-image ubuntu focal true ubuntu + $ ./trovestack build-image ubuntu jammy true ubuntu Once the image build is finished, the cloud administrator needs to register the image in Glance and register a new datastore or version in Trove using @@ -195,12 +195,12 @@ image in Glance and register a new datastore or version in Trove using .. code-block:: console - $ openstack image create trove-guest-ubuntu-focal \ + $ openstack image create trove-guest-ubuntu-jammy \ --private \ --disk-format qcow2 \ --container-format bare \ --tag trove --tag mysql \ - --file ~/images/trove-guest-ubuntu-focal-dev.qcow2 + --file ~/images/trove-guest-ubuntu-jammy-dev.qcow2 $ openstack datastore version create 5.7.29 mysql mysql "" \ --image-tags trove,mysql \ --active --default diff --git a/doc/source/admin/datastore.rst b/doc/source/admin/datastore.rst index ad25d30294..967bf2fc58 100644 --- a/doc/source/admin/datastore.rst +++ b/doc/source/admin/datastore.rst @@ -59,7 +59,7 @@ To create a datastore version: .. code-block:: console openstack image create \ - trove-guest-ubuntu-focal \ + trove-guest-ubuntu-jammy \ --private \ --disk-format qcow2 --container-format bare \ --file $image_file \ diff --git a/doc/source/admin/upgrade.rst b/doc/source/admin/upgrade.rst index 5b72a0b370..4c1ed88fb4 100644 --- a/doc/source/admin/upgrade.rst +++ b/doc/source/admin/upgrade.rst @@ -118,7 +118,7 @@ Upgrade Trove services .. code-block:: console $ stackdir=/opt/stack - $ $stackdir/trove/integration/scripts/trovestack build-image ubuntu focal true ubuntu + $ $stackdir/trove/integration/scripts/trovestack build-image ubuntu jammy true ubuntu #. Trove database migration. @@ -146,7 +146,7 @@ Upgrade Trove services .. code-block:: console - $ imageid=$(openstack image create trove-guest-victoria-ubuntu-focal-dev \ + $ imageid=$(openstack image create trove-guest-victoria-ubuntu-jammy-dev \ --private \ --disk-format qcow2 --container-format bare \ --file ${imagefile-path} \ diff --git a/integration/README.md b/integration/README.md index 07e7a91bf7..6481e9f87e 100644 --- a/integration/README.md +++ b/integration/README.md @@ -2,7 +2,7 @@ ## Steps to setup environment -Install a fresh Ubuntu 20.04 (focal) image. We suggest creating a development virtual machine using the image. +Install a fresh Ubuntu 22.04 (jammy) image. We suggest creating a development virtual machine using the image. 1. Login to the machine as root 1. Make sure we have git installed @@ -137,10 +137,10 @@ PATH_DEVSTACK_OUTPUT=/opt/stack \ - If `dev_mode=true`, no Trove code is injected into the guest image. The guest agent will download Trove code during the service initialization. -For example, build a Mysql image for Ubuntu Focal operating system: +For example, build a Mysql image for Ubuntu jammy operating system: ```shell -$ ./trovestack build-image mysql ubuntu focal false +$ ./trovestack build-image mysql ubuntu jammy false ``` ### Running Integration Tests diff --git a/integration/scripts/files/elements/guest-agent/pkg-map b/integration/scripts/files/elements/guest-agent/pkg-map index 64d8b06840..9e50f762b6 100644 --- a/integration/scripts/files/elements/guest-agent/pkg-map +++ b/integration/scripts/files/elements/guest-agent/pkg-map @@ -1,10 +1,8 @@ { - "release": { + "distro": { "ubuntu": { - "focal": { "ureadahead": "" } - } }, "family": { "redhat": { diff --git a/integration/scripts/files/elements/ubuntu-mysql/pre-install.d/10-percona-apt-key b/integration/scripts/files/elements/ubuntu-mysql/pre-install.d/10-percona-apt-key index 37f85bf885..bf6ab23591 100755 --- a/integration/scripts/files/elements/ubuntu-mysql/pre-install.d/10-percona-apt-key +++ b/integration/scripts/files/elements/ubuntu-mysql/pre-install.d/10-percona-apt-key @@ -7,7 +7,7 @@ set -e set -o xtrace GUEST_USERNAME=${GUEST_USERNAME:-"ubuntu"} -RELEASE=${DIB_RELEASE:-"focal"} +RELEASE=${DIB_RELEASE:-"jammy"} # Add Percona GPG key mkdir -p /home/${GUEST_USERNAME}/.gnupg diff --git a/integration/scripts/trovestack b/integration/scripts/trovestack index 4f96d0139a..810379de75 100755 --- a/integration/scripts/trovestack +++ b/integration/scripts/trovestack @@ -752,7 +752,7 @@ function cmd_build_image() { exclaim "Params for cmd_build_image function: $@" local image_guest_os=${1:-'ubuntu'} - local image_guest_release=${2:-'focal'} + local image_guest_release=${2:-'jammy'} local dev_mode=${3:-'true'} local guest_username=${4:-'ubuntu'} local output=$5 @@ -775,7 +775,7 @@ function cmd_build_image() { if is_fedora; then sudo $HTTP_PROXY $PKG_MGR $PKG_GET_ARGS install epel-release sudo $PKG_MGR config-manager --set-enabled epel - sudo $HTTP_PROXY $PKG_MGR $PKG_GET_ARGS install qemu-img git kpartx debootstrap squashfs-tools python3-pip python3-setuptools + sudo $HTTP_PROXY $PKG_MGR $PKG_GET_ARGS install qemu-img git kpartx debootstrap squashfs-tools python3-pip python3-setuptools zstd else sudo $HTTP_PROXY $PKG_MGR $PKG_GET_ARGS install qemu-utils git kpartx debootstrap squashfs-tools python3-pip python3-setuptools fi @@ -787,7 +787,7 @@ function cmd_build_image() { # Build guest image and upload to Glance, register the datastore and configuration parameters. function cmd_build_and_upload_image() { local guest_os=${1:-"ubuntu"} - local guest_release=${2:-"focal"} + local guest_release=${2:-"jammy"} local dev_mode=${3:-"true"} local guest_username=${4:-"ubuntu"} local output_dir=${5:-"$HOME/images"} diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 92c036a9d6..de920f9991 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -79,7 +79,7 @@ - job: name: trove-functional-mysql parent: trove-devstack-base - nodeset: trove-ubuntu-focal + nodeset: trove-ubuntu-jammy timeout: 10800 vars: devstack_localrc: @@ -95,7 +95,7 @@ vars: devstack_localrc: TROVE_RESIZE_TIME_OUT: 1800 - TROVE_NON_DEV_IMAGE_URL: https://tarballs.opendev.org/openstack/trove/images/trove-master-mysql-ubuntu-focal.qcow2 + TROVE_NON_DEV_IMAGE_URL: https://tarballs.opendev.org/openstack/trove/images/trove-master-mysql-ubuntu-jammy.qcow2 trove_resize_time_out: 1800 trove_test_datastore: 'mysql' trove_test_group: 'mysql' @@ -270,7 +270,7 @@ - job: name: trove-tempest parent: devstack-tempest - nodeset: trove-ubuntu-focal + nodeset: trove-ubuntu-jammy timeout: 10800 required-projects: &base_required_projects - openstack/trove @@ -366,7 +366,7 @@ - job: name: trove-tempest-postgres parent: devstack-tempest - nodeset: trove-ubuntu-focal + nodeset: trove-ubuntu-jammy timeout: 10800 required-projects: - openstack/trove @@ -462,10 +462,10 @@ - job: name: trove-ubuntu-guest-image-build run: playbooks/image-build/run.yaml - nodeset: trove-ubuntu-focal-single + nodeset: trove-ubuntu-jammy-single timeout: 3600 description: | - Build Ubuntu focal based image only on ubuntu distro. + Build Ubuntu jammy based image only on ubuntu distro. required-projects: - openstack/diskimage-builder - openstack/trove @@ -474,7 +474,7 @@ - ^integration/(scripts|tests)/ vars: guest_os: ubuntu - guest_os_release: focal + guest_os_release: jammy guest_username: ubuntu branch: master dev_mode: false @@ -486,7 +486,7 @@ nodeset: trove-centos8s-single timeout: 3600 description: | - Build Ubuntu focal based image only on centos8 stream. + Build Ubuntu jammy based image only on centos8 stream. required-projects: - openstack/diskimage-builder - openstack/trove @@ -495,35 +495,35 @@ - ^integration/(scripts|tests)/ vars: guest_os: ubuntu - guest_os_release: focal + guest_os_release: jammy guest_username: ubuntu branch: master dev_mode: false image_suffix: "" - job: - name: publish-trove-guest-image-ubuntu-focal + name: publish-trove-guest-image-ubuntu-jammy parent: publish-trove-guest-image description: | - Build and publish Ubuntu focal based Trove guest image to + Build and publish Ubuntu jammy based Trove guest image to tarballs.openstack.org. vars: guest_os: ubuntu - guest_os_release: focal + guest_os_release: jammy guest_username: ubuntu branch: master dev_mode: false image_suffix: "" - job: - name: publish-trove-guest-image-ubuntu-focal-dev + name: publish-trove-guest-image-ubuntu-jammy-dev parent: publish-trove-guest-image description: | - Build and publish Ubuntu focal based Trove guest image to + Build and publish Ubuntu jammy based Trove guest image to tarballs.openstack.org. vars: guest_os: ubuntu - guest_os_release: focal + guest_os_release: jammy guest_username: ubuntu branch: master dev_mode: true @@ -537,6 +537,6 @@ run: playbooks/image-build/docker-registry.yaml parent: publish-openstack-artifacts post-run: playbooks/image-build/post.yaml - nodeset: trove-ubuntu-focal-single + nodeset: trove-ubuntu-jammy-single required-projects: - openstack/trove diff --git a/zuul.d/nodesets.yaml b/zuul.d/nodesets.yaml index 848f834077..6483224c61 100644 --- a/zuul.d/nodesets.yaml +++ b/zuul.d/nodesets.yaml @@ -1,18 +1,18 @@ - nodeset: - name: trove-ubuntu-focal + name: trove-ubuntu-jammy nodes: - name: controller - label: nested-virt-ubuntu-focal + label: nested-virt-ubuntu-jammy groups: - name: tempest nodes: - controller - nodeset: - name: trove-ubuntu-focal-single + name: trove-ubuntu-jammy-single nodes: - name: primary - label: ubuntu-focal + label: ubuntu-jammy - nodeset: name: trove-centos8s-single diff --git a/zuul.d/projects.yaml b/zuul.d/projects.yaml index f6f3b55a16..09dba9d7ed 100644 --- a/zuul.d/projects.yaml +++ b/zuul.d/projects.yaml @@ -39,9 +39,9 @@ - trove-scenario-mariadb-multi periodic: jobs: - - publish-trove-guest-image-ubuntu-focal: + - publish-trove-guest-image-ubuntu-jammy: branches: ^(?!stable/.*).*$ - - publish-trove-guest-image-ubuntu-focal-dev: + - publish-trove-guest-image-ubuntu-jammy-dev: branches: ^(?!stable/.*).*$ - publish-trove-datastore-images: branches: ^(?!stable/.*).*$