diff options
author | Gerhard Lazu <gerhard@lazu.co.uk> | 2021-01-18 18:14:43 +0000 |
---|---|---|
committer | Gerhard Lazu <gerhard@lazu.co.uk> | 2021-01-18 18:16:41 +0000 |
commit | 18ea54db18f4abcee902635aea52b27ea8601bd0 (patch) | |
tree | 2884b74b5715504c0938beb0b3da5ff9528b4096 | |
parent | a8df44f3a623e053f17f54a0db07c04a890cb6aa (diff) | |
download | rabbitmq-server-git-prometheus-add-namespace.tar.gz |
Test RabbitMQ-Overview changes with the latest 3.9.0 dev buildprometheus-add-namespace
We had to account for plugin changes from .ez to directories & the
management.load_definitions deprecation which would prevent a node from
booting (fixed in
https://github.com/rabbitmq/rabbitmq-server/commit/07a0dd743834b8cc76beec579c4b31845f8381f2).
This commit didn't make it through the 3.9.x pipeline yet, so there is
no 3.9.0 dev build with this fix yet. The simplest fix is to drop
`management.` from the load_definitions config.
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
8 files changed, 42 insertions, 29 deletions
diff --git a/deps/rabbitmq_prometheus/Dockerfile b/deps/rabbitmq_prometheus/Dockerfile index 3452115475..5844b5f603 100644 --- a/deps/rabbitmq_prometheus/Dockerfile +++ b/deps/rabbitmq_prometheus/Dockerfile @@ -276,20 +276,26 @@ RUN rabbitmq-plugins enable --offline rabbitmq_management && \ # extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile # see https://github.com/docker-library/rabbitmq/issues/207 RUN set -eux; \ - erl -noinput -eval ' \ - { ok, AdminBin } = zip:foldl(fun(FileInArchive, GetInfo, GetBin, Acc) -> \ - case Acc of \ - "" -> \ - case lists:suffix("/rabbitmqadmin", FileInArchive) of \ - true -> GetBin(); \ - false -> Acc \ - end; \ - _ -> Acc \ - end \ - end, "", init:get_plain_arguments()), \ - io:format("~s", [ AdminBin ]), \ - init:stop(). \ - ' -- /plugins/rabbitmq_management-*.ez > /usr/local/bin/rabbitmqadmin; \ + rabbitmqadmin_path="$(find -L /plugins -name rabbitmqadmin -type f)"; \ + if [ -f "$rabbitmqadmin_path" ]; \ + then \ + cp "$rabbitmqadmin_path" /usr/local/bin/rabbitmqadmin; \ + else \ + erl -noinput -eval ' \ + { ok, AdminBin } = zip:foldl(fun(FileInArchive, GetInfo, GetBin, Acc) -> \ + case Acc of \ + "" -> \ + case lists:suffix("/rabbitmqadmin", FileInArchive) of \ + true -> GetBin(); \ + false -> Acc \ + end; \ + _ -> Acc \ + end \ + end, "", init:get_plain_arguments()), \ + io:format("~s", [ AdminBin ]), \ + init:stop(). \ + ' -- /plugins/rabbitmq_management-*.ez > /usr/local/bin/rabbitmqadmin; \ + fi; \ [ -s /usr/local/bin/rabbitmqadmin ]; \ chmod +x /usr/local/bin/rabbitmqadmin; \ apt-get update; apt-get install -y --no-install-recommends python3; rm -rf /var/lib/apt/lists/*; \ @@ -301,13 +307,20 @@ RUN rabbitmq-plugins enable --offline rabbitmq_top && \ rabbitmq-plugins is_enabled rabbitmq_top --offline # rabbitmq_prometheus -RUN rm /plugins/prometheus*.ez -COPY plugins/prometheus*.ez /plugins/ -RUN rm /plugins/rabbitmq_prometheus*.ez -COPY plugins/rabbitmq_prometheus*.ez /plugins/ +# We copy all local plugins to a temporary directory so that +# we replace only the prometheus & rabbitmq_prometheus plugins in the image. +# If we don't do this, things get very weird with globs, +# and we either copy the the contents of those directories (e.g. ebin & priv) inside plugins, +# or we end up with prometheus* & rabbitmq_prometheus directories (I know! 🙄) +# This has been an ongoing issue since 2015, still not solved in 2021: +# https://github.com/moby/moby/issues/15858 +COPY plugins /plugins-tmp +RUN rm -fr /plugins/prometheus* && mv /plugins-tmp/prometheus* /plugins/ +RUN rm -fr /plugins/rabbitmq_prometheus* && mv /plugins-tmp/rabbitmq_prometheus* /plugins/ +RUN rm -fr /plugins-tmp ARG RABBITMQ_PROMETHEUS_VERSION -RUN chmod --recursive --verbose a+r /plugins/*.ez && \ +RUN chmod --recursive --verbose a+r /plugins/* && \ chown --recursive --verbose rabbitmq:rabbitmq /plugins && \ rabbitmq-plugins enable --offline rabbitmq_prometheus && \ rabbitmq-plugins is_enabled rabbitmq_prometheus --offline && \ diff --git a/deps/rabbitmq_prometheus/Makefile b/deps/rabbitmq_prometheus/Makefile index 178429c7ae..0e32404a60 100644 --- a/deps/rabbitmq_prometheus/Makefile +++ b/deps/rabbitmq_prometheus/Makefile @@ -1,15 +1,15 @@ TODAY := $(shell date -u +'%Y.%m.%d') # Use the latest alpha RabbitMQ 3.9 release - https://ci.rabbitmq.com/teams/main/pipelines/server-release:v3.9.x/jobs/build-test-package-generic-unix-latest-toolchain -BASED_ON_RABBITMQ_VERSION := 3.9.0-alpha.349 +BASED_ON_RABBITMQ_VERSION := 3.9.0-alpha.465 DOCKER_IMAGE_NAME := pivotalrabbitmq/rabbitmq-prometheus DOCKER_IMAGE_VERSION := $(BASED_ON_RABBITMQ_VERSION)-$(TODAY) # RABBITMQ_VERSION is used in rabbitmq-components.mk to set PROJECT_VERSION RABBITMQ_VERSION ?= $(DOCKER_IMAGE_VERSION) # This is taken from the CI job above -RABBITMQ_BUILD_NUMBER := 375 +RABBITMQ_BUILD_NUMBER := 499 # make find-latest-otp -OTP_VERSION := 23.0.2 -OTP_SHA256 := 6bab92d1a1b20cc319cd845c23db3611cc99f8c99a610d117578262e3c108af3 +OTP_VERSION := 23.2.2 +OTP_SHA256 := 04994a2dffee0170554797b3d258b4f4727e54c772e721202e9fb22d6827e4de define PROJECT_ENV [ diff --git a/deps/rabbitmq_prometheus/docker/docker-compose-dist-tls.yml b/deps/rabbitmq_prometheus/docker/docker-compose-dist-tls.yml index 241de1c919..7aa40e375e 100644 --- a/deps/rabbitmq_prometheus/docker/docker-compose-dist-tls.yml +++ b/deps/rabbitmq_prometheus/docker/docker-compose-dist-tls.yml @@ -13,7 +13,7 @@ volumes: services: rmq0-dist-tls: &rabbitmq # https://hub.docker.com/r/pivotalrabbitmq/rabbitmq-prometheus/tags - image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.349-2020.06.18 + image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.465-2021.01.18 networks: - "rabbitmq-prometheus" ports: diff --git a/deps/rabbitmq_prometheus/docker/docker-compose-overview.yml b/deps/rabbitmq_prometheus/docker/docker-compose-overview.yml index 92f039b30a..c7e71e6a79 100644 --- a/deps/rabbitmq_prometheus/docker/docker-compose-overview.yml +++ b/deps/rabbitmq_prometheus/docker/docker-compose-overview.yml @@ -13,7 +13,7 @@ volumes: services: rmq0: &rabbitmq # https://hub.docker.com/r/pivotalrabbitmq/rabbitmq-prometheus/tags - image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.349-2020.06.18 + image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.465-2021.01.18 networks: - "rabbitmq-prometheus" ports: diff --git a/deps/rabbitmq_prometheus/docker/docker-compose-qq.yml b/deps/rabbitmq_prometheus/docker/docker-compose-qq.yml index 846fd1ba64..722e1b62bd 100644 --- a/deps/rabbitmq_prometheus/docker/docker-compose-qq.yml +++ b/deps/rabbitmq_prometheus/docker/docker-compose-qq.yml @@ -13,7 +13,7 @@ volumes: services: rmq0-qq: &rabbitmq # https://hub.docker.com/r/pivotalrabbitmq/rabbitmq-prometheus/tags - image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.349-2020.06.18 + image: pivotalrabbitmq/rabbitmq-prometheus:3.9.0-alpha.465-2021.01.18 networks: - "rabbitmq-prometheus" ports: diff --git a/deps/rabbitmq_prometheus/docker/rabbitmq-dist-tls.conf b/deps/rabbitmq_prometheus/docker/rabbitmq-dist-tls.conf index ecc7de7633..94d6aaab01 100644 --- a/deps/rabbitmq_prometheus/docker/rabbitmq-dist-tls.conf +++ b/deps/rabbitmq_prometheus/docker/rabbitmq-dist-tls.conf @@ -15,7 +15,7 @@ cluster_formation.classic_config.nodes.1 = rabbit@rmq0-dist-tls cluster_formation.classic_config.nodes.2 = rabbit@rmq1-dist-tls cluster_formation.classic_config.nodes.3 = rabbit@rmq2-dist-tls -management.load_definitions = /etc/rabbitmq/rabbitmq-definitions.json +load_definitions = /etc/rabbitmq/rabbitmq-definitions.json # background_gc_enabled = true diff --git a/deps/rabbitmq_prometheus/docker/rabbitmq-overview.conf b/deps/rabbitmq_prometheus/docker/rabbitmq-overview.conf index bc157213d3..b276485b27 100644 --- a/deps/rabbitmq_prometheus/docker/rabbitmq-overview.conf +++ b/deps/rabbitmq_prometheus/docker/rabbitmq-overview.conf @@ -14,7 +14,7 @@ cluster_formation.classic_config.nodes.1 = rabbit@rmq0 cluster_formation.classic_config.nodes.2 = rabbit@rmq1 cluster_formation.classic_config.nodes.3 = rabbit@rmq2 -management.load_definitions = /etc/rabbitmq/rabbitmq-definitions.json +load_definitions = /etc/rabbitmq/rabbitmq-definitions.json # background_gc_enabled = true diff --git a/deps/rabbitmq_prometheus/docker/rabbitmq-qq.conf b/deps/rabbitmq_prometheus/docker/rabbitmq-qq.conf index ac50706dab..a61879342f 100644 --- a/deps/rabbitmq_prometheus/docker/rabbitmq-qq.conf +++ b/deps/rabbitmq_prometheus/docker/rabbitmq-qq.conf @@ -15,7 +15,7 @@ cluster_formation.classic_config.nodes.1 = rabbit@rmq0-qq cluster_formation.classic_config.nodes.2 = rabbit@rmq1-qq cluster_formation.classic_config.nodes.3 = rabbit@rmq2-qq -management.load_definitions = /etc/rabbitmq/rabbitmq-definitions.json +load_definitions = /etc/rabbitmq/rabbitmq-definitions.json # background_gc_enabled = true |