diff options
| author | Doug Szumski <doug@stackhpc.com> | 2020-03-26 20:42:58 +0000 |
|---|---|---|
| committer | Pierre Riteau <pierre@stackhpc.com> | 2020-03-30 11:00:03 +0200 |
| commit | b758883418d1ea728bfd2bf482824f83f4b82782 (patch) | |
| tree | 9181f0ea60e3abfe32f845daa91bca33c8f06418 | |
| parent | 565917702669c689297198b4648962b07e9aaf63 (diff) | |
| download | kolla-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.yml | 5 | ||||
| -rw-r--r-- | ansible/roles/destroy/tasks/cleanup_host.yml | 1 | ||||
| -rw-r--r-- | ansible/roles/kafka/defaults/main.yml | 2 | ||||
| -rw-r--r-- | doc/source/reference/logging-and-monitoring/index.rst | 1 | ||||
| -rw-r--r-- | doc/source/reference/logging-and-monitoring/kafka-guide.rst | 25 | ||||
| -rw-r--r-- | releasenotes/notes/add-variable-kafka-datadir-volume-382015a42sc57636.yaml | 6 | ||||
| -rwxr-xr-x | tools/cleanup-host | 5 |
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 |
