diff options
| author | Zuul <zuul@review.opendev.org> | 2026-07-08 16:33:45 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2026-07-08 16:33:45 +0000 |
| commit | 44b4d81399792f539716618953f2cafa64086a5c (patch) | |
| tree | 4699d7e068e6dd842a9f1f247ca2f150d60d5e27 /kolla/docker/neutron/neutron-base/haproxy | |
| parent | b3803eb9f951acd63018ab8ba69bcbd1a2de5c93 (diff) | |
| parent | db35ac8d793506bc43b62e7e39d27a75de1043ed (diff) | |
| download | kolla-44b4d81399792f539716618953f2cafa64086a5c.tar.gz kolla-44b4d81399792f539716618953f2cafa64086a5c.zip | |
Merge "Migrate to pyproject.toml"
Diffstat (limited to 'kolla/docker/neutron/neutron-base/haproxy')
| -rw-r--r-- | kolla/docker/neutron/neutron-base/haproxy | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/kolla/docker/neutron/neutron-base/haproxy b/kolla/docker/neutron/neutron-base/haproxy new file mode 100644 index 000000000..43b9ef9d2 --- /dev/null +++ b/kolla/docker/neutron/neutron-base/haproxy @@ -0,0 +1,45 @@ +#!/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}_haproxy_${NETNS} +HAPROXY_CMD='$(if [ -f /usr/sbin/haproxy-systemd-wrapper ]; then echo "/usr/sbin/haproxy -Ds"; else echo "/usr/sbin/haproxy -Ws"; fi)' +if [[ -S "/var/run/docker.sock" ]]; then + CLI="docker" + CMD="ip netns exec ${NETNS} "'$HAPROXY' +elif [[ -S "/run/podman/podman.sock" ]]; then + CLI="nsenter --net=/run/netns/${NETNS} --preserve-credentials -m -t 1 podman" + CMD='$HAPROXY' +else + echo "Could not detect a supported container runtime, exiting." + exit 1 +fi + +LIST=$($CLI ps -a --filter name=${KOLLA_NAME}_haproxy_ --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 /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} \ + /bin/bash -c "HAPROXY=\"$HAPROXY_CMD\"; exec $CMD $ARGS" |
