keepalived wrapper script as the only one didn't have --rm
in docker/podman invocation - so these didn't get deleted
when stopped/crashed/etc.
Closes-Bug: #2127170
Change-Id: I85ae37250ac4ef629b77ade04826a363e8047a91
Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
(cherry picked from commit 90d255daa3)
48 lines
1.6 KiB
Bash
48 lines
1.6 KiB
Bash
#!/bin/bash
|
|
|
|
source /usr/local/etc/neutron-wrappers/config
|
|
|
|
ARGS="$@"
|
|
|
|
# Extract the network namespace UUID from the command line args provided by
|
|
# neutron. Typically of the form (with dnsmasq as an example):
|
|
#
|
|
# dnsmasq --no-hosts --no-resolv --except-interface=lo \
|
|
# --pid-file=/var/lib/neutron/dhcp/317716b8-919a-4a6f-8db1-78128ec3b100/pid \
|
|
# --dhcp-hostsfile=/var/lib/neutron/dhcp/317716b8-919a-4a6f-8db1-78128ec3b100/host ...
|
|
NETNS=$(ip netns identify)
|
|
NAME=${KOLLA_NAME}_keepalived_${NETNS}
|
|
|
|
if [[ -S "/var/run/docker.sock" ]]; then
|
|
CLI="docker"
|
|
CMD="ip netns exec ${NETNS} /usr/sbin/keepalived -n -l -D"
|
|
elif [[ -S "/run/podman/podman.sock" ]]; then
|
|
CLI="nsenter --net=/run/netns/${NETNS} --preserve-credentials -m -t 1 podman"
|
|
CMD='/usr/sbin/keepalived -n -l -D'
|
|
else
|
|
echo "Could not detect a supported container runtime, exiting."
|
|
exit 1
|
|
fi
|
|
|
|
LIST=$($CLI ps -a --filter name=${KOLLA_SERVICE}_keepalived_ --format '{{.ID}}:{{.Names}}:{{.Status}}' | awk '{print $1}')
|
|
|
|
# If the NAME is already taken by a container, give it an unique name
|
|
printf "%s\n" "${LIST}" | grep -q "${NAME}$" && NAME="${NAME}_$(date +%Y-%m-%d-%H%M%S-%N)"
|
|
|
|
echo "Starting a new child container ${NAME} using image ${KOLLA_IMAGE}"
|
|
$CLI run --rm --detach \
|
|
-v /etc/kolla/${KOLLA_SERVICE_NAME}:/etc/neutron:ro \
|
|
-v /lib/modules:/lib/modules:ro \
|
|
-v /sbin/modprobe:/sbin/modprobe:ro \
|
|
-v /run/netns:/run/netns:shared \
|
|
-v neutron_metadata_socket:/var/lib/neutron/kolla/ \
|
|
-v kolla_logs:/var/log/kolla \
|
|
--net host \
|
|
--pid host \
|
|
--cgroupns host \
|
|
--privileged \
|
|
-u root \
|
|
--name $NAME \
|
|
${KOLLA_IMAGE} \
|
|
$CMD $ARGS
|