diff options
| -rw-r--r-- | docker/base/Dockerfile.j2 | 7 | ||||
| -rw-r--r-- | kolla/template/methods.py | 4 | ||||
| -rw-r--r-- | kolla/template/repos.yaml | 16 | ||||
| -rw-r--r-- | kolla/tests/test_methods.py | 26 |
4 files changed, 43 insertions, 10 deletions
diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index 02bb5b9c6..1482a7539 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -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'}, diff --git a/kolla/template/methods.py b/kolla/template/methods.py index 6b647de65..1a5926702 100644 --- a/kolla/template/methods.py +++ b/kolla/template/methods.py @@ -127,6 +127,10 @@ def handle_repos(context, reponames, mode): && 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 # distro/arch diff --git a/kolla/template/repos.yaml b/kolla/template/repos.yaml index 3b10851ac..d0f016c11 100644 --- a/kolla/template/repos.yaml +++ b/kolla/template/repos.yaml @@ -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/" diff --git a/kolla/tests/test_methods.py b/kolla/tests/test_methods.py index e651bb337..1b7b49a59 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,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" |
