From 0e6676cb0b9908e53eb1f5aee4c22aec2a1c1e4d Mon Sep 17 00:00:00 2001 From: Michal Nasiadka Date: Wed, 27 Sep 2023 08:12:10 +0000 Subject: [PATCH] rabbitmq: Use novemberain repos for Debian/Ubuntu CloudSmith is over budget, see [1]. As mentionedin in [2] - we're using amd64 packages on aarch64, since the community mirror does not mirror aarch64 - and the packages should be really marked as noarch. [3] has also been incorporated in this backport [1]: https://github.com/rabbitmq/rabbitmq-server/discussions/9526 [2]: https://github.com/rabbitmq/rabbitmq-server/discussions/9553 [3]: https://review.opendev.org/c/openstack/kolla/+/896927 Closes-Bug: #2037469 Change-Id: I83179ce5d53fed6cfe7f5fcbf6fdecd7199baa36 (cherry picked from commit 47b593d1e5531c693dde3e111ed3be91c60c41be) --- kolla/template/methods.py | 4 ++++ kolla/template/repos.yaml | 10 ++++++---- kolla/tests/test_methods.py | 24 +++++++++++++++++++++++- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/kolla/template/methods.py b/kolla/template/methods.py index 6b647de653..1a59267029 100644 --- a/kolla/template/methods.py +++ b/kolla/template/methods.py @@ -126,6 +126,10 @@ def handle_repos(context, reponames, mode): >>/etc/apt/sources.list.d/{repo}.sources \ && echo 'Signed-By: /etc/kolla/apt-keys/{repo_list[repo]['gpg_key']}' \ >>/etc/apt/sources.list.d/{repo}.sources \ +&& """ + if repo_list[repo]['arch']: + commands += f"""echo 'Architectures: {repo_list[repo]['arch']}' \ +>>/etc/apt/sources.list.d/{repo}.sources \ && """ except KeyError: # NOTE(hrw): we ignore missing repositories for a given diff --git a/kolla/template/repos.yaml b/kolla/template/repos.yaml index a7d5b736b9..acd356b55b 100644 --- a/kolla/template/repos.yaml +++ b/kolla/template/repos.yaml @@ -72,7 +72,7 @@ debian: component: "" gpg_key: "proxysql.asc" rabbitmq: - url: "https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian" + url: "https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/debian" suite: "bullseye" component: "main" gpg_key: "rabbitmq.gpg" @@ -119,9 +119,10 @@ debian-aarch64: component: "" gpg_key: "proxysql.asc" rabbitmq: - url: "https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian" + url: "https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/debian" suite: "bullseye" component: "main" + arch: "amd64" gpg_key: "rabbitmq.gpg" td-agent: url: "http://packages.treasuredata.com/4/debian/bullseye" @@ -202,7 +203,7 @@ ubuntu: component: "" gpg_key: "proxysql.asc" rabbitmq: - url: "https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu" + url: "https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu" suite: "jammy" component: "main" gpg_key: "rabbitmq.gpg" @@ -249,9 +250,10 @@ ubuntu-aarch64: component: "" gpg_key: "proxysql.asc" rabbitmq: - url: "https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu" + url: "https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu" suite: "jammy" component: "main" + arch: "amd64" gpg_key: "rabbitmq.gpg" td-agent: url: "http://packages.treasuredata.com/4/ubuntu/jammy/" diff --git a/kolla/tests/test_methods.py b/kolla/tests/test_methods.py index 9574bb3829..1b7b49a59d 100644 --- a/kolla/tests/test_methods.py +++ b/kolla/tests/test_methods.py @@ -78,6 +78,28 @@ class MethodsTest(base.TestCase): expectCmd += ">>/etc/apt/sources.list.d/grafana.sources" self.assertEqual(expectCmd, result) + def test_enable_repos_debian_arch(self): + template_vars = { + 'base_arch': 'aarch64', + 'base_distro': 'debian', + 'base_package_type': 'deb' + } + + result = methods.handle_repos(template_vars, ['rabbitmq'], 'enable') + expectCmd = "RUN echo 'Uris: https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/debian' " # noqa: E501 + expectCmd += ">/etc/apt/sources.list.d/rabbitmq.sources && " + expectCmd += "echo 'Components: main' " + expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && " + expectCmd += "echo 'Types: deb' " + expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && " + expectCmd += "echo 'Suites: bullseye' " + expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && " + expectCmd += "echo 'Signed-By: /etc/kolla/apt-keys/rabbitmq.gpg' " + expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && " + expectCmd += "echo 'Architectures: amd64' " + expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources" + self.assertEqual(expectCmd, result) + def test_enable_repos_debian_missing_repo(self): template_vars = { 'base_arch': 'x86_64', @@ -111,7 +133,7 @@ class MethodsTest(base.TestCase): expectCmd += ">>/etc/apt/sources.list.d/grafana.sources && " expectCmd += "echo 'Uris: " - expectCmd += "https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian' " # noqa: E501 + expectCmd += "https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/debian' " # noqa: E501 expectCmd += ">/etc/apt/sources.list.d/rabbitmq.sources && " expectCmd += "echo 'Components: main' " expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && "