From 9040d4f5271912f94635e495d65463956ac9ab75 Mon Sep 17 00:00:00 2001 From: Michal Arbet Date: Fri, 6 May 2022 18:00:08 +0200 Subject: Fix redis-sentinel containers always reporting changed The CONFIG REWRITE command rewrites the redis.conf file the server was started with, applying the minimal changes needed to make it reflect the configuration currently used by the server, which may be different compared to the original one because of the use of the CONFIG SET command. https://redis.io/commands/config-rewrite/ Because of above behaviour it's needed to hack kolla's CMD. Without this hack container's /usr/local/bin/kolla_set_configs --check is always reporting changed state even if config is not changed. Therefore redis containers are always restarted by kolla-ansible. This patch is fixing this. Change-Id: I8245b9e753fa4175dacfa679a078f63876b0d327 Partial-Bug: #1967664 --- docker/redis/redis-sentinel/Dockerfile.j2 | 3 +++ docker/redis/redis-sentinel/extend_start.sh | 32 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 docker/redis/redis-sentinel/extend_start.sh (limited to 'docker') diff --git a/docker/redis/redis-sentinel/Dockerfile.j2 b/docker/redis/redis-sentinel/Dockerfile.j2 index d98e687db..40ec887f2 100644 --- a/docker/redis/redis-sentinel/Dockerfile.j2 +++ b/docker/redis/redis-sentinel/Dockerfile.j2 @@ -14,6 +14,9 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% endif %} {{ macros.install_packages(redis_sentinel_packages | customizable("packages")) }} +COPY extend_start.sh /usr/local/bin/kolla_extend_start +RUN chmod 644 /usr/local/bin/kolla_extend_start + {% block redis_sentinel_footer %}{% endblock %} {% block footer %}{% endblock %} diff --git a/docker/redis/redis-sentinel/extend_start.sh b/docker/redis/redis-sentinel/extend_start.sh new file mode 100644 index 000000000..9044f3990 --- /dev/null +++ b/docker/redis/redis-sentinel/extend_start.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +if [[ ! -d "/var/log/kolla/redis" ]]; then + mkdir -p /var/log/kolla/redis +fi + +if [[ $(stat -c %a /var/log/kolla/redis) != "755" ]]; then + chmod 755 /var/log/kolla/redis +fi + +# The CONFIG REWRITE command rewrites the redis.conf +# file the server was started with, applying the minimal +# changes needed to make it reflect the configuration +# currently used by the server, which may be different +# compared to the original one because of the use of +# the CONFIG SET command. +# +# https://redis.io/commands/config-rewrite/ +# +# Because of above behaviour it's needed to +# hack kolla's CMD. +# +# Without this hack +# /usr/local/bin/kolla_set_configs --check +# is always reporting changed. +# +# Therefore redis-sentinel is always restarted +# even if configuration is not changed from +# kolla-ansible side. +if [ ! -z "${REDIS_CONF}" ] && [ ! -z ${REDIS_GEN_CONF} ]; then + cp ${REDIS_CONF} ${REDIS_GEN_CONF} +fi -- cgit v1.2.3