diff --git a/images/barbican/Dockerfile b/images/barbican/Dockerfile index 6d6e07bdc..93b86e265 100644 --- a/images/barbican/Dockerfile +++ b/images/barbican/Dockerfile @@ -1,18 +1,18 @@ -# SPDX-License-Identifier: Apache-2.0 -# Atmosphere-Rebuild-Time: 2024-06-25T22:49:25Z +# Copyright (c) 2024 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only +# Atmosphere-Rebuild-Time: 2025-01-04T23:34:28Z ARG RELEASE +ARG FROM=harbor.atmosphere.dev/library/centos:${RELEASE} -FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build -ARG BARBICAN_GIT_REF=ca57ef5436e20e90cf6cd6853efe3c89a9afd986 -ADD --keep-git-dir=true https://opendev.org/openstack/barbican.git#${BARBICAN_GIT_REF} /src/barbican -RUN git -C /src/barbican fetch --unshallow -RUN --mount=type=cache,mode=0755,target=/root/.cache/pip,sharing=private < -Date: Fri, 1 Mar 2024 13:50:13 +0800 -Subject: [PATCH 1/3] Create encrypted volumes directly to RBD - -This fix slow on create encrypted volumes with temp file import. -Encrypted volume create is now directly upload to RBD with qemu-img -command without temprory image file generated. - -Closes-Bug: #2055517 -Change-Id: If7a72a4acd5600de1350289a9d9c38017d42659e ---- - cinder/tests/unit/volume/drivers/test_rbd.py | 9 +-- - cinder/volume/drivers/rbd.py | 62 +++++++++---------- - ...ate-encrypted-volume-c1bb6b44b85c0242.yaml | 7 +++ - 3 files changed, 40 insertions(+), 38 deletions(-) - create mode 100644 releasenotes/notes/improve-create-encrypted-volume-c1bb6b44b85c0242.yaml - -diff --git a/cinder/tests/unit/volume/drivers/test_rbd.py b/cinder/tests/unit/volume/drivers/test_rbd.py -index f1ffeb89e..cf768df06 100644 ---- a/cinder/tests/unit/volume/drivers/test_rbd.py -+++ b/cinder/tests/unit/volume/drivers/test_rbd.py -@@ -3247,7 +3247,6 @@ class RBDTestCase(test.TestCase): - self.__dict__ = d - - mock_temp_file.return_value.__enter__.side_effect = [ -- DictObj({'name': '/imgfile'}), - DictObj({'name': '/passfile'})] - - key_mgr = fake_keymgr.fake_api() -@@ -3268,15 +3267,13 @@ class RBDTestCase(test.TestCase): - self.context) - mock_open.assert_called_with('/passfile', 'w') - -- mock_exec.assert_any_call( -+ mock_exec.assert_called_with( - 'qemu-img', 'create', '-f', 'luks', '-o', - 'cipher-alg=aes-256,cipher-mode=xts,ivgen-alg=essiv', - '--object', - 'secret,id=luks_sec,format=raw,file=/passfile', -- '-o', 'key-secret=luks_sec', '/imgfile', '12288M') -- mock_exec.assert_any_call( -- 'rbd', 'import', '--dest-pool', 'rbd', '--order', 22, -- '/imgfile', self.volume_c.name) -+ '-o', 'key-secret=luks_sec', 'rbd:rbd/%s' % self.volume_c.name, -+ '12288M') - - @mock.patch('cinder.objects.Volume.get_by_id') - @mock.patch('cinder.db.volume_glance_metadata_get', return_value={}) -diff --git a/cinder/volume/drivers/rbd.py b/cinder/volume/drivers/rbd.py -index 1f4dac8d9..aace801f3 100644 ---- a/cinder/volume/drivers/rbd.py -+++ b/cinder/volume/drivers/rbd.py -@@ -1089,8 +1089,8 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD, - context: context.RequestContext) -> None: - """Create an encrypted volume. - -- This works by creating an encrypted image locally, -- and then uploading it to the volume. -+ This works by creating an encrypted image and -+ then uploading it to the volume directly. - """ - encryption = volume_utils.check_encryption_provider(volume, context) - -@@ -1102,37 +1102,35 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD, - # create a file - tmp_dir = volume_utils.image_conversion_dir() - -- with tempfile.NamedTemporaryFile(dir=tmp_dir) as tmp_image: -- with tempfile.NamedTemporaryFile(dir=tmp_dir) as tmp_key: -- with open(tmp_key.name, 'w') as f: -- f.write(passphrase) -- -- cipher_spec = image_utils.decode_cipher(encryption['cipher'], -- encryption['key_size']) -- -- create_cmd = ( -- 'qemu-img', 'create', '-f', 'luks', -- '-o', 'cipher-alg=%(cipher_alg)s,' -- 'cipher-mode=%(cipher_mode)s,' -- 'ivgen-alg=%(ivgen_alg)s' % cipher_spec, -- '--object', 'secret,id=luks_sec,' -- 'format=raw,file=%(passfile)s' % {'passfile': -- tmp_key.name}, -- '-o', 'key-secret=luks_sec', -- tmp_image.name, -- '%sM' % (volume.size * 1024)) -- self._execute(*create_cmd) -- -- # Copy image into RBD -- chunk_size = self.configuration.rbd_store_chunk_size * units.Mi -- order = int(math.log(chunk_size, 2)) -+ with tempfile.NamedTemporaryFile(dir=tmp_dir) as tmp_key: -+ with open(tmp_key.name, 'w') as f: -+ f.write(passphrase) - -- cmd = ['rbd', 'import', -- '--dest-pool', self.configuration.rbd_pool, -- '--order', order, -- tmp_image.name, volume.name] -- cmd.extend(self._ceph_args()) -- self._execute(*cmd) -+ cipher_spec = image_utils.decode_cipher(encryption['cipher'], -+ encryption['key_size']) -+ -+ _, conf, user_id, _ = self._get_config_tuple() -+ rbd_options = '' -+ if user_id: -+ rbd_options += ':id=%(user_id)s' % {'user_id': user_id} -+ if conf: -+ rbd_options += ':conf=%(conf)s' % {'conf': conf} -+ create_cmd = ( -+ 'qemu-img', 'create', '-f', 'luks', -+ '-o', 'cipher-alg=%(cipher_alg)s,' -+ 'cipher-mode=%(cipher_mode)s,' -+ 'ivgen-alg=%(ivgen_alg)s' % cipher_spec, -+ '--object', 'secret,id=luks_sec,' -+ 'format=raw,file=%(passfile)s' % {'passfile': -+ tmp_key.name}, -+ '-o', 'key-secret=luks_sec', -+ 'rbd:%(pool_name)s/%(image_name)s%(rbd_options)s' % { -+ 'pool_name': self.configuration.rbd_pool, -+ 'image_name': volume.name, -+ 'rbd_options': rbd_options -+ }, -+ '%sM' % (volume.size * 1024)) -+ self._execute(*create_cmd) - - def create_volume(self, volume: Volume) -> dict[str, Any]: - """Creates a logical volume.""" -diff --git a/releasenotes/notes/improve-create-encrypted-volume-c1bb6b44b85c0242.yaml b/releasenotes/notes/improve-create-encrypted-volume-c1bb6b44b85c0242.yaml -new file mode 100644 -index 000000000..8bdff6746 ---- /dev/null -+++ b/releasenotes/notes/improve-create-encrypted-volume-c1bb6b44b85c0242.yaml -@@ -0,0 +1,7 @@ -+--- -+fixes: -+ - | -+ [Bug 255517](https://bugs.launchpad.net/cinder/+bug/2055517): Fix slow -+ on create encrypted volumes with temp file import. Encrypted volume create -+ is now directly upload to rbd with qemu-img command without temprory image -+ file generated. --- -2.34.1 diff --git a/images/cinder/patches/cinder/0002-Directly-import-converted-image-to-RBD.patch b/images/cinder/patches/cinder/0002-Directly-import-converted-image-to-RBD.patch deleted file mode 100644 index f63c4e92b..000000000 --- a/images/cinder/patches/cinder/0002-Directly-import-converted-image-to-RBD.patch +++ /dev/null @@ -1,152 +0,0 @@ -From ddb4c87da6d20cc2cf37db70498f6890db1b2498 Mon Sep 17 00:00:00 2001 -From: ricolin -Date: Tue, 22 Oct 2024 18:31:52 +0800 -Subject: [PATCH] Directly import converted image to RBD - -For volume encryption from Glance image case, -once we cloned the image down, we do convert and import back to RBD. - -This patch allows us to avoid another tempfile write and directly -upload image to RBD. - -Related-Bug: #2055517 -Change-Id: Ib5e15eeee6a02e2833d14ac34f6fdeb4a6548a67 ---- - cinder/tests/unit/volume/drivers/test_rbd.py | 2 - - cinder/volume/drivers/rbd.py | 57 ++++++++----------- - ...verted-encrypt-image-005986a59d1027e1.yaml | 9 +++ - 3 files changed, 34 insertions(+), 34 deletions(-) - create mode 100644 releasenotes/notes/allow-direct-import-converted-encrypt-image-005986a59d1027e1.yaml - -diff --git a/cinder/volume/drivers/rbd.py b/cinder/volume/drivers/rbd.py -index 13f67b3d4..291db326d 100644 ---- a/cinder/volume/drivers/rbd.py -+++ b/cinder/volume/drivers/rbd.py -@@ -32,7 +32,6 @@ from oslo_log import log as logging - from oslo_service import loopingcall - from oslo_utils import encodeutils - from oslo_utils import excutils --from oslo_utils import fileutils - from oslo_utils import units - try: - import rados -@@ -1992,11 +1991,10 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD, - self._copy_image_to_volume(context, volume, image_service, image_id, - disable_sparse=disable_sparse) - -- def _encrypt_image(self, -- context: context.RequestContext, -- volume: Volume, -- tmp_dir: str, -- src_image_path: Any) -> None: -+ def _encrypt_image_and_upload( -+ self, context: context.RequestContext, -+ volume: Volume, tmp_dir: str, src_image_path: Any -+ ) -> None: - encryption = volume_utils.check_encryption_provider( - volume, - context) -@@ -2010,6 +2008,19 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD, - cipher_spec = image_utils.decode_cipher(encryption['cipher'], - encryption['key_size']) - -+ _, conf, user_id, _ = self._get_config_tuple() -+ rbd_options = '' -+ if user_id: -+ rbd_options += f':id={user_id}' -+ if conf: -+ rbd_options += f':conf={conf}' -+ -+ rbd_dest = 'rbd:%(pool_name)s/%(image_name)s%(rbd_options)s' % { -+ 'pool_name': self.configuration.rbd_pool, -+ 'image_name': volume.name, -+ 'rbd_options': rbd_options -+ } -+ - tmp_dir = volume_utils.image_conversion_dir() - - with tempfile.NamedTemporaryFile(prefix='luks_', -@@ -2017,18 +2028,10 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD, - with open(pass_file.name, 'w') as f: - f.write(passphrase) - -- # Convert the raw image to luks -- dest_image_path = src_image_path + '.luks' -- try: -- image_utils.convert_image(src_image_path, dest_image_path, -- 'luks', src_format='raw', -- cipher_spec=cipher_spec, -- passphrase_file=pass_file.name) -- -- # Replace the original image with the now encrypted image -- os.rename(dest_image_path, src_image_path) -- finally: -- fileutils.delete_if_exists(dest_image_path) -+ image_utils.convert_image(src_image_path, rbd_dest, -+ 'luks', src_format='raw', -+ cipher_spec=cipher_spec, -+ passphrase_file=pass_file.name) - - def _copy_image_to_volume(self, - context: context.RequestContext, -@@ -2047,9 +2050,6 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD, - size=volume.size, - disable_sparse=disable_sparse) - -- if encrypted: -- self._encrypt_image(context, volume, tmp_dir, tmp.name) -- - @utils.retry(exception.VolumeIsBusy, - self.configuration.rados_connection_interval, - self.configuration.rados_connection_retries) -@@ -2058,17 +2058,21 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD, - - _delete_volume(volume) - -- chunk_size = self.configuration.rbd_store_chunk_size * units.Mi -- order = int(math.log(chunk_size, 2)) -- # keep using the command line import instead of librbd since it -- # detects zeroes to preserve sparseness in the image -- args = ['rbd', 'import', -- '--pool', self.configuration.rbd_pool, -- '--order', order, -- tmp.name, volume.name, -- '--new-format'] -- args.extend(self._ceph_args()) -- self._try_execute(*args) -+ if encrypted: -+ self._encrypt_image_and_upload( -+ context, volume, tmp_dir, tmp.name) -+ else: -+ chunk_size = self.configuration.rbd_store_chunk_size * units.Mi -+ order = int(math.log(chunk_size, 2)) -+ # keep using the command line import instead of librbd since it -+ # detects zeroes to preserve sparseness in the image -+ args = ['rbd', 'import', -+ '--pool', self.configuration.rbd_pool, -+ '--order', order, -+ tmp.name, volume.name, -+ '--new-format'] -+ args.extend(self._ceph_args()) -+ self._try_execute(*args) - self._resize(volume) - # We may need to re-enable replication because we have deleted the - # original image and created a new one using the command line import. -diff --git a/releasenotes/notes/allow-direct-import-converted-encrypt-image-005986a59d1027e1.yaml b/releasenotes/notes/allow-direct-import-converted-encrypt-image-005986a59d1027e1.yaml -new file mode 100644 -index 000000000..b1544214d ---- /dev/null -+++ b/releasenotes/notes/allow-direct-import-converted-encrypt-image-005986a59d1027e1.yaml -@@ -0,0 +1,9 @@ -+--- -+fixes: -+ - | -+ [Bug 255517](https://bugs.launchpad.net/cinder/+bug/2055517): Improve slow -+ on create encrypted volumes with temp file import. -+ For volume encryption from Glance image case, once we cloned the image -+ down, we do convert and import back to RBD. We now avoid another tempfile -+ write and directly upload image to RBD. And it is now directly upload to -+ RBD with qemu-img command without temprory converted image file generated. --- -2.25.1 - diff --git a/images/designate/Dockerfile b/images/designate/Dockerfile index ea25a885c..d35b28392 100644 --- a/images/designate/Dockerfile +++ b/images/designate/Dockerfile @@ -1,26 +1,23 @@ -# SPDX-License-Identifier: Apache-2.0 -# Atmosphere-Rebuild-Time: 2024-06-25T22:49:25Z +# Copyright (c) 2024 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only +# Atmosphere-Rebuild-Time: 2025-01-04T23:34:28Z ARG RELEASE +ARG FROM=harbor.atmosphere.dev/library/centos:${RELEASE} -FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build -ARG DESIGNATE_GIT_REF=097ffc6df181290eba1bcd7c492b1b505bc15434 -ADD --keep-git-dir=true https://opendev.org/openstack/designate.git#${DESIGNATE_GIT_REF} /src/designate -RUN git -C /src/designate fetch --unshallow -COPY patches/designate /patches/designate -RUN git -C /src/designate apply --verbose /patches/designate/* -RUN --mount=type=cache,mode=0755,target=/root/.cache/pip,sharing=private < -Date: Tue, 27 Feb 2024 15:42:31 +0800 -Subject: [PATCH] Fix Mysql default character setting (utf8mb4) - -Since 8.0 Mysql uses utf8mb4 as default. -To use utf8, will change the new comming tables in DATABASE to use -`utf8mb3`. And that makes new comming tables not compatible with rest -tables within same database or tables from all other database that -using default setting. -We should make sure we uses utf8mb4 so no confusion or incompatible -error will raise. - -Closes-bug: #2033635 -Change-Id: I7232b55300c8817a00e73e449e03ea6103f40701 ---- - .../alembic/versions/15b34ff3ecb8_fix_service_charset.py | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/designate/storage/sqlalchemy/alembic/versions/15b34ff3ecb8_fix_service_charset.py b/designate/storage/sqlalchemy/alembic/versions/15b34ff3ecb8_fix_service_charset.py -index 07212b0c..0a6cfef7 100644 ---- a/designate/storage/sqlalchemy/alembic/versions/15b34ff3ecb8_fix_service_charset.py -+++ b/designate/storage/sqlalchemy/alembic/versions/15b34ff3ecb8_fix_service_charset.py -@@ -43,6 +43,8 @@ def upgrade() -> None: - return - - op.execute('SET foreign_key_checks = 0;') -- op.execute('ALTER TABLE service_statuses CONVERT TO CHARACTER SET utf8;') -+ op.execute( -+ 'ALTER TABLE service_statuses CONVERT TO CHARACTER SET utf8mb4;' -+ ) - op.execute('SET foreign_key_checks = 1;') -- op.execute('ALTER DATABASE DEFAULT CHARACTER SET utf8;') -+ op.execute('ALTER DATABASE DEFAULT CHARACTER SET utf8mb4;') --- -2.25.1 - diff --git a/images/glance/Dockerfile b/images/glance/Dockerfile index 6a253e460..e0d43fda0 100644 --- a/images/glance/Dockerfile +++ b/images/glance/Dockerfile @@ -1,33 +1,30 @@ -# SPDX-License-Identifier: Apache-2.0 -# Atmosphere-Rebuild-Time: 2024-06-25T22:49:25Z +# Copyright (c) 2024 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only +# Atmosphere-Rebuild-Time: 2025-01-04T23:34:28Z ARG RELEASE +ARG FROM=harbor.atmosphere.dev/library/centos:${RELEASE} -FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build -ARG GLANCE_GIT_REF=0bcd6cd71c09917c6734421374fd598d73e8d0cc -ADD --keep-git-dir=true https://opendev.org/openstack/glance.git#${GLANCE_GIT_REF} /src/glance -RUN git -C /src/glance fetch --unshallow -ADD --keep-git-dir=true https://opendev.org/openstack/glance_store.git#master /src/glance_store -RUN git -C /src/glance_store fetch --unshallow -RUN --mount=type=cache,mode=0755,target=/root/.cache/pip,sharing=private < -Date: Tue, 23 Jul 2024 23:28:28 +1000 -Subject: [PATCH] fix: normalize url join for placement uris - -Change-Id: Idcf00a91c1545e9693bb2e73e424958c5bb75e9c ---- - -diff --git a/openstack_dashboard/api/placement.py b/openstack_dashboard/api/placement.py -index 98b51cd..643dde4 100644 ---- a/openstack_dashboard/api/placement.py -+++ b/openstack_dashboard/api/placement.py -@@ -10,6 +10,8 @@ - # License for the specific language governing permissions and limitations - # under the License. - -+from urllib.parse import urljoin -+ - from django.conf import settings - from keystoneauth1 import adapter - from keystoneauth1 import identity -@@ -55,7 +57,11 @@ - - def _get_json(request, path): - adapter = make_adapter(request) -- uri = base.url_for(request, 'placement') + path -+ base_uri = base.url_for(request, 'placement') -+ if not base_uri.endswith('/'): -+ base_uri += '/' -+ normalized_path = path.lstrip('/') -+ uri = urljoin(base_uri, normalized_path) - response, body = adapter.get(uri) - return response.json() - -diff --git a/releasenotes/notes/fix-placement-uri-generation-3b7586c163189608.yaml b/releasenotes/notes/fix-placement-uri-generation-3b7586c163189608.yaml -new file mode 100644 -index 0000000..1531baa ---- /dev/null -+++ b/releasenotes/notes/fix-placement-uri-generation-3b7586c163189608.yaml -@@ -0,0 +1,3 @@ -+--- -+fixes: -+ - Use urljoin for normalized uri generation for placement apis diff --git a/images/horizon/patches/magnum-ui/0000-fix-disable-resizing-for-admins.patch b/images/horizon/patches/magnum-ui/0000-fix-disable-resizing-for-admins.patch deleted file mode 100644 index f5cfaf379..000000000 --- a/images/horizon/patches/magnum-ui/0000-fix-disable-resizing-for-admins.patch +++ /dev/null @@ -1,105 +0,0 @@ -From a3671cc242adb85f792d1c8c57ccc7692f1ec251 Mon Sep 17 00:00:00 2001 -From: Mohammed Naser -Date: Mon, 20 Feb 2023 00:55:14 +0000 -Subject: [PATCH] fix: disable resizing for admins - -By default, admins see all clusters and they are allowed to do all -actions however the resize function will not work so we're displaying -something for admins that they can't use. - -This will hide the resize button for clusters that don't match the -project ID of the current user. - -Change-Id: If09c509abdd21a5a7b9bc374af52a06404fb0ff8 ---- - .../clusters/resize/resize.service.js | 9 ++++--- - .../clusters/resize/resize.service.spec.js | 25 +++++++++++++++---- - 2 files changed, 25 insertions(+), 9 deletions(-) - -diff --git a/magnum_ui/static/dashboard/container-infra/clusters/resize/resize.service.js b/magnum_ui/static/dashboard/container-infra/clusters/resize/resize.service.js -index ebc6a96..b86833a 100644 ---- a/magnum_ui/static/dashboard/container-infra/clusters/resize/resize.service.js -+++ b/magnum_ui/static/dashboard/container-infra/clusters/resize/resize.service.js -@@ -32,6 +32,7 @@ - resizeService.$inject = [ - '$rootScope', - '$q', -+ 'horizon.app.core.openstack-service-api.userSession', - 'horizon.app.core.openstack-service-api.magnum', - 'horizon.framework.util.actions.action-result.service', - 'horizon.framework.util.i18n.gettext', -@@ -43,8 +44,8 @@ - ]; - - function resizeService( -- $rootScope, $q, magnum, actionResult, gettext, $qExtensions, modal, toast, spinnerModal, -- resourceType -+ $rootScope, $q, userSession, magnum, actionResult, gettext, $qExtensions, -+ modal, toast, spinnerModal, resourceType - ) { - - var modalConfig, formModel; -@@ -87,8 +88,8 @@ - return deferred.promise; - } - -- function allowed() { -- return $qExtensions.booleanAsPromise(true); -+ function allowed(selected) { -+ return userSession.isCurrentProject(selected.project_id); - } - - function constructModalConfig(workerNodesList) { -diff --git a/magnum_ui/static/dashboard/container-infra/clusters/resize/resize.service.spec.js b/magnum_ui/static/dashboard/container-infra/clusters/resize/resize.service.spec.js -index 842df87..645b149 100644 ---- a/magnum_ui/static/dashboard/container-infra/clusters/resize/resize.service.spec.js -+++ b/magnum_ui/static/dashboard/container-infra/clusters/resize/resize.service.spec.js -@@ -19,9 +19,10 @@ - - describe('horizon.dashboard.container-infra.clusters.resize.service', function() { - -- var service, $scope, $q, deferred, magnum, spinnerModal, modalConfig; -+ var service, $scope, $q, deferred, magnum, spinnerModal, modalConfig, userSession; - var selected = { -- id: 1 -+ id: 1, -+ project_id: "f5ed2d21437644adb2669f9ade9c949b" - }; - var modal = { - open: function(config) { -@@ -50,6 +51,7 @@ - 'horizon.dashboard.container-infra.clusters.resize.service'); - magnum = $injector.get('horizon.app.core.openstack-service-api.magnum'); - spinnerModal = $injector.get('horizon.framework.widgets.modal-wait-spinner.service'); -+ userSession = $injector.get('horizon.app.core.openstack-service-api.userSession'); - - spyOn(spinnerModal, 'showModalSpinner').and.callFake(function() {}); - spyOn(spinnerModal, 'hideModalSpinner').and.callFake(function() {}); -@@ -60,9 +62,22 @@ - spyOn(modal, 'open').and.callThrough(); - })); - -- it('should check the policy if the user is allowed to update cluster', function() { -- var allowed = service.allowed(); -- expect(allowed).toBeTruthy(); -+ it('should allow user to resize cluster if they are in the same project', async function() { -+ spyOn(userSession, 'get').and.returnValue({project_id: selected.project_id}); -+ -+ await service.allowed(selected); -+ }); -+ -+ it('should not allow user to resize cluster if they are in a different project', async function() { -+ spyOn(userSession, 'get').and.returnValue({project_id: 'different_project'}); -+ -+ try { -+ await service.allowed(selected); -+ } catch (err) { -+ return; -+ } -+ -+ throw new Error('User should not be allowed to resize cluster'); - }); - - it('should open the modal, hide the loading spinner and check the form model', --- -2.34.1 diff --git a/images/horizon/patches/magnum-ui/0001-capi-avoid-going-through-heat-for-worker-list.patch b/images/horizon/patches/magnum-ui/0001-capi-avoid-going-through-heat-for-worker-list.patch deleted file mode 100644 index 5970ef274..000000000 --- a/images/horizon/patches/magnum-ui/0001-capi-avoid-going-through-heat-for-worker-list.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 6ecbb870f24f5c5c4a5b548166ac292801adda84 Mon Sep 17 00:00:00 2001 -From: Mohammed Naser -Date: Sun, 19 Feb 2023 21:39:46 +0000 -Subject: [PATCH] [capi] Avoid going through Heat for worker list - -By default, Magnum UI goes through Heat to get the list of nodes -which is not correct since it's making an assumption that Heat -is always in use. - -The fix for this would be to make sure that Magnum has a list of -all the VMs in it's database (or some sort of API call that -returns them all from the driver) but that's quite a big amount -of work to implement for now. - -So for now, if stack_id doesn't look like a UUID, we assume it -is deployed using Clsuter API driver for Magnum and look up with -that alternative method instead. - -(cherry picked from commit 6f31cc5cacf23398b76392922ee9863d50aa9e7e) -(cherry picked from commit d44f16f13a89d7fb00d3d949a392d638ce2d0cc8) -(cherry picked from commit 72122e350429590e9002058e7e35c4dcc94d2d4f) ---- - magnum_ui/api/rest/magnum.py | 18 ++++++++++++++++++ - 1 file changed, 19 insertions(+) - -diff --git a/magnum_ui/api/rest/magnum.py b/magnum_ui/api/rest/magnum.py -index ba66e0e..bf331bc 100644 ---- a/magnum_ui/api/rest/magnum.py -+++ b/magnum_ui/api/rest/magnum.py -@@ -17,6 +17,8 @@ - - from collections import defaultdict - -+from oslo_utils import uuidutils -+ - from django.conf import settings - from django.http import HttpResponse - from django.http import HttpResponseNotFound -@@ -228,6 +230,19 @@ class ClusterResize(generic.View): - - url_regex = r'container_infra/clusters/(?P[^/]+)/resize$' - -+ def _cluster_api_resize_get(self, request, cluster): -+ search_opts = {"name": "%s-" % cluster["stack_id"]} -+ servers = api.nova.server_list(request, search_opts=search_opts)[0] -+ -+ worker_nodes = [] -+ for server in servers: -+ control_plane_prefix = "%s-control-plane" % cluster["stack_id"] -+ if not server.name.startswith(control_plane_prefix): -+ worker_nodes.append({"name": server.name, "id": server.id}) -+ -+ return {"cluster": change_to_id(cluster), -+ "worker_nodes": worker_nodes} -+ - @rest_utils.ajax() - def get(self, request, cluster_id): - """Get cluster details for resize""" -@@ -237,6 +252,9 @@ def get(self, request, cluster_id): - print(e) - return HttpResponseNotFound() - -+ if not uuidutils.is_uuid_like(cluster["stack_id"]): -+ return self._cluster_api_resize_get(request, cluster) -+ - stack = heat.stack_get(request, cluster["stack_id"]) - search_opts = {"name": "%s-" % stack.stack_name} - servers = api.nova.server_list(request, search_opts=search_opts)[0] diff --git a/images/ironic/Dockerfile b/images/ironic/Dockerfile index 3e334e889..b2147fc6e 100644 --- a/images/ironic/Dockerfile +++ b/images/ironic/Dockerfile @@ -1,26 +1,27 @@ -# SPDX-License-Identifier: Apache-2.0 -# Atmosphere-Rebuild-Time: 2024-06-25T22:49:25Z +# Copyright (c) 2024 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only +# Atmosphere-Rebuild-Time: 2025-01-04T23:34:28Z ARG RELEASE +ARG FROM=harbor.atmosphere.dev/library/centos:${RELEASE} -FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build -ARG IRONIC_GIT_REF=22aa29b864eecd00bfb7c67cc2075030da1eb1d0 -ADD --keep-git-dir=true https://opendev.org/openstack/ironic.git#${IRONIC_GIT_REF} /src/ironic -RUN git -C /src/ironic fetch --unshallow -RUN --mount=type=cache,mode=0755,target=/root/.cache/pip,sharing=private < -Date: Tue, 24 Sep 2024 20:12:33 +0000 -Subject: [PATCH] Revert "Remove use of autocommit" - -This reverts commit d544698fae220549f68afa218dd252366fe90b27. - -Reason for revert: Broken networking. - -Change-Id: I002d4825308afb462e698ff69c69977f6da3d9a8 ---- - -diff --git a/magnum/db/sqlalchemy/api.py b/magnum/db/sqlalchemy/api.py -index 0ec4380..f6f3087 100644 ---- a/magnum/db/sqlalchemy/api.py -+++ b/magnum/db/sqlalchemy/api.py -@@ -47,7 +47,9 @@ - def _create_facade_lazily(): - global _FACADE - if _FACADE is None: -- _FACADE = db_session.EngineFacade.from_config(CONF) -+ # FIXME(karolinku): autocommit=True it's not compatible with -+ # SQLAlchemy 2.0, and will be removed in future -+ _FACADE = db_session.EngineFacade.from_config(CONF, autocommit=True) - if profiler_sqlalchemy: - if CONF.profiler.enabled and CONF.profiler.trace_sqlalchemy: - profiler_sqlalchemy.add_tracing(sa, _FACADE.get_engine(), "db") -diff --git a/magnum/db/sqlalchemy/models.py b/magnum/db/sqlalchemy/models.py -index 92b474d..0b7ae94 100644 ---- a/magnum/db/sqlalchemy/models.py -+++ b/magnum/db/sqlalchemy/models.py -@@ -93,8 +93,7 @@ - if session is None: - session = db_api.get_session() - -- with session.begin(): -- super(MagnumBase, self).save(session) -+ super(MagnumBase, self).save(session) - - - Base = declarative_base(cls=MagnumBase) diff --git a/images/manila/Dockerfile b/images/manila/Dockerfile index 93d9055a7..d06de71af 100644 --- a/images/manila/Dockerfile +++ b/images/manila/Dockerfile @@ -1,24 +1,16 @@ -# SPDX-License-Identifier: Apache-2.0 -# Atmosphere-Rebuild-Time: 2024-06-25T22:49:25Z +# Copyright (c) 2024 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only +# Atmosphere-Rebuild-Time: 2025-01-04T23:34:28Z ARG RELEASE +ARG FROM=harbor.atmosphere.dev/library/centos:${RELEASE} -FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build -ARG MANILA_GIT_REF=d8987589ae88ae9b2769fbe6f26d5b6994098038 -ADD --keep-git-dir=true https://opendev.org/openstack/manila.git#${MANILA_GIT_REF} /src/manila -RUN git -C /src/manila fetch --unshallow -RUN --mount=type=cache,mode=0755,target=/root/.cache/pip,sharing=private < AuthType openid-connect diff --git a/roles/magnum/vars/main.yml b/roles/magnum/vars/main.yml index 95582accf..56f652b1b 100644 --- a/roles/magnum/vars/main.yml +++ b/roles/magnum/vars/main.yml @@ -17,6 +17,10 @@ _magnum_helm_values: images: tags: "{{ atmosphere_images | vexxhost.atmosphere.openstack_helm_image_tags('magnum') }}" conf: + magnum_api_uwsgi: + uwsgi: + plugin: python3 + wsgi-file: /usr/bin/magnum-api-wsgi magnum: DEFAULT: log_config_append: null diff --git a/roles/manila/vars/main.yml b/roles/manila/vars/main.yml index ce2175ddb..42aef6780 100644 --- a/roles/manila/vars/main.yml +++ b/roles/manila/vars/main.yml @@ -43,6 +43,10 @@ _manila_helm_values: application: openvswitch component: server conf: + manila_api_uwsgi: + uwsgi: + plugin: python3 + wsgi-file: /usr/bin/manila-wsgi manila: DEFAULT: host: manila-share-worker diff --git a/roles/octavia/vars/main.yml b/roles/octavia/vars/main.yml index 8423aba61..18f3fe45b 100644 --- a/roles/octavia/vars/main.yml +++ b/roles/octavia/vars/main.yml @@ -86,6 +86,10 @@ _octavia_helm_values: worker: 3 housekeeping: 3 conf: + octavia_api_uwsgi: + uwsgi: + plugin: python3 + wsgi-file: /usr/bin/octavia-wsgi octavia: DEFAULT: log_config_append: null diff --git a/roles/placement/vars/main.yml b/roles/placement/vars/main.yml index 3353be712..1b10850a0 100644 --- a/roles/placement/vars/main.yml +++ b/roles/placement/vars/main.yml @@ -20,6 +20,10 @@ _placement_helm_values: replicas: api: 3 conf: + placement_api_uwsgi: + uwsgi: + plugin: python3 + wsgi-file: /usr/bin/placement-api placement: DEFAULT: log_config_append: null diff --git a/zuul.d/container-images/barbican.yaml b/zuul.d/container-images/barbican.yaml index 3a9caa8c1..a7b02eb21 100644 --- a/zuul.d/container-images/barbican.yaml +++ b/zuul.d/container-images/barbican.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-barbican gate: jobs: - - atmosphere-upload-container-image-barbican + - atmosphere-build-container-image-barbican promote: jobs: - atmosphere-promote-container-image-barbican @@ -29,56 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-barbican + promote_container_image_job: atmosphere-build-container-image-barbican container_images: - context: images/barbican registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/barbican arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=barbican tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/barbican/.* -- job: - name: atmosphere-upload-container-image-barbican - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-barbican parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/centos.yaml b/zuul.d/container-images/centos.yaml new file mode 100644 index 000000000..c9f61caca --- /dev/null +++ b/zuul.d/container-images/centos.yaml @@ -0,0 +1,41 @@ +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only + +- project: + check: + jobs: + - atmosphere-build-container-image-centos + gate: + jobs: + - atmosphere-build-container-image-centos + promote: + jobs: + - atmosphere-promote-container-image-centos + +- job: + name: atmosphere-build-container-image-centos + parent: atmosphere-build-container-image + dependencies: + - name: atmosphere-buildset-registry + soft: false + vars: &container_image_vars + promote_container_image_job: atmosphere-build-container-image-centos + container_images: + - context: images/centos + registry: harbor.atmosphere.dev + repository: harbor.atmosphere.dev/library/centos + arch: + - linux/amd64 + - linux/arm64 + build_args: + - "RELEASE={{ zuul.branch | replace('stable/', '') }}" + tags: + - "{{ zuul.branch | replace('stable/', '') }}" + files: &container_image_files + - images/centos/.* + +- job: + name: atmosphere-promote-container-image-centos + parent: atmosphere-promote-container-image + vars: *container_image_vars + files: *container_image_files diff --git a/zuul.d/container-images/cinder.yaml b/zuul.d/container-images/cinder.yaml index a755adfdf..8c1da040f 100644 --- a/zuul.d/container-images/cinder.yaml +++ b/zuul.d/container-images/cinder.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-cinder gate: jobs: - - atmosphere-upload-container-image-cinder + - atmosphere-build-container-image-cinder promote: jobs: - atmosphere-promote-container-image-cinder @@ -29,56 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-cinder + promote_container_image_job: atmosphere-build-container-image-cinder container_images: - context: images/cinder registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/cinder arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=cinder tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/cinder/.* -- job: - name: atmosphere-upload-container-image-cinder - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-cinder parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/designate.yaml b/zuul.d/container-images/designate.yaml index 41be3a737..2852c9322 100644 --- a/zuul.d/container-images/designate.yaml +++ b/zuul.d/container-images/designate.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-designate gate: jobs: - - atmosphere-upload-container-image-designate + - atmosphere-build-container-image-designate promote: jobs: - atmosphere-promote-container-image-designate @@ -29,56 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-designate + promote_container_image_job: atmosphere-build-container-image-designate container_images: - context: images/designate registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/designate arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=designate tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/designate/.* -- job: - name: atmosphere-upload-container-image-designate - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-designate parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/glance.yaml b/zuul.d/container-images/glance.yaml index f158d3506..536ddf75f 100644 --- a/zuul.d/container-images/glance.yaml +++ b/zuul.d/container-images/glance.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-glance gate: jobs: - - atmosphere-upload-container-image-glance + - atmosphere-build-container-image-glance promote: jobs: - atmosphere-promote-container-image-glance @@ -29,56 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-glance + promote_container_image_job: atmosphere-build-container-image-glance container_images: - context: images/glance registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/glance arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=glance tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/glance/.* -- job: - name: atmosphere-upload-container-image-glance - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-glance parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/heat.yaml b/zuul.d/container-images/heat.yaml index 4c2fd87ac..a5fecab1d 100644 --- a/zuul.d/container-images/heat.yaml +++ b/zuul.d/container-images/heat.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-heat gate: jobs: - - atmosphere-upload-container-image-heat + - atmosphere-build-container-image-heat promote: jobs: - atmosphere-promote-container-image-heat @@ -29,56 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-heat + promote_container_image_job: atmosphere-build-container-image-heat container_images: - context: images/heat registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/heat arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=heat tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/heat/.* -- job: - name: atmosphere-upload-container-image-heat - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-heat parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/horizon.yaml b/zuul.d/container-images/horizon.yaml index d3a713eba..7b3e5509c 100644 --- a/zuul.d/container-images/horizon.yaml +++ b/zuul.d/container-images/horizon.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-horizon gate: jobs: - - atmosphere-upload-container-image-horizon + - atmosphere-build-container-image-horizon promote: jobs: - atmosphere-promote-container-image-horizon @@ -29,56 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-horizon + promote_container_image_job: atmosphere-build-container-image-horizon container_images: - context: images/horizon registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/horizon arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=horizon tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/horizon/.* -- job: - name: atmosphere-upload-container-image-horizon - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-horizon parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/ironic.yaml b/zuul.d/container-images/ironic.yaml index 18403e048..08643cc03 100644 --- a/zuul.d/container-images/ironic.yaml +++ b/zuul.d/container-images/ironic.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-ironic gate: jobs: - - atmosphere-upload-container-image-ironic + - atmosphere-build-container-image-ironic promote: jobs: - atmosphere-promote-container-image-ironic @@ -29,56 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-ironic + promote_container_image_job: atmosphere-build-container-image-ironic container_images: - context: images/ironic registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/ironic arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=ironic tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/ironic/.* -- job: - name: atmosphere-upload-container-image-ironic - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-ironic parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/keepalived.yaml b/zuul.d/container-images/keepalived.yaml index e4f55cec2..6d0759093 100644 --- a/zuul.d/container-images/keepalived.yaml +++ b/zuul.d/container-images/keepalived.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-keepalived gate: jobs: - - atmosphere-upload-container-image-keepalived + - atmosphere-build-container-image-keepalived promote: jobs: - atmosphere-promote-container-image-keepalived @@ -29,35 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-keepalived + promote_container_image_job: atmosphere-build-container-image-keepalived container_images: - context: images/keepalived registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/keepalived arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* + - images/centos/.* - images/keepalived/.* -- job: - name: atmosphere-upload-container-image-keepalived - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-keepalived parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/keystone.yaml b/zuul.d/container-images/keystone.yaml index d3bc1b763..5027692b4 100644 --- a/zuul.d/container-images/keystone.yaml +++ b/zuul.d/container-images/keystone.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-keystone gate: jobs: - - atmosphere-upload-container-image-keystone + - atmosphere-build-container-image-keystone promote: jobs: - atmosphere-promote-container-image-keystone @@ -29,56 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-keystone + promote_container_image_job: atmosphere-build-container-image-keystone container_images: - context: images/keystone registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/keystone arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=keystone tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/keystone/.* -- job: - name: atmosphere-upload-container-image-keystone - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-keystone parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/magnum.yaml b/zuul.d/container-images/magnum.yaml index 2772c954e..6421cfce1 100644 --- a/zuul.d/container-images/magnum.yaml +++ b/zuul.d/container-images/magnum.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-magnum gate: jobs: - - atmosphere-upload-container-image-magnum + - atmosphere-build-container-image-magnum promote: jobs: - atmosphere-promote-container-image-magnum @@ -29,18 +18,10 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-magnum + promote_container_image_job: atmosphere-build-container-image-magnum container_images: - context: images/magnum registry: harbor.atmosphere.dev @@ -50,36 +31,12 @@ - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=magnum tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/magnum/.* -- job: - name: atmosphere-upload-container-image-magnum - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-magnum parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/manila.yaml b/zuul.d/container-images/manila.yaml index 893f9fe1c..aaad3f7ee 100644 --- a/zuul.d/container-images/manila.yaml +++ b/zuul.d/container-images/manila.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-manila gate: jobs: - - atmosphere-upload-container-image-manila + - atmosphere-build-container-image-manila promote: jobs: - atmosphere-promote-container-image-manila @@ -29,56 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-manila + promote_container_image_job: atmosphere-build-container-image-manila container_images: - context: images/manila registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/manila arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=manila tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/manila/.* -- job: - name: atmosphere-upload-container-image-manila - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-manila parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/octavia.yaml b/zuul.d/container-images/octavia.yaml index 7912168fe..66dc44e93 100644 --- a/zuul.d/container-images/octavia.yaml +++ b/zuul.d/container-images/octavia.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-octavia gate: jobs: - - atmosphere-upload-container-image-octavia + - atmosphere-build-container-image-octavia promote: jobs: - atmosphere-promote-container-image-octavia @@ -29,56 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-octavia + promote_container_image_job: atmosphere-build-container-image-octavia container_images: - context: images/octavia registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/octavia arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=octavia tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/octavia/.* -- job: - name: atmosphere-upload-container-image-octavia - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-octavia parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/openvswitch.yaml b/zuul.d/container-images/openvswitch.yaml index f11caec6d..b4432a73c 100644 --- a/zuul.d/container-images/openvswitch.yaml +++ b/zuul.d/container-images/openvswitch.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-openvswitch gate: jobs: - - atmosphere-upload-container-image-openvswitch + - atmosphere-build-container-image-openvswitch promote: jobs: - atmosphere-promote-container-image-openvswitch @@ -29,8 +18,10 @@ dependencies: - name: atmosphere-buildset-registry soft: false + - name: atmosphere-build-container-image-centos + soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-openvswitch + promote_container_image_job: atmosphere-build-container-image-openvswitch container_images: - context: images/openvswitch registry: harbor.atmosphere.dev @@ -38,20 +29,14 @@ arch: - linux/amd64 - linux/arm64 + build_args: + - "RELEASE={{ zuul.branch | replace('stable/', '') }}" tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files + - images/centos/.* - images/openvswitch/.* -- job: - name: atmosphere-upload-container-image-openvswitch - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-openvswitch parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/ovn.yaml b/zuul.d/container-images/ovn.yaml index 83d4aca85..12eb5dd99 100644 --- a/zuul.d/container-images/ovn.yaml +++ b/zuul.d/container-images/ovn.yaml @@ -18,7 +18,7 @@ - atmosphere-build-container-image-ovn gate: jobs: - - atmosphere-upload-container-image-ovn + - atmosphere-build-container-image-ovn promote: jobs: - atmosphere-promote-container-image-ovn @@ -29,16 +29,17 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-openvswitch + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-ovn + promote_container_image_job: atmosphere-build-container-image-ovn container_images: - context: images/ovn registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/ovn-central arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - OVN_COMPONENT=central @@ -56,20 +57,9 @@ tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/openvswitch/.* + - images/centos/.* - images/ovn/.* -- job: - name: atmosphere-upload-container-image-ovn - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-openvswitch - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-ovn parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/placement.yaml b/zuul.d/container-images/placement.yaml index c892dc47f..31c8100e4 100644 --- a/zuul.d/container-images/placement.yaml +++ b/zuul.d/container-images/placement.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-placement gate: jobs: - - atmosphere-upload-container-image-placement + - atmosphere-build-container-image-placement promote: jobs: - atmosphere-promote-container-image-placement @@ -29,56 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder - soft: true - - name: atmosphere-build-container-image-openstack-python-runtime + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-placement + promote_container_image_job: atmosphere-build-container-image-placement container_images: - context: images/placement registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/placement arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" - - PROJECT=placement tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* - - images/openstack-python-runtime/.* + - images/centos/.* - images/placement/.* -- job: - name: atmosphere-upload-container-image-placement - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - - name: atmosphere-upload-container-image-openstack-python-runtime - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-placement parent: atmosphere-promote-container-image diff --git a/zuul.d/container-images/python-openstackclient.yaml b/zuul.d/container-images/python-openstackclient.yaml index f05b9b51a..81c6e2ad6 100644 --- a/zuul.d/container-images/python-openstackclient.yaml +++ b/zuul.d/container-images/python-openstackclient.yaml @@ -1,16 +1,5 @@ -# Copyright (c) 2024 VEXXHOST, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. +# Copyright (c) 2025 VEXXHOST, Inc. +# SPDX-License-Identifier: GPL-3.0-only - project: check: @@ -18,7 +7,7 @@ - atmosphere-build-container-image-python-openstackclient gate: jobs: - - atmosphere-upload-container-image-python-openstackclient + - atmosphere-build-container-image-python-openstackclient promote: jobs: - atmosphere-promote-container-image-python-openstackclient @@ -29,50 +18,25 @@ dependencies: - name: atmosphere-buildset-registry soft: false - - name: atmosphere-build-container-image-ubuntu - soft: true - - name: atmosphere-build-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-build-container-image-python-base - soft: true - - name: atmosphere-build-container-image-openstack-venv-builder + - name: atmosphere-build-container-image-centos soft: true vars: &container_image_vars - promote_container_image_job: atmosphere-upload-container-image-python-openstackclient + promote_container_image_job: atmosphere-build-container-image-python-openstackclient container_images: - context: images/python-openstackclient registry: harbor.atmosphere.dev repository: harbor.atmosphere.dev/library/python-openstackclient arch: - linux/amd64 + - linux/arm64 build_args: - "RELEASE={{ zuul.branch | replace('stable/', '') }}" tags: - "{{ zuul.branch | replace('stable/', '') }}" files: &container_image_files - - images/ubuntu/.* - - images/ubuntu-cloud-archive/.* - - images/python-base/.* - - images/openstack-venv-builder/.* + - images/centos/.* - images/python-openstackclient/.* -- job: - name: atmosphere-upload-container-image-python-openstackclient - parent: atmosphere-upload-container-image - dependencies: - - name: atmosphere-buildset-registry - soft: false - - name: atmosphere-upload-container-image-ubuntu - soft: true - - name: atmosphere-upload-container-image-ubuntu-cloud-archive - soft: true - - name: atmosphere-upload-container-image-python-base - soft: true - - name: atmosphere-upload-container-image-openstack-venv-builder - soft: true - vars: *container_image_vars - files: *container_image_files - - job: name: atmosphere-promote-container-image-python-openstackclient parent: atmosphere-promote-container-image diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index b9c97e562..07759681e 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -23,9 +23,11 @@ - atmosphere-tox-helm-unittest - atmosphere-tox-py3 - atmosphere-build-collection: - dependencies: &molecule_check_dependencies + dependencies: &image_build_jobs - name: atmosphere-build-container-image-barbican soft: true + - name: atmosphere-build-container-image-centos + soft: true - name: atmosphere-build-container-image-cinder soft: true - name: atmosphere-build-container-image-designate @@ -73,15 +75,15 @@ - name: atmosphere-build-container-image-tempest soft: true - atmosphere-molecule-aio-keycloak: - dependencies: *molecule_check_dependencies + dependencies: *image_build_jobs - atmosphere-molecule-aio-openvswitch: - dependencies: *molecule_check_dependencies + dependencies: *image_build_jobs - atmosphere-molecule-aio-ovn: - dependencies: *molecule_check_dependencies + dependencies: *image_build_jobs - atmosphere-molecule-csi-local-path-provisioner: - dependencies: *molecule_check_dependencies + dependencies: *image_build_jobs - atmosphere-molecule-csi-rbd: - dependencies: *molecule_check_dependencies + dependencies: *image_build_jobs gate: jobs: - atmosphere-chart-vendor @@ -89,71 +91,23 @@ - atmosphere-linters - atmosphere-tox-py3 - atmosphere-build-collection: - dependencies: &molecule_gate_dependencies - - name: atmosphere-upload-container-image-barbican - soft: true - - name: atmosphere-upload-container-image-cinder - soft: true - - name: atmosphere-upload-container-image-designate - soft: true - - name: atmosphere-upload-container-image-glance - soft: true - - name: atmosphere-upload-container-image-heat - soft: true - - name: atmosphere-upload-container-image-horizon - soft: true - - name: atmosphere-upload-container-image-ironic - soft: true - - name: atmosphere-upload-container-image-keepalived - soft: true - - name: atmosphere-upload-container-image-keystone - soft: true - - name: atmosphere-upload-container-image-kubernetes-entrypoint - soft: true - - name: atmosphere-upload-container-image-libvirtd - soft: true - - name: atmosphere-upload-container-image-magnum - soft: true - - name: atmosphere-upload-container-image-manila - soft: true - - name: atmosphere-upload-container-image-netoffload - soft: true - - name: atmosphere-upload-container-image-neutron - soft: true - - name: atmosphere-upload-container-image-nova - soft: true - - name: atmosphere-upload-container-image-nova-ssh - soft: true - - name: atmosphere-upload-container-image-octavia - soft: true - - name: atmosphere-upload-container-image-openvswitch - soft: true - - name: atmosphere-upload-container-image-ovn - soft: true - - name: atmosphere-upload-container-image-placement - soft: true - - name: atmosphere-upload-container-image-python-openstackclient - soft: true - - name: atmosphere-upload-container-image-staffeln - soft: true - - name: atmosphere-upload-container-image-tempest - soft: true + dependencies: *image_build_jobs - atmosphere-molecule-aio-keycloak: - dependencies: *molecule_gate_dependencies + dependencies: *image_build_jobs - atmosphere-molecule-aio-openvswitch: - dependencies: *molecule_gate_dependencies + dependencies: *image_build_jobs - atmosphere-molecule-aio-ovn: - dependencies: *molecule_gate_dependencies + dependencies: *image_build_jobs - atmosphere-molecule-csi-local-path-provisioner: - dependencies: *molecule_gate_dependencies + dependencies: *image_build_jobs - atmosphere-molecule-csi-rbd: - dependencies: *molecule_gate_dependencies + dependencies: *image_build_jobs release: jobs: - atmosphere-publish-collection periodic: jobs: - atmosphere-molecule-aio-upgrade-openvswitch: - dependencies: *molecule_check_dependencies + dependencies: *image_build_jobs - atmosphere-molecule-aio-upgrade-ovn: - dependencies: *molecule_check_dependencies + dependencies: *image_build_jobs