summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-04-22 16:19:41 +0000
committerGerrit Code Review <review@openstack.org>2020-04-22 16:19:41 +0000
commitd7e86dc4c3bc773b0d299e7657fb9b03eee08b56 (patch)
treecdc638ab05ef1f486c97e8dcb0345fd90b0cdb40
parent0cae8e2be35156265fa9ccf5f60f8c5b4da2bb00 (diff)
parent27d3f39e0eb1a0f75635dcb181eb26a9811fc8b3 (diff)
downloadkolla-d7e86dc4c3bc773b0d299e7657fb9b03eee08b56.tar.gz
kolla-d7e86dc4c3bc773b0d299e7657fb9b03eee08b56.zip
Merge "CentOS 8: Add rabbitmq-3.7.24 image (CentOS 7 only)" into stable/train
-rw-r--r--docker/rabbitmq-3.7.24/Dockerfile.j249
-rw-r--r--docker/rabbitmq-3.7.24/extend_start.sh26
-rw-r--r--docker/rabbitmq-3.7.24/rabbitmq_rabbitmq-erlang.repo7
-rw-r--r--docker/rabbitmq-3.7.24/rabbitmq_rabbitmq-server.repo7
-rwxr-xr-xkolla/image/build.py3
-rw-r--r--releasenotes/notes/rabbitmq-3.7.24-ba6f071b59000731.yaml6
6 files changed, 98 insertions, 0 deletions
diff --git a/docker/rabbitmq-3.7.24/Dockerfile.j2 b/docker/rabbitmq-3.7.24/Dockerfile.j2
new file mode 100644
index 000000000..c1d87a80c
--- /dev/null
+++ b/docker/rabbitmq-3.7.24/Dockerfile.j2
@@ -0,0 +1,49 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+
+{% block rabbitmq_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.configure_user(name='rabbitmq') }}
+
+{% block rabbitmq_install %}
+{% if base_package_type == 'rpm' %}
+ {% set rabbitmq_packages = [
+ 'hostname',
+ 'rabbitmq-server-3.7.24',
+ ] %}
+{% endif %}
+
+COPY rabbitmq_rabbitmq-erlang.repo rabbitmq_rabbitmq-server.repo /etc/yum.repos.d/
+RUN rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
+{{ macros.install_packages(rabbitmq_packages | customizable("packages")) }}
+
+{% endblock %}
+
+{% block rabbitmq_install_plugins %}
+
+RUN rm -rf /var/lib/rabbitmq/* \
+ && mkdir -p /usr/lib/rabbitmq/plugins \
+ && /usr/lib/rabbitmq/bin/rabbitmq-plugins enable --offline \
+ rabbitmq_management
+
+
+ {% set rabbitmq_plugins = [
+ 'accept-0.3.3.ez',
+ 'prometheus-3.5.1.ez',
+ 'prometheus_cowboy-0.1.4.ez',
+ 'prometheus_httpd-2.1.8.ez',
+ 'prometheus_rabbitmq_exporter-3.7.2.4.ez'
+ ] %}
+
+{{ macros.install_rabbitmq_plugins(rabbitmq_plugins | customizable("plugins"), version="v3.7.2.4") }}
+{% endblock %}
+
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+RUN chmod 755 /usr/local/bin/kolla_extend_start
+
+{% block rabbitmq_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER rabbitmq
diff --git a/docker/rabbitmq-3.7.24/extend_start.sh b/docker/rabbitmq-3.7.24/extend_start.sh
new file mode 100644
index 000000000..ef28d2b5f
--- /dev/null
+++ b/docker/rabbitmq-3.7.24/extend_start.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+: ${RABBITMQ_LOG_DIR:=/var/log/kolla/rabbitmq}
+
+# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
+# of the KOLLA_BOOTSTRAP variable being set, including empty.
+if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
+
+# NOTE(sbezverk): In kubernetes environment, if this file exists from previous
+# bootstrap, the system does not allow to overwrite it (it bootstrap files with
+# permission denied error) but it allows to delete it and then recreate it.
+ if [[ -e "/var/lib/rabbitmq/.erlang.cookie" ]]; then
+ rm -f /var/lib/rabbitmq/.erlang.cookie
+ fi
+ echo "${RABBITMQ_CLUSTER_COOKIE}" > /var/lib/rabbitmq/.erlang.cookie
+ chmod 400 /var/lib/rabbitmq/.erlang.cookie
+ exit 0
+fi
+
+if [[ ! -d "${RABBITMQ_LOG_DIR}" ]]; then
+ mkdir -p ${RABBITMQ_LOG_DIR}
+fi
+
+if [[ $(stat -c %a ${RABBITMQ_LOG_DIR}) != "755" ]]; then
+ chmod 755 ${RABBITMQ_LOG_DIR}
+fi
diff --git a/docker/rabbitmq-3.7.24/rabbitmq_rabbitmq-erlang.repo b/docker/rabbitmq-3.7.24/rabbitmq_rabbitmq-erlang.repo
new file mode 100644
index 000000000..6d98dbc29
--- /dev/null
+++ b/docker/rabbitmq-3.7.24/rabbitmq_rabbitmq-erlang.repo
@@ -0,0 +1,7 @@
+[rabbitmq_rabbitmq-erlang]
+name=rabbitmq_rabbitmq-erlang
+baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/22/el/$releasever/
+repo_gpgcheck=1
+gpgcheck=1
+enabled=1
+gpgkey=https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
diff --git a/docker/rabbitmq-3.7.24/rabbitmq_rabbitmq-server.repo b/docker/rabbitmq-3.7.24/rabbitmq_rabbitmq-server.repo
new file mode 100644
index 000000000..3596f8dd9
--- /dev/null
+++ b/docker/rabbitmq-3.7.24/rabbitmq_rabbitmq-server.repo
@@ -0,0 +1,7 @@
+[rabbitmq_rabbitmq-server]
+name=rabbitmq_rabbitmq-server
+baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/$releasever/
+repo_gpgcheck=1
+gpgcheck=1
+enabled=1
+gpgkey=https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
diff --git a/kolla/image/build.py b/kolla/image/build.py
index a863d8c92..8a72e0d23 100755
--- a/kolla/image/build.py
+++ b/kolla/image/build.py
@@ -160,6 +160,7 @@ UNBUILDABLE_IMAGES = {
"nova-spicehtml5proxy", # Missing spicehtml5 package
"opendaylight", # Missing opendaylight repo
"ovsdpdk", # Not supported on CentOS
+ "rabbitmq-3.7.24", # Required only for CentOS 7 to 8 migration
"sensu-base", # Missing sensu package
"tgtd", # Not supported on CentOS 8
},
@@ -179,6 +180,7 @@ UNBUILDABLE_IMAGES = {
"opendaylight", # no binary package
"ovsdpdk",
"qdrouterd",
+ "rabbitmq-3.7.24", # Required only for CentOS 7 to 8 migration
"sensu-base",
"telegraf", # no binary package
},
@@ -187,6 +189,7 @@ UNBUILDABLE_IMAGES = {
"elasticsearch6", # Only required for CentOS 8 migration.
"kibana6", # Only required for CentOS 8 migration.
"qdrouterd", # There is no qdrouterd package for ubuntu bionic
+ "rabbitmq-3.7.24", # Required only for CentOS 7 to 8 migration
},
'debian+aarch64': {
diff --git a/releasenotes/notes/rabbitmq-3.7.24-ba6f071b59000731.yaml b/releasenotes/notes/rabbitmq-3.7.24-ba6f071b59000731.yaml
new file mode 100644
index 000000000..c1fbe5ba6
--- /dev/null
+++ b/releasenotes/notes/rabbitmq-3.7.24-ba6f071b59000731.yaml
@@ -0,0 +1,6 @@
+---
+upgrade:
+ - |
+ Adds a new ``rabbitmq-3.7.24`` image for CentOS 7 only. This image is used
+ to provide compatibility between RabbitMQ versions in CentOS 7 and 8
+ images. This image will only be available in the Train release.