From bf8eb4809a7e061e0b741f9fda07849c35f712a2 Mon Sep 17 00:00:00 2001
From: Mark Goddard <mark@stackhpc.com>
Date: Fri, 3 Mar 2017 13:36:14 +0000
Subject: [PATCH] Mount kolla_logs volume in bifrost_deploy

Using a kolla_logs volume ensures that logs are persistent beyond the
lifespan of the bifrost_deploy container. This is necessary to support
upgrading the bifrost services. It also opens the possibility of log
forwarding, although we do not currently deploy a fluentd container on
the bifrost host.

Change-Id: If3118cd75ccc87b0d003d5f382695aeaa43ed0f8
Partially-implements: blueprint bifrost-upgrade
---
 ansible/roles/bifrost/tasks/bootstrap.yml              | 10 ++++++++++
 ansible/roles/bifrost/tasks/start.yml                  |  1 +
 ansible/roles/bifrost/templates/bifrost.yml.j2         | 10 ++++++++++
 .../bifrost-persistent-logs-889cb58bf0f22c18.yaml      |  6 ++++++
 4 files changed, 27 insertions(+)
 create mode 100644 releasenotes/notes/bifrost-persistent-logs-889cb58bf0f22c18.yaml

diff --git a/ansible/roles/bifrost/tasks/bootstrap.yml b/ansible/roles/bifrost/tasks/bootstrap.yml
index f31839082e..8f841d98ee 100644
--- a/ansible/roles/bifrost/tasks/bootstrap.yml
+++ b/ansible/roles/bifrost/tasks/bootstrap.yml
@@ -1,4 +1,14 @@
 ---
+- name: Ensure log directories exist
+  command: >
+     docker exec bifrost_deploy
+     bash -c 'mkdir -p /var/log/kolla/ironic &&
+     chown ironic:ironic /var/log/kolla/ironic &&
+     mkdir -p /var/log/kolla/ironic-inspector &&
+     chown ironic:ironic /var/log/kolla/ironic-inspector &&
+     mkdir -p /var/log/kolla/nginx &&
+     chown nginx:nginx /var/log/kolla/nginx'
+
 - name: Bootstrap bifrost (this may take several minutes)
   command: >
      docker exec bifrost_deploy
diff --git a/ansible/roles/bifrost/tasks/start.yml b/ansible/roles/bifrost/tasks/start.yml
index 58b247b665..717f419284 100644
--- a/ansible/roles/bifrost/tasks/start.yml
+++ b/ansible/roles/bifrost/tasks/start.yml
@@ -10,3 +10,4 @@
       - "{{ node_config_directory }}/bifrost/:/etc/bifrost:ro"
       - "/etc/localtime:/etc/localtime:ro"
       - "/dev:/dev"
+      - "kolla_logs:/var/log/kolla/"
diff --git a/ansible/roles/bifrost/templates/bifrost.yml.j2 b/ansible/roles/bifrost/templates/bifrost.yml.j2
index 224d11a08a..aab83e5502 100644
--- a/ansible/roles/bifrost/templates/bifrost.yml.j2
+++ b/ansible/roles/bifrost/templates/bifrost.yml.j2
@@ -1,3 +1,13 @@
+---
+# Ironic log directory.
+ironic_log_dir: "/var/log/kolla/ironic"
+
+# Ironic inspector log directory.
+inspector_log_dir: "/var/log/kolla/ironic-inspector"
+
+# Nginx log directory.
+nginx_log_dir: "/var/log/kolla/nginx"
+
 mysql_service_name: mysql
 ansible_python_interpreter: /var/lib/kolla/venv/bin/python
 network_interface: "{{ bifrost_network_interface }}"
diff --git a/releasenotes/notes/bifrost-persistent-logs-889cb58bf0f22c18.yaml b/releasenotes/notes/bifrost-persistent-logs-889cb58bf0f22c18.yaml
new file mode 100644
index 0000000000..d943ab2889
--- /dev/null
+++ b/releasenotes/notes/bifrost-persistent-logs-889cb58bf0f22c18.yaml
@@ -0,0 +1,6 @@
+---
+features:
+  - |
+    Adds a ``kolla_logs`` Docker volume for storing logs generated by services
+    running in the ``bifrost_deploy`` container on the deployment host. These
+    logs are not currently processed by fluentd.
-- 
GitLab