81 lines
3.0 KiB
YAML
81 lines
3.0 KiB
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: {{ include "rabbitmq.fullname" . }}-scripts
|
|
labels:
|
|
{{- include "rabbitmq.labels" . | nindent 4 }}
|
|
data:
|
|
init.sh: |
|
|
#!/bin/sh
|
|
echo "Initializing RabbitMQ instance..."
|
|
echo "Copy configuration"
|
|
cp /temp/rabbitmq/* /etc/rabbitmq
|
|
if [ -d /extraconfigs ]; then
|
|
echo "Add extra configs to rabbitmq config"
|
|
cat /extraconfigs/* >>/etc/rabbitmq/rabbitmq.conf
|
|
fi
|
|
if [ -d /extraadvancedconfigs ]; then
|
|
echo "Add extra advanced configs to rabbitmq advanced config"
|
|
cat /extraadvancedconfigs/* >>/etc/rabbitmq/advanced.conf
|
|
fi
|
|
if [ -d /temp/plugins ]; then
|
|
echo "Copy plugin configuration"
|
|
cp /temp/plugins/* /etc/rabbitmq
|
|
else
|
|
echo "No plugins configured."
|
|
fi
|
|
mkdir -p /etc/rabbitmq/conf.d
|
|
if [ ! -f /var/lib/rabbitmq/.erlang.cookie ]; then
|
|
echo "Copy erlang cookie"
|
|
echo $ERLANG_COOKIE >/var/lib/rabbitmq/.erlang.cookie
|
|
else
|
|
echo "Erlang cookie already exists."
|
|
fi
|
|
chmod 600 /var/lib/rabbitmq/.erlang.cookie
|
|
echo "Finished."
|
|
startup.sh: |
|
|
{{- if .Values.clustering.forceBoot }}
|
|
echo "Forcing boot of cluster instance" >/proc/1/fd/1
|
|
rabbitmqctl force_boot
|
|
{{- end }}
|
|
{{- if .Values.clustering.rebalance }}
|
|
until rabbitmqctl cluster_status >/dev/null; do
|
|
echo "PostStart: Waiting for cluster readiness..." >/proc/1/fd/1
|
|
sleep 5
|
|
done
|
|
echo "PostStart: Rebalancing all queues.." >/proc/1/fd/1
|
|
rabbitmq-queues rebalance "all" >/proc/1/fd/1
|
|
{{- end }}
|
|
shutdown.sh: |
|
|
{{- if and (.Values.terminationGracePeriodSeconds) (gt (int .Values.terminationGracePeriodSeconds) 10) }}
|
|
if rabbitmqctl cluster_status; then
|
|
echo "PreStop: Will wait up to {{ sub .Values.terminationGracePeriodSeconds 10 }} seconds for node to make sure cluster is healthy after node shutdown" >/proc/1/fd/1
|
|
timeout {{ sub .Values.terminationGracePeriodSeconds 10 }} /scripts/safeshutdown.sh
|
|
fi
|
|
{{- end }}
|
|
echo "PreStop: Stopping RabbitMQ" >/proc/1/fd/1
|
|
rabbitmqctl stop_app
|
|
echo "PreStop: RabbitMQ stopped" >/proc/1/fd/1
|
|
sleep 5
|
|
safeshutdown.sh: |
|
|
while true; do
|
|
waiting="false"
|
|
if ! rabbitmq-diagnostics -q check_if_node_is_mirror_sync_critical >/proc/1/fd/1; then
|
|
echo "PreStop: check_if_node_is_mirror_sync_critical returns error. Continuing to wait" >/proc/1/fd/1
|
|
waiting="true"
|
|
else
|
|
echo "PreStop: check_if_node_is_mirror_sync_critical returns o.k." >/proc/1/fd/1
|
|
fi
|
|
if ! rabbitmq-diagnostics -q check_if_node_is_quorum_critical >/proc/1/fd/1; then
|
|
echo "PreStop: check_if_node_is_quorum_critical returns error. Continuing to wait" >/proc/1/fd/1
|
|
waiting="true"
|
|
else
|
|
echo "PreStop: check_if_node_is_quorum_critical returns o.k." >/proc/1/fd/1
|
|
fi
|
|
if [ $waiting = "true" ]; then
|
|
sleep 1
|
|
else
|
|
break
|
|
fi
|
|
done
|