Merge "Ensure redis_tls_proxy starts after all redis instances" into stable/train

This commit is contained in:
Zuul 2020-07-28 17:35:54 +00:00 committed by Gerrit Code Review
commit a8bf2c7223
4 changed files with 34 additions and 1 deletions

View File

@ -0,0 +1,18 @@
#!/bin/bash
set -eu
HOST=$1
PORT=$2
echo "$(date -u): Checking whether we can bind to ${HOST}:${PORT}"
while (ss -Htnl src "${HOST}" "sport = :${PORT}" | grep -wq "${PORT}"); do
echo "$(date -u): ${HOST}:${PORT} still in use, waiting...";
sleep 10;
done
shift 2
COMMAND="$*"
if [ -z "${COMMAND}" ]; then
COMMAND="true"
fi
exec $COMMAND

View File

@ -118,6 +118,9 @@ outputs:
template: { get_file: ../container_config_scripts/pacemaker_wait_bundle.sh } template: { get_file: ../container_config_scripts/pacemaker_wait_bundle.sh }
params: params:
__PCMKTIMEOUT__: {get_param: PcmkConfigRestartTimeout} __PCMKTIMEOUT__: {get_param: PcmkConfigRestartTimeout}
wait-port-and-run.sh:
mode: "0755"
content: { get_file: ../container_config_scripts/wait-port-and-run.sh }
volumes_base: volumes_base:
description: Base volume list description: Base volume list

View File

@ -193,7 +193,14 @@ outputs:
owner: redis:redis owner: redis:redis
recurse: true recurse: true
/var/lib/kolla/config_files/redis_tls_proxy.json: /var/lib/kolla/config_files/redis_tls_proxy.json:
command: stunnel /etc/stunnel/stunnel.conf command:
# Note: kolla doesn't process string arguments as expected,
# so use a bash idiom to achieve the same result
str_replace:
template:
bash -c $* -- eval /wait-port-and-run.sh $(hiera fqdn_$NETWORK) 6379 stunnel /etc/stunnel/stunnel.conf
params:
$NETWORK: {get_param: [ServiceNetMap, RedisNetwork]}
config_files: config_files:
- source: "/var/lib/kolla/config_files/src/*" - source: "/var/lib/kolla/config_files/src/*"
dest: "/" dest: "/"
@ -277,6 +284,7 @@ outputs:
- /var/lib/config-data/puppet-generated/redis:/var/lib/kolla/config_files/src:ro - /var/lib/config-data/puppet-generated/redis:/var/lib/kolla/config_files/src:ro
- /etc/pki/tls/certs/redis.crt:/var/lib/kolla/config_files/src-tls/etc/pki/tls/certs/redis.crt:ro - /etc/pki/tls/certs/redis.crt:/var/lib/kolla/config_files/src-tls/etc/pki/tls/certs/redis.crt:ro
- /etc/pki/tls/private/redis.key:/var/lib/kolla/config_files/src-tls/etc/pki/tls/private/redis.key:ro - /etc/pki/tls/private/redis.key:/var/lib/kolla/config_files/src-tls/etc/pki/tls/private/redis.key:ro
- /var/lib/container-config-scripts/wait-port-and-run.sh:/wait-port-and-run.sh:ro
environment: environment:
KOLLA_CONFIG_STRATEGY: COPY_ALWAYS KOLLA_CONFIG_STRATEGY: COPY_ALWAYS
- {} - {}

View File

@ -963,6 +963,10 @@ def validate_service_hiera_interpol(f, tpl):
if enter_lists and path[-1] != 0 and path[-2] != 'get_param': if enter_lists and path[-1] != 0 and path[-2] != 'get_param':
continue continue
# Omit if it is not a hiera config setting
if path[1] in ['kolla_config']:
continue
path_str = ';'.join(str(x) for x in path) path_str = ';'.join(str(x) for x in path)
# NOTE(bogdando): Omit foo_network keys looking like a network # NOTE(bogdando): Omit foo_network keys looking like a network
# name. The only exception is allow anything under # name. The only exception is allow anything under