53 lines
1.9 KiB
Plaintext
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
|