aboutsummaryrefslogtreecommitdiff
path: root/kolla/docker/dnsmasq/extend_start.sh
diff options
context:
space:
mode:
Diffstat (limited to 'kolla/docker/dnsmasq/extend_start.sh')
-rw-r--r--kolla/docker/dnsmasq/extend_start.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/kolla/docker/dnsmasq/extend_start.sh b/kolla/docker/dnsmasq/extend_start.sh
new file mode 100644
index 000000000..0c9734fa1
--- /dev/null
+++ b/kolla/docker/dnsmasq/extend_start.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+DNSMASQ_PIDFILE=${DNSMASQ_PIDFILE:-/run/ironic/dnsmasq.pid}
+DNSMASQ_PIDFILE_DIR="$(dirname $DNSMASQ_PIDFILE)"
+
+if [[ ! -d "/var/log/kolla/ironic" ]]; then
+ mkdir -p /var/log/kolla/ironic
+fi
+if [[ $(stat -c %a /var/log/kolla/ironic) != "755" ]]; then
+ chmod 755 /var/log/kolla/ironic
+fi
+if [[ ! -r "/var/log/kolla/ironic/dnsmasq.log" ]]; then
+ touch /var/log/kolla/ironic/dnsmasq.log
+ chown ironic:ironic /var/log/kolla/ironic/dnsmasq.log
+fi
+
+if [[ ! -d "$DNSMASQ_PIDFILE_DIR" ]]; then
+ mkdir -p "$DNSMASQ_PIDFILE_DIR"
+fi
+
+# NOTE(wszumski): This writes the PID of dnsmasq out to a file. The PIDFILE can be used in
+# another container to send a signal to dnsmasq to reload its config (providing that the two
+# containers share a PID namespace). The concrete use case is for the Ironic PXE filter to
+# clean up stale host entries on startup as documented in:
+#
+# https://docs.openstack.org/ironic/latest/admin/inspection/pxe_filter.html
+#
+# We cannot use the pid-file option in dnsmasq, since it will only write the PIDFILE if you
+# run dnsmasq in its non-forking mode i.e you do use the --no-daemon or --keep-in-foreground
+# options.
+echo $$ > "$DNSMASQ_PIDFILE"