From 528b7eef167996041f7cd3b2184fbcd6b5ff57fb Mon Sep 17 00:00:00 2001
From: Matt Crees <mattc@stackhpc.com>
Date: Wed, 11 Sep 2024 15:48:55 +0100
Subject: [PATCH] rabbitmq: Switch to Cloudsmith mirrors

PackageCloud is discontinued as of August 18th [1].

Also corrects the versions docs for RabbitMQ and Erlang.

Use new RMQ Cloudsmith repo URLs, these now use
*.rabbitmq.com domains [2].

1. https://www.rabbitmq.com/blog/2024/08/11/package-repository-updates#packagecloud-will-be-discontinued-on-aug-18th-2024
2. https://www.rabbitmq.com/blog/2024/08/11/package-repository-updates#mirrors-now-use-rabbitmqcom-domains

Change-Id: I2cce3dd2540c878878ff0aae80ee5a7e0f455da7
---
 doc/source/contributor/versions.rst              | 16 ++++++++--------
 docker/base/rabbitmq_rabbitmq-erlang.repo        |  7 +++++--
 docker/base/rabbitmq_rabbitmq-server.repo        |  7 +++++--
 kolla/template/repos.yaml                        |  8 ++++----
 kolla/tests/test_methods.py                      |  4 ++--
 ...grate-from-packagecloud-59d7e9e0a10e1da0.yaml |  7 +++++++
 6 files changed, 31 insertions(+), 18 deletions(-)
 create mode 100644 releasenotes/notes/rabbitmq-erlang-migrate-from-packagecloud-59d7e9e0a10e1da0.yaml

diff --git a/doc/source/contributor/versions.rst b/doc/source/contributor/versions.rst
index 42ec7ef593..98767e20be 100644
--- a/doc/source/contributor/versions.rst
+++ b/doc/source/contributor/versions.rst
@@ -23,14 +23,14 @@ information about package sources.
  Galera         26.4 (LTS)         `MariaDB Community downloads`_
  OpenSearch     2.x                `OpenSearch install guide`_
  ProxySQL       2.6.x              `ProxySQL repository`_
- Rabbitmq       3.10.x             - CentOS:
-                                     `Team RabbitMQ 'PackageCloud' repository`_
+ Rabbitmq       3.13.x             - CentOS/Rocky:
+                                     `Team RabbitMQ 'Cloudsmith' repo (RPM)`_
                                    - Debian/Ubuntu:
-                                     `Team RabbitMQ 'Cloudsmith' repository`_
- Erlang         25.x               - CentOS aarch64:
+                                     `Team RabbitMQ 'Cloudsmith' repo (Deb)`_
+ Erlang         26.2.X             - CentOS/Rocky aarch64:
                                      `Hrw's COPR`_
-                                   - CentOS x86-64:
-                                     `Team RabbitMQ 'PackageCloud' repository`_
+                                   - CentOS/Rocky x86-64:
+                                     `Team RabbitMQ 'Cloudsmith' repo (RPM)`_
                                    - Debian/Ubuntu:
                                      `Team RabbitMQ 'Modern Erlang' PPA`_
  TD Agent       4.4.x              `TreasureData install guide`_
@@ -44,9 +44,9 @@ information about package sources.
 .. _`TreasureData install guide`: https://www.fluentd.org/download
 .. _`ProxySQL repository`: https://repo.proxysql.com/ProxySQL/proxysql-2.6.x/
 
-.. _`Team RabbitMQ 'Cloudsmith' repository`: https://www.rabbitmq.com/install-debian.html#apt-cloudsmith
+.. _`Team RabbitMQ 'Cloudsmith' repo (Deb)`: https://www.rabbitmq.com/install-debian.html#apt-cloudsmith
 .. _`Team RabbitMQ 'Modern Erlang' PPA`: https://launchpad.net/~rabbitmq/+archive/ubuntu/rabbitmq-erlang
-.. _`Team RabbitMQ 'PackageCloud' repository`: https://www.rabbitmq.com/install-rpm.html#package-cloud
+.. _`Team RabbitMQ 'Cloudsmith' repo (RPM)`: https://www.rabbitmq.com/docs/install-rpm#cloudsmith
 .. _`Hrw's COPR`: https://copr.fedorainfracloud.org/coprs/hrw/erlang-for-rabbitmq/
 
 .. _`Grafana install guide`: https://grafana.com/grafana/download?platform=linux&edition=oss
diff --git a/docker/base/rabbitmq_rabbitmq-erlang.repo b/docker/base/rabbitmq_rabbitmq-erlang.repo
index 0c9681bc66..82b0441e06 100644
--- a/docker/base/rabbitmq_rabbitmq-erlang.repo
+++ b/docker/base/rabbitmq_rabbitmq-erlang.repo
@@ -1,6 +1,9 @@
 [rabbitmq_rabbitmq-erlang]
 name=rabbitmq_rabbitmq-erlang
-baseurl=https://packagecloud.io/rabbitmq/erlang/el/9/$basearch
+# Use a set of mirrors maintained by the RabbitMQ core team.
+# The mirrors have significantly higher bandwidth quotas.
+baseurl=https://yum1.rabbitmq.com/erlang/el/9/$basearch
+        https://yum2.rabbitmq.com/erlang/el/9/$basearch
 gpgcheck=1
 enabled=0
-gpgkey = https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
+gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
diff --git a/docker/base/rabbitmq_rabbitmq-server.repo b/docker/base/rabbitmq_rabbitmq-server.repo
index d08af4c54a..0680c11e1d 100644
--- a/docker/base/rabbitmq_rabbitmq-server.repo
+++ b/docker/base/rabbitmq_rabbitmq-server.repo
@@ -1,6 +1,9 @@
 [rabbitmq_rabbitmq-server]
 name=rabbitmq_rabbitmq-server
-baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/9/$basearch
+baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
+        https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
 gpgcheck=1
 enabled=0
-gpgkey = https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
+# Cloudsmith's repository key and RabbitMQ package signing key
+gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
+       https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
diff --git a/kolla/template/repos.yaml b/kolla/template/repos.yaml
index 1c7572b48e..65cb7b745b 100644
--- a/kolla/template/repos.yaml
+++ b/kolla/template/repos.yaml
@@ -80,7 +80,7 @@ debian:
     component: ""
     gpg_key: "proxysql.asc"
   rabbitmq:
-    url: "https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/debian"
+    url: "https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-server/deb/debian"
     suite: "bullseye"
     component: "main"
     gpg_key: "rabbitmq.gpg"
@@ -127,7 +127,7 @@ debian-aarch64:
     component: ""
     gpg_key: "proxysql.asc"
   rabbitmq:
-    url: "https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/debian"
+    url: "https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-server/deb/debian"
     suite: "bullseye"
     component: "main"
     # NOTE(mnasiadka): Since rabbitmq is really noarch and community mirror is not
@@ -213,7 +213,7 @@ ubuntu:
     component: ""
     gpg_key: "proxysql.asc"
   rabbitmq:
-    url: "https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu"
+    url: "https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-server/deb/ubuntu"
     suite: "jammy"
     component: "main"
     gpg_key: "rabbitmq.gpg"
@@ -260,7 +260,7 @@ ubuntu-aarch64:
     component: ""
     gpg_key: "proxysql.asc"
   rabbitmq:
-    url: "https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu"
+    url: "https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-server/deb/ubuntu"
     suite: "jammy"
     component: "main"
     arch: "amd64"
diff --git a/kolla/tests/test_methods.py b/kolla/tests/test_methods.py
index 3ce9c6f9fd..dcdc4f4e95 100644
--- a/kolla/tests/test_methods.py
+++ b/kolla/tests/test_methods.py
@@ -86,7 +86,7 @@ class MethodsTest(base.TestCase):
         }
 
         result = methods.handle_repos(template_vars, ['rabbitmq'], 'enable')
-        expectCmd = "RUN echo 'Uris: https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/debian' "  # noqa: E501
+        expectCmd = "RUN echo 'Uris: https://ppa1.rabbitmq.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 && "
@@ -133,7 +133,7 @@ class MethodsTest(base.TestCase):
         expectCmd += ">>/etc/apt/sources.list.d/grafana.sources && "
 
         expectCmd += "echo 'Uris: "
-        expectCmd += "https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/debian' "  # noqa: E501
+        expectCmd += "https://ppa1.rabbitmq.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 && "
diff --git a/releasenotes/notes/rabbitmq-erlang-migrate-from-packagecloud-59d7e9e0a10e1da0.yaml b/releasenotes/notes/rabbitmq-erlang-migrate-from-packagecloud-59d7e9e0a10e1da0.yaml
new file mode 100644
index 0000000000..b1a66e16f6
--- /dev/null
+++ b/releasenotes/notes/rabbitmq-erlang-migrate-from-packagecloud-59d7e9e0a10e1da0.yaml
@@ -0,0 +1,7 @@
+---
+upgrade:
+  - |
+    RabbitMQ and Erlang packages are now all installed from the Cloudsmith
+    ``rabbitmq.com`` mirrors since the RabbitMQ ``packagecloud.io`` is getting
+    shut down August 18st, 2024:
+    https://www.rabbitmq.com/blog/2024/08/11/package-repository-updates#packagecloud-will-be-discontinued-on-aug-18th-2024