From a0206d9626323ed4ef57bd4ecc072e3f96aa043a Mon Sep 17 00:00:00 2001 From: Maik Catrinque Date: Fri, 14 Jan 2022 15:07:40 -0300 Subject: [PATCH] Add force_boot command to rabbit start template Currently, if a multi-node cluster is shut down unexpectedly, RabbitMQ is not able to boot and sync with the other nodes. The purpose of this change is to add the possibility to use the rabbitmqctl force_boot command to recover RabbitMQ cluster from an unexpected shut down. Test plan: PASS: Shutdown and start a multi-node RabbitMQ cluster Regression: PASS: OpenStack can be applied successfully PASS: RabbitMQ nodes can join the RabbitMQ cluster Story: 2009784 Task: 44290 Ref: [0] https://www.rabbitmq.com/rabbitmqctl.8.html#force_boot Signed-off-by: Maik Catrinque Co-authored-by: Andrew Martins Carletti Change-Id: I56e966ea64e8881ba436213f0c9e1cbe547098e3 --- rabbitmq/Chart.yaml | 2 +- rabbitmq/templates/bin/_rabbitmq-start.sh.tpl | 3 +++ rabbitmq/values.yaml | 6 ++++++ releasenotes/notes/rabbitmq.yaml | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/rabbitmq/Chart.yaml b/rabbitmq/Chart.yaml index 36cd0e443..a2261232f 100644 --- a/rabbitmq/Chart.yaml +++ b/rabbitmq/Chart.yaml @@ -15,6 +15,6 @@ apiVersion: v1 appVersion: v3.7.26 description: OpenStack-Helm RabbitMQ name: rabbitmq -version: 0.1.15 +version: 0.1.16 home: https://github.com/rabbitmq/rabbitmq-server ... diff --git a/rabbitmq/templates/bin/_rabbitmq-start.sh.tpl b/rabbitmq/templates/bin/_rabbitmq-start.sh.tpl index 794f09199..4ef849fd1 100644 --- a/rabbitmq/templates/bin/_rabbitmq-start.sh.tpl +++ b/rabbitmq/templates/bin/_rabbitmq-start.sh.tpl @@ -94,4 +94,7 @@ if ! [ "${POD_INCREMENT}" -eq "0" ] && ! [ -d "/var/lib/rabbitmq/mnesia" ] ; the rm -fv /tmp/rabbit-disable-readiness /tmp/rabbit-disable-liveness-probe fi +{{- if .Values.forceBoot.enabled }} +if [ "${POD_INCREMENT}" -eq "0" ] && [ -d "/var/lib/rabbitmq/mnesia/${RABBITMQ_NODENAME}" ]; then rabbitmqctl force_boot; fi +{{- end}} exec rabbitmq-server diff --git a/rabbitmq/values.yaml b/rabbitmq/values.yaml index c593966f5..8eb51c649 100644 --- a/rabbitmq/values.yaml +++ b/rabbitmq/values.yaml @@ -46,6 +46,12 @@ images: - dep_check - image_repo_sync +# forceBoot: executes 'rabbitmqctl force_boot' to force boot on +# cluster shut down unexpectedly in an unknown order. +# ref: https://www.rabbitmq.com/rabbitmqctl.8.html#force_boot +forceBoot: + enabled: false + pod: probes: prometheus_rabbitmq_exporter: diff --git a/releasenotes/notes/rabbitmq.yaml b/releasenotes/notes/rabbitmq.yaml index 4ec33690a..bce748d17 100644 --- a/releasenotes/notes/rabbitmq.yaml +++ b/releasenotes/notes/rabbitmq.yaml @@ -15,4 +15,5 @@ rabbitmq: - 0.1.13 Add prestop action and version 3.8.x upgrade prep - 0.1.14 Update readiness and liveness probes - 0.1.15 Update htk requirements + - 0.1.16 Add force_boot command to rabbit start template ...