diff --git a/.semaphore/semaphore-scheduled-builds.yml b/.semaphore/semaphore-scheduled-builds.yml index 51535e394ea..52b8c4c47ca 100644 --- a/.semaphore/semaphore-scheduled-builds.yml +++ b/.semaphore/semaphore-scheduled-builds.yml @@ -1316,56 +1316,6 @@ blocks: env_vars: - name: STORE_BUILD_CACHE value: "true" - - name: "OpenStack integration (Yoga)" - run: - when: "true or change_in(['/metadata.mk', '/lib.Makefile', '/networking-calico/', '/.semaphore/semaphore.yml.d/blocks/40-openstack.yml'], {pipeline_file: 'ignore'})" - dependencies: - - Prerequisites - task: - agent: - machine: - type: f1-standard-2 - os_image: ubuntu2204 - prologue: - commands: - - cd networking-calico - jobs: - - name: "OpenStack: Unit and FV tests (tox) on Yoga" - commands: - - ../.semaphore/run-and-monitor tox.log make tox-yoga - - name: "OpenStack: Mainline ST (DevStack + Tempest) on Yoga" - commands: - # For some reason python3-wrapt is pre-installed on a Semaphore ubuntu2004 node, but with - # a version (1.11.2) that is different from the version that OpenStack needs (1.13.3), and - # this was causing the DevStack setup to fail, because pip doesn't know how to uninstall - # or replace the existing version. Happily we do know that, so let's do it upfront here. - - sudo apt-get remove -y python3-wrapt || true - # Install all the packages that would trigger an initramfs update using a workaround - # for limited /boot partition space in the ubuntu2004 image - - sudo apt update - - sudo rsync -av /boot/ /boot2/ - - sudo mount --bind /boot2 /boot - - sudo apt install -y cryptsetup lsscsi open-iscsi thin-provisioning-tools - - sudo umount /boot - - sudo rsync -av /boot2/ /boot/ --exclude "*.new" --exclude "*.dpkg-bak" --delete --inplace - - sudo rm -rf /boot2/ - # Set NC_PLUGIN_REPO and NC_PLUGIN_REF so that DevStack will use the networking-calico - # code from the current PR or branch. The following checkout is to make sure of having a - # local ref that we can specify. - - git checkout -b devstack-test - - export NC_PLUGIN_REPO=$(dirname $(pwd)) - - export NC_PLUGIN_REF=$(git rev-parse --abbrev-ref HEAD) - - sudo git config --system --add safe.directory ${NC_PLUGIN_REPO}/.git - # The BIRD config in our DevStack setup is thoroughly broken and generates loads of errors - # in the log. But we don't need it for a single node setup anyway, so let's disable it. - - export CALICO_BGP_MODE=none - - TEMPEST=true OPENSTACK_RELEASE=yoga ./devstack/bootstrap.sh - epilogue: - on_fail: - commands: - - mkdir logs - - sudo journalctl > logs/journalctl.txt - - artifact push job logs - name: "OpenStack integration (Caracal)" run: when: "true or change_in(['/metadata.mk', '/lib.Makefile', '/networking-calico/', '/.semaphore/semaphore.yml.d/blocks/40-openstack.yml'], {pipeline_file: 'ignore'})" diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml index 73b7462adb2..494144c601e 100644 --- a/.semaphore/semaphore.yml +++ b/.semaphore/semaphore.yml @@ -1316,56 +1316,6 @@ blocks: env_vars: - name: STORE_BUILD_CACHE value: "true" - - name: "OpenStack integration (Yoga)" - run: - when: "false or change_in(['/metadata.mk', '/lib.Makefile', '/networking-calico/', '/.semaphore/semaphore.yml.d/blocks/40-openstack.yml'], {pipeline_file: 'ignore'})" - dependencies: - - Prerequisites - task: - agent: - machine: - type: f1-standard-2 - os_image: ubuntu2204 - prologue: - commands: - - cd networking-calico - jobs: - - name: "OpenStack: Unit and FV tests (tox) on Yoga" - commands: - - ../.semaphore/run-and-monitor tox.log make tox-yoga - - name: "OpenStack: Mainline ST (DevStack + Tempest) on Yoga" - commands: - # For some reason python3-wrapt is pre-installed on a Semaphore ubuntu2004 node, but with - # a version (1.11.2) that is different from the version that OpenStack needs (1.13.3), and - # this was causing the DevStack setup to fail, because pip doesn't know how to uninstall - # or replace the existing version. Happily we do know that, so let's do it upfront here. - - sudo apt-get remove -y python3-wrapt || true - # Install all the packages that would trigger an initramfs update using a workaround - # for limited /boot partition space in the ubuntu2004 image - - sudo apt update - - sudo rsync -av /boot/ /boot2/ - - sudo mount --bind /boot2 /boot - - sudo apt install -y cryptsetup lsscsi open-iscsi thin-provisioning-tools - - sudo umount /boot - - sudo rsync -av /boot2/ /boot/ --exclude "*.new" --exclude "*.dpkg-bak" --delete --inplace - - sudo rm -rf /boot2/ - # Set NC_PLUGIN_REPO and NC_PLUGIN_REF so that DevStack will use the networking-calico - # code from the current PR or branch. The following checkout is to make sure of having a - # local ref that we can specify. - - git checkout -b devstack-test - - export NC_PLUGIN_REPO=$(dirname $(pwd)) - - export NC_PLUGIN_REF=$(git rev-parse --abbrev-ref HEAD) - - sudo git config --system --add safe.directory ${NC_PLUGIN_REPO}/.git - # The BIRD config in our DevStack setup is thoroughly broken and generates loads of errors - # in the log. But we don't need it for a single node setup anyway, so let's disable it. - - export CALICO_BGP_MODE=none - - TEMPEST=true OPENSTACK_RELEASE=yoga ./devstack/bootstrap.sh - epilogue: - on_fail: - commands: - - mkdir logs - - sudo journalctl > logs/journalctl.txt - - artifact push job logs - name: "OpenStack integration (Caracal)" run: when: "false or change_in(['/metadata.mk', '/lib.Makefile', '/networking-calico/', '/.semaphore/semaphore.yml.d/blocks/40-openstack.yml'], {pipeline_file: 'ignore'})" diff --git a/.semaphore/semaphore.yml.d/blocks/40-openstack.yml b/.semaphore/semaphore.yml.d/blocks/40-openstack.yml index f6fd51277f8..8e24e5f9d94 100644 --- a/.semaphore/semaphore.yml.d/blocks/40-openstack.yml +++ b/.semaphore/semaphore.yml.d/blocks/40-openstack.yml @@ -1,54 +1,3 @@ -- name: "OpenStack integration (Yoga)" - run: - when: "${FORCE_RUN} or change_in(['/metadata.mk', '/lib.Makefile', '/networking-calico/', '/.semaphore/semaphore.yml.d/blocks/40-openstack.yml'], {pipeline_file: 'ignore'})" - dependencies: - - Prerequisites - task: - agent: - machine: - type: f1-standard-2 - os_image: ubuntu2204 - prologue: - commands: - - cd networking-calico - jobs: - - name: "OpenStack: Unit and FV tests (tox) on Yoga" - commands: - - ../.semaphore/run-and-monitor tox.log make tox-yoga - - name: "OpenStack: Mainline ST (DevStack + Tempest) on Yoga" - commands: - # For some reason python3-wrapt is pre-installed on a Semaphore ubuntu2004 node, but with - # a version (1.11.2) that is different from the version that OpenStack needs (1.13.3), and - # this was causing the DevStack setup to fail, because pip doesn't know how to uninstall - # or replace the existing version. Happily we do know that, so let's do it upfront here. - - sudo apt-get remove -y python3-wrapt || true - # Install all the packages that would trigger an initramfs update using a workaround - # for limited /boot partition space in the ubuntu2004 image - - sudo apt update - - sudo rsync -av /boot/ /boot2/ - - sudo mount --bind /boot2 /boot - - sudo apt install -y cryptsetup lsscsi open-iscsi thin-provisioning-tools - - sudo umount /boot - - sudo rsync -av /boot2/ /boot/ --exclude "*.new" --exclude "*.dpkg-bak" --delete --inplace - - sudo rm -rf /boot2/ - # Set NC_PLUGIN_REPO and NC_PLUGIN_REF so that DevStack will use the networking-calico - # code from the current PR or branch. The following checkout is to make sure of having a - # local ref that we can specify. - - git checkout -b devstack-test - - export NC_PLUGIN_REPO=$(dirname $(pwd)) - - export NC_PLUGIN_REF=$(git rev-parse --abbrev-ref HEAD) - - sudo git config --system --add safe.directory ${NC_PLUGIN_REPO}/.git - # The BIRD config in our DevStack setup is thoroughly broken and generates loads of errors - # in the log. But we don't need it for a single node setup anyway, so let's disable it. - - export CALICO_BGP_MODE=none - - TEMPEST=true OPENSTACK_RELEASE=yoga ./devstack/bootstrap.sh - epilogue: - on_fail: - commands: - - mkdir logs - - sudo journalctl > logs/journalctl.txt - - artifact push job logs - - name: "OpenStack integration (Caracal)" run: when: "${FORCE_RUN} or change_in(['/metadata.mk', '/lib.Makefile', '/networking-calico/', '/.semaphore/semaphore.yml.d/blocks/40-openstack.yml'], {pipeline_file: 'ignore'})" diff --git a/networking-calico/Makefile b/networking-calico/Makefile index 2b39a2a7cdb..96e143c94ff 100644 --- a/networking-calico/Makefile +++ b/networking-calico/Makefile @@ -17,9 +17,6 @@ tox: build-test-container tox-%: upper-constraints-%.txt $(MAKE) tox PIP_CONSTRAINT=/code/upper-constraints-$*.txt -upper-constraints-yoga.txt: - curl -fsSL --retry 5 https://releases.openstack.org/constraints/upper/yoga -o $@ - upper-constraints-caracal.txt: curl -fsSL --retry 5 https://raw.githubusercontent.com/openstack/requirements/refs/heads/$$(./infer-openstack-branch.sh caracal requirements)/upper-constraints.txt -o $@ diff --git a/networking-calico/README.md b/networking-calico/README.md index 74ad4929638..7072322e11d 100644 --- a/networking-calico/README.md +++ b/networking-calico/README.md @@ -16,11 +16,11 @@ features with Calico, please see http://docs.projectcalico.org/master. # Version skew -Calico for OpenStack is tested against two recent LTS OpenStack versions, as [defined by +Calico for OpenStack is tested against one or two recent LTS OpenStack versions, as [defined by Canonical](https://canonical-openstack.readthedocs-hosted.com/en/latest/reference/release-cycle-and-supported-versions/). For recent Calico versions the corresponding versions of OpenStack are as follows. | Calico version | OpenStack versions | | -------------- | ------------------ | -| master | Yoga, Caracal | +| master | Caracal | | v3.30 | Yoga, Caracal | diff --git a/networking-calico/devstack/bootstrap.sh b/networking-calico/devstack/bootstrap.sh index 03ad7431e13..e0fd06f85dd 100755 --- a/networking-calico/devstack/bootstrap.sh +++ b/networking-calico/devstack/bootstrap.sh @@ -92,9 +92,6 @@ fi # Set correct constraints for Tempest to use. We need to do this because we're pinning to a # different version of Tempest than the version that DevStack would naturally use. case "${DEVSTACK_BRANCH}" in - */yoga ) - export UPPER_CONSTRAINTS_FILE=https://releases.openstack.org/constraints/upper/yoga - ;; * ) export UPPER_CONSTRAINTS_FILE=https://raw.githubusercontent.com/openstack/requirements/refs/heads/${DEVSTACK_BRANCH}/upper-constraints.txt ;; diff --git a/networking-calico/devstack/plugin.sh b/networking-calico/devstack/plugin.sh index e880db3e6e0..be02ecadfe1 100644 --- a/networking-calico/devstack/plugin.sh +++ b/networking-calico/devstack/plugin.sh @@ -29,35 +29,6 @@ if [ "${Q_AGENT}" = calico-felix ]; then # Also add BIRD project PPA as a package source. LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 sudo add-apt-repository -y ppa:cz.nic-labs/bird fi - - # If running with OpenStack Yoga, update rtslib-fb to v2.1.76, specifically to - # pick up https://github.com/open-iscsi/rtslib-fb/pull/183, in order to support - # details of the file layout under /sys/kernel/config/target/iscsi/ that changed - # between Ubuntu Focal and Ubuntu Jammy. - # - # Yoga-level OpenStack does not strictly support running on Jammy - in - # particular, because of its upper-constraints.txt using an older version of - # rtslib-fb that is incompatible with Jammy, and because of DevStack's - # SUPPORTED_DISTROS not including "jammy" - but we have been successfully - # running our system test for some time with Yoga on Jammy. So how does that - # make sense? The answer is that rtslib-fb is only used by Cinder, and we don't - # use either Cinder or DevStack in our ST. - # - # We want to keep running DevStack CI with Yoga, and Semaphore's available - # machine types mean that we now have to do that on Jammy. We also want to keep - # installing Cinder in our DevStack setup, because otherwise we can't run the - # "minimum basic scenario" test. So, hack the Yoga install here by updating - # rtslib-fb to v2.1.76. - # - # To be clear, this is unrelated to Calico. It's a workaround to make OpenStack - # Yoga code compatible with Jammy. I'm placing the workaround here simply - # because it's the most convenient place to put it, prior to Cinder being - # installed. - if [ "${DEVSTACK_BRANCH}" = unmaintained/yoga ]; then - sed -i 's,rtslib-fb===2.1.74,rtslib-fb===2.1.76,' ${REQUIREMENTS_DIR}/upper-constraints.txt - grep rtslib-fb ${REQUIREMENTS_DIR}/upper-constraints.txt - pip_install rtslib-fb==2.1.76 - fi ;; install)