From d2d9f0d6b76b91c4f5a9deb2b8ad04a495f06499 Mon Sep 17 00:00:00 2001
From: Doug Szumski <doug@stackhpc.com>
Date: Tue, 12 Jun 2018 16:19:08 +0100
Subject: [PATCH] Add support for deploying Apache Storm

Change-Id: I49afdddb8ba2f9cb4a08071c6acee3a3efb03305
Story: 2001627
Task: 6707
---
 ansible/group_vars/all/kolla                               | 5 ++++-
 ansible/roles/kolla-ansible/defaults/main.yml              | 1 +
 .../roles/kolla-ansible/templates/overcloud-components.j2  | 3 +++
 .../roles/kolla-ansible/templates/overcloud-services.j2    | 7 +++++++
 ansible/roles/kolla-ansible/tests/test-defaults.yml        | 1 +
 ansible/roles/kolla-ansible/tests/test-extras.yml          | 2 ++
 ansible/roles/kolla-ansible/vars/main.yml                  | 1 +
 ansible/roles/kolla-openstack/defaults/main.yml            | 6 ++++++
 .../kolla-openstack/molecule/default/tests/test_default.py | 1 +
 .../molecule/enable-everything/molecule.yml                | 1 +
 .../molecule/enable-everything/tests/test_default.py       | 1 +
 ansible/roles/kolla-openstack/vars/main.yml                | 5 +++++
 etc/kayobe/kolla.yml                                       | 1 +
 releasenotes/notes/add-storm-5d29163b61ef01ce.yaml         | 4 ++++
 14 files changed, 38 insertions(+), 1 deletion(-)
 create mode 100644 releasenotes/notes/add-storm-5d29163b61ef01ce.yaml

diff --git a/ansible/group_vars/all/kolla b/ansible/group_vars/all/kolla
index 0362a9af..09147719 100644
--- a/ansible/group_vars/all/kolla
+++ b/ansible/group_vars/all/kolla
@@ -191,6 +191,8 @@ overcloud_container_image_regex_map:
     enabled: "{{ kolla_enable_sahara | bool }}"
   - regex: skydive
     enabled: "{{ kolla_enable_skydive | bool }}"
+  - regex: storm
+    enabled: "{{ kolla_enable_storm | bool }}"
   - regex: swift
     enabled: "{{ kolla_enable_swift | bool }}"
   - regex: telegraf
@@ -349,9 +351,10 @@ kolla_enable_osprofiler: "no"
 kolla_enable_prometheus: "no"
 kolla_enable_sahara: "no"
 kolla_enable_skydive: "no"
+kolla_enable_storm: "{{ 'yes' if kolla_enable_monasca | bool else 'no' }}"
 kolla_enable_swift: "no"
 kolla_enable_telegraf: "no"
-kolla_enable_zookeeper: "{{ 'yes' if kolla_enable_kafka | bool else 'no' }}"
+kolla_enable_zookeeper: "{{ 'yes' if kolla_enable_kafka | bool or kolla_enable_storm | bool else 'no' }}"
 
 ###############################################################################
 # Passwords and credentials.
diff --git a/ansible/roles/kolla-ansible/defaults/main.yml b/ansible/roles/kolla-ansible/defaults/main.yml
index 5b4c521d..bc0b1b0d 100644
--- a/ansible/roles/kolla-ansible/defaults/main.yml
+++ b/ansible/roles/kolla-ansible/defaults/main.yml
@@ -243,6 +243,7 @@ kolla_openstack_logging_debug:
 #kolla_enable_rally:
 #kolla_enable_sahara:
 #kolla_enable_senlin:
+#kolla_enable_storm:
 #kolla_enable_swift:
 #kolla_enable_telegraf:
 #kolla_enable_tempest:
diff --git a/ansible/roles/kolla-ansible/templates/overcloud-components.j2 b/ansible/roles/kolla-ansible/templates/overcloud-components.j2
index 76e85721..55d313b0 100644
--- a/ansible/roles/kolla-ansible/templates/overcloud-components.j2
+++ b/ansible/roles/kolla-ansible/templates/overcloud-components.j2
@@ -131,6 +131,9 @@ control
 [monasca:children]
 monitoring
 
+[storm:children]
+monitoring
+
 [murano:children]
 control
 
diff --git a/ansible/roles/kolla-ansible/templates/overcloud-services.j2 b/ansible/roles/kolla-ansible/templates/overcloud-services.j2
index f0278bdd..6ac4eae4 100644
--- a/ansible/roles/kolla-ansible/templates/overcloud-services.j2
+++ b/ansible/roles/kolla-ansible/templates/overcloud-services.j2
@@ -209,6 +209,13 @@ monasca
 [monasca-persister:children]
 monasca
 
+# Storm
+[storm-worker:children]
+storm
+
+[storm-nimbus:children]
+storm
+
 # Murano
 [murano-api:children]
 murano
diff --git a/ansible/roles/kolla-ansible/tests/test-defaults.yml b/ansible/roles/kolla-ansible/tests/test-defaults.yml
index 31cb585a..ebd2679a 100644
--- a/ansible/roles/kolla-ansible/tests/test-defaults.yml
+++ b/ansible/roles/kolla-ansible/tests/test-defaults.yml
@@ -100,6 +100,7 @@
               - enable_monasca
               - enable_neutron
               - enable_nova
+              - enable_storm
               - enable_zookeeper
               - grafana_admin_username
               - network_interface
diff --git a/ansible/roles/kolla-ansible/tests/test-extras.yml b/ansible/roles/kolla-ansible/tests/test-extras.yml
index 12cb9d65..bd052ae1 100644
--- a/ansible/roles/kolla-ansible/tests/test-extras.yml
+++ b/ansible/roles/kolla-ansible/tests/test-extras.yml
@@ -153,6 +153,7 @@
             kolla_enable_senlin: True
             kolla_enable_skydive: True
             kolla_enable_solum: True
+            kolla_enable_storm: True
             kolla_enable_swift: True
             kolla_enable_tacker: True
             kolla_enable_telegraf: True
@@ -282,6 +283,7 @@
               #enable_skydive: True
               #enable_solum: True
               #enable_senlin: True
+              #enable_storm: True
               #enable_swift: True
               #enable_tacker: True
               #enable_telegraf: True
diff --git a/ansible/roles/kolla-ansible/vars/main.yml b/ansible/roles/kolla-ansible/vars/main.yml
index 3d32f86e..9cb6d9d5 100644
--- a/ansible/roles/kolla-ansible/vars/main.yml
+++ b/ansible/roles/kolla-ansible/vars/main.yml
@@ -128,6 +128,7 @@ kolla_feature_flags:
   - senlin
   - skydive
   - solum
+  - storm
   - swift
   - tacker
   - telegraf
diff --git a/ansible/roles/kolla-openstack/defaults/main.yml b/ansible/roles/kolla-openstack/defaults/main.yml
index 27caa114..2214ff24 100644
--- a/ansible/roles/kolla-openstack/defaults/main.yml
+++ b/ansible/roles/kolla-openstack/defaults/main.yml
@@ -370,6 +370,12 @@ kolla_enable_sahara:
 # Free form extra configuration to append to sahara.conf.
 kolla_extra_sahara:
 
+###############################################################################
+# Storm configuration.
+
+# Whether to enable Storm.
+kolla_enable_storm:
+
 ###############################################################################
 # Swift configuration.
 
diff --git a/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py b/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py
index bf86823a..d52d17b3 100644
--- a/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py
+++ b/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py
@@ -55,6 +55,7 @@ def test_service_config_directory(host, path):
      'neutron',
      'nova',
      'sahara',
+     'storm',
      'swift',
      'zookeeper'])
 def test_service_config_directory_absent(host, path):
diff --git a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml
index fca21ca7..fb409033 100644
--- a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml
+++ b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml
@@ -88,6 +88,7 @@ provisioner:
           [extra-sahara.conf]
           foo=bar
         kolla_enable_swift: true
+        kolla_enable_storm: true
         kolla_enable_zookeeper: true
         kolla_extra_zookeeper: |
           [extra-zookeeper.cfg]
diff --git a/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py b/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py
index c18be65d..3d8f7160 100644
--- a/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py
+++ b/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py
@@ -48,6 +48,7 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
      'neutron',
      'nova',
      'sahara',
+     'storm',
      'swift',
      'zookeeper'])
 def test_service_config_directory(host, path):
diff --git a/ansible/roles/kolla-openstack/vars/main.yml b/ansible/roles/kolla-openstack/vars/main.yml
index 4dca8362..90516962 100644
--- a/ansible/roles/kolla-openstack/vars/main.yml
+++ b/ansible/roles/kolla-openstack/vars/main.yml
@@ -59,6 +59,11 @@ kolla_openstack_custom_config:
     dest: "{{ kolla_node_custom_config_path }}/influxdb"
     patterns: "*"
     enabled: "{{ kolla_enable_influxdb }}"
+  # Storm.
+  - src: "{{ kolla_extra_config_path }}/storm"
+    dest: "{{ kolla_node_custom_config_path }}/storm"
+    patterns: "*"
+    enabled: "{{ kolla_enable_storm }}"
   # Ironic.
   - src: "{{ kolla_extra_config_path }}/ironic"
     dest: "{{ kolla_node_custom_config_path }}/ironic"
diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml
index 3b208b34..f89aca1e 100644
--- a/etc/kayobe/kolla.yml
+++ b/etc/kayobe/kolla.yml
@@ -224,6 +224,7 @@
 #kolla_enable_senlin:
 #kolla_enable_skydive:
 #kolla_enable_solum:
+#kolla_enable_storm:
 #kolla_enable_swift:
 #kolla_enable_tacker:
 #kolla_enable_telegraf:
diff --git a/releasenotes/notes/add-storm-5d29163b61ef01ce.yaml b/releasenotes/notes/add-storm-5d29163b61ef01ce.yaml
new file mode 100644
index 00000000..d4664a17
--- /dev/null
+++ b/releasenotes/notes/add-storm-5d29163b61ef01ce.yaml
@@ -0,0 +1,4 @@
+---
+features:
+  - Add support for deploying Apache Storm which is used by Monasca
+    for alerting.
-- 
GitLab