puppet-tripleo/templates/nova/virtlogd.epp

53 lines
1.9 KiB
Plaintext

<%- | String $image_name = '',
Boolean $debug
| -%>
#!/bin/bash
<%- if $debug { -%>set -x<%- } -%>
ARGS="$@"
NAME=nova_virtlogd
CMD='/usr/sbin/virtlogd --config /etc/libvirt/virtlogd.conf'
CLI="nsenter --preserve-credentials -m -t 1 podman"
LOGGING="--log-driver k8s-file --log-opt path=/var/log/containers/stdouts/${NAME}.log"
VIRTLOGD_CONTAINER=$(${CLI} ps -a --filter name="^${NAME}$" --format '{{.ID}}:{{.Status}}')
CONTAINER_ID=$(echo $VIRTLOGD_CONTAINER | awk -F: '{print $1}')
CONTAINER_STATUS=$(echo $VIRTLOGD_CONTAINER | awk -F: '{print $2}')
CONTAINER_STATUS_SHORT=$(echo $CONTAINER_STATUS | awk '{print $1}' | tr '[A-Z]' '[a-z]' )
case ${CONTAINER_STATUS_SHORT} in
up)
echo "Container ${NAME} with id ${CONTAINER_ID} is already running!"
;;
exited| created)
echo "Removing orphaned ${NAME} container ${CONTAINER_ID}"
$CLI stop ${CONTAINER_ID} || true
$CLI rm -f ${CONTAINER_ID} || true
;&
*)
echo "Starting a new child container ${NAME}"
$CLI run --rm --detach ${LOGGING} \
-v /etc/hosts:/etc/hosts:ro \
-v /etc/localtime:/etc/localtime:ro \
-v /var/lib/config-data/nova_libvirt/etc/libvirt:/etc/libvirt:ro \
-v /lib/modules:/lib/modules:ro \
-v /dev/log:/dev/log \
-v /run:/run \
-v /sys/fs/cgroup:/sys/fs/cgroup \
-v /var/run/libvirt:/var/run/libvirt:shared \
-v /var/lib/libvirt:/var/lib/libvirt \
-v /var/log/containers/libvirt:/var/log/libvirt \
-v /var/log/libvirt/qemu:/var/log/libvirt/qemu \
-v /var/lib/nova:/var/lib/nova:shared \
--net host \
--pid host \
--privileged \
-u root \
--name $NAME \
<%=$image_name%> \
$CMD $ARGS
;;
esac
sleep infinity