aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Szumski <doug@stackhpc.com>2020-03-26 20:42:58 +0000
committerPierre Riteau <pierre@stackhpc.com>2020-03-30 11:00:03 +0200
commitb758883418d1ea728bfd2bf482824f83f4b82782 (patch)
tree9181f0ea60e3abfe32f845daa91bca33c8f06418
parent565917702669c689297198b4648962b07e9aaf63 (diff)
downloadkolla-ansible-b758883418d1ea728bfd2bf482824f83f4b82782.tar.gz
kolla-ansible-b758883418d1ea728bfd2bf482824f83f4b82782.zip
Support setting Kafka storage volume
Not everyone wants Kafka data stored on a Docker volume. This change allows a user to flexibly control where the data is stored. Change-Id: I2ba8c7a85c7bf2564f954a43c6e6dbb3257fe902
-rw-r--r--ansible/group_vars/all.yml5
-rw-r--r--ansible/roles/destroy/tasks/cleanup_host.yml1
-rw-r--r--ansible/roles/kafka/defaults/main.yml2
-rw-r--r--doc/source/reference/logging-and-monitoring/index.rst1
-rw-r--r--doc/source/reference/logging-and-monitoring/kafka-guide.rst25
-rw-r--r--releasenotes/notes/add-variable-kafka-datadir-volume-382015a42sc57636.yaml6
-rwxr-xr-xtools/cleanup-host5
7 files changed, 44 insertions, 1 deletions
diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index ffefbf87a..148112835 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -1042,6 +1042,11 @@ enable_vitrage_prometheus_datasource: "{{ enable_prometheus | bool }}"
influxdb_address: "{{ kolla_internal_fqdn }}"
influxdb_datadir_volume: "influxdb"
+#################
+# Kafka options
+#################
+kafka_datadir_volume: "kafka"
+
#########################
# Internal Image options
#########################
diff --git a/ansible/roles/destroy/tasks/cleanup_host.yml b/ansible/roles/destroy/tasks/cleanup_host.yml
index 17dba02cb..314d8712c 100644
--- a/ansible/roles/destroy/tasks/cleanup_host.yml
+++ b/ansible/roles/destroy/tasks/cleanup_host.yml
@@ -10,6 +10,7 @@
nova_instance_datadir_volume: "{{ nova_instance_datadir_volume }}"
gnocchi_metric_datadir_volume: "{{ gnocchi_metric_datadir_volume }}"
influxdb_datadir_volume: "{{ influxdb_datadir_volume }}"
+ kafka_datadir_volume: "{{ kafka_datadir_volume }}"
kolla_internal_vip_address: "{{ kolla_internal_vip_address }}"
kolla_external_vip_address: "{{ kolla_external_vip_address }}"
kolla_dev_repos_directory: "{{ kolla_dev_repos_directory }}"
diff --git a/ansible/roles/kafka/defaults/main.yml b/ansible/roles/kafka/defaults/main.yml
index f242cece4..51c248e5e 100644
--- a/ansible/roles/kafka/defaults/main.yml
+++ b/ansible/roles/kafka/defaults/main.yml
@@ -34,6 +34,6 @@ kafka_dimensions: "{{ default_container_dimensions }}"
kafka_default_volumes:
- "{{ node_config_directory }}/kafka/:{{ container_config_directory }}/"
- "/etc/localtime:/etc/localtime:ro"
- - "kafka:/var/lib/kafka/data"
+ - "{{ kafka_datadir_volume }}:/var/lib/kafka/data"
- "kolla_logs:/var/log/kolla/"
kafka_extra_volumes: "{{ default_extra_volumes }}"
diff --git a/doc/source/reference/logging-and-monitoring/index.rst b/doc/source/reference/logging-and-monitoring/index.rst
index a2cfbd0c9..4aa730c2b 100644
--- a/doc/source/reference/logging-and-monitoring/index.rst
+++ b/doc/source/reference/logging-and-monitoring/index.rst
@@ -10,6 +10,7 @@ logging and monitoring services available in kolla.
central-logging-guide
influxdb-guide
+ kafka-guide
monasca-guide
osprofiler-guide
prometheus-guide
diff --git a/doc/source/reference/logging-and-monitoring/kafka-guide.rst b/doc/source/reference/logging-and-monitoring/kafka-guide.rst
new file mode 100644
index 000000000..2867e9f2f
--- /dev/null
+++ b/doc/source/reference/logging-and-monitoring/kafka-guide.rst
@@ -0,0 +1,25 @@
+.. _kafka-guide:
+
+============
+Apache Kafka
+============
+
+Overview
+~~~~~~~~
+
+`Kafka <https://kafka.apache.org/intro>`_ is a distributed stream processing
+system. It forms the central component of Monasca and in an OpenStack context
+can also be used as an experimental messaging backend in `Oslo messaging
+<https://docs.openstack.org/oslo.messaging/latest/admin/kafka.html>`_.
+
+Kafka
+~~~~~
+
+A spinning disk array is normally sufficient for Kafka. The data directory
+defaults to a docker volume, ``kafka``. Since it can use a lot of disk space,
+you may wish to store the data on a dedicated device. This can be achieved by
+setting ``kafka_datadir_volume`` in ``/etc/kolla/globals.yml``:
+
+.. code-block:: yaml
+
+ kafka_datadir_volume: /mnt/spinning_array/kafka/
diff --git a/releasenotes/notes/add-variable-kafka-datadir-volume-382015a42sc57636.yaml b/releasenotes/notes/add-variable-kafka-datadir-volume-382015a42sc57636.yaml
new file mode 100644
index 000000000..3e552e7ae
--- /dev/null
+++ b/releasenotes/notes/add-variable-kafka-datadir-volume-382015a42sc57636.yaml
@@ -0,0 +1,6 @@
+---
+features:
+ - |
+ Adds a new variable, ``kafka_datadir_volume``. This allows you to control
+ where the Kafka data is stored. Generally you will want this to be a
+ spinning disk, or an array of spinning disks.
diff --git a/tools/cleanup-host b/tools/cleanup-host
index 25dfc176a..0994c4193 100755
--- a/tools/cleanup-host
+++ b/tools/cleanup-host
@@ -68,6 +68,11 @@ if [[ "$influxdb_datadir_volume" != "influxdb" && -d "$influxdb_datadir_volume"
rm -rfv $influxdb_datadir_volume
fi
+if [[ "$kafka_datadir_volume" != "kafka" && -d "$kafka_datadir_volume" ]]; then
+ echo "Removing kafka volume if it is customised"
+ rm -rfv $kafka_datadir_volume
+fi
+
FOLDER_PATH="/etc/kolla/"
if [[ -e "$FOLDER_PATH/ovsdpdk-db/ovs-dpdkctl.sh" ]]; then