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.

[1]: https://github.com/rabbitmq/rabbitmq-server/discussions/9526
[2]: https://github.com/rabbitmq/rabbitmq-server/discussions/9553

Closes-Bug: #2037469

Change-Id: I83179ce5d53fed6cfe7f5fcbf6fdecd7199baa36
This commit is contained in:
Michal Nasiadka 2023-09-27 08:12:10 +00:00
parent 95a191e207
commit 47b593d1e5
4 changed files with 43 additions and 10 deletions

View File

@ -283,11 +283,16 @@ COPY apt_preferences /etc/apt/preferences.d/kolla-custom
] %}
{% set base_apt_keys = [
{'name': 'erlang-ppa', 'keyid': 'F77F1EDA57EBB1CC'},
{'name': 'rabbitmq', 'keyid': '9F4587F226208342'},
{'name': 'haproxy', 'keyid': 'CFFB779AADC995E4F350A060505D97A41C61B9CD'},
] %}
{% if base_arch == 'aarch64' %}
{% set base_apt_keys = base_apt_keys + [{'name': 'erlang-ppa', 'keyid': 'F77F1EDA57EBB1CC'}] %}
{% else %}
{% set base_apt_keys = base_apt_keys + [{'name': 'erlang-ppa', 'keyid': 'E495BB49CC4BBE5B'}] %}
{% endif %}
{# NOTE(hrw): type field defaults to 'asc' which is used for single keys #}
{% set base_remote_apt_keys = [
{'name': 'grafana', 'url': 'https://rpm.grafana.com/gpg.key'},

View File

@ -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

View File

@ -73,8 +73,8 @@ debian:
component: ""
gpg_key: "proxysql.asc"
rabbitmq:
url: "https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian"
suite: "bookworm"
url: "https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/debian"
suite: "bullseye"
component: "main"
gpg_key: "rabbitmq.gpg"
td-agent:
@ -122,9 +122,10 @@ debian-aarch64:
component: ""
gpg_key: "proxysql.asc"
rabbitmq:
url: "https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian"
suite: "bookworm"
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/ubuntu/jammy"
@ -170,7 +171,7 @@ rocky-aarch64:
ubuntu:
erlang:
url: "https://ppa.launchpadcontent.net/rabbitmq/rabbitmq-erlang/ubuntu"
url: "https://ppa1.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu"
suite: "jammy"
component: "main"
gpg_key: "erlang-ppa.gpg"
@ -205,7 +206,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"
@ -252,9 +253,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/"

View File

@ -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,13 +133,13 @@ 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 && "
expectCmd += "echo 'Types: deb' "
expectCmd += ">>/etc/apt/sources.list.d/rabbitmq.sources && "
expectCmd += "echo 'Suites: bookworm' "
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"