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
This commit is contained in:
Michal Arbet 2022-05-06 18:00:08 +02:00 committed by Radosław Piliszek
parent 0e3b29c5fd
commit 9040d4f527
2 changed files with 35 additions and 0 deletions

View File

@ -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 %}

View File

@ -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