From 74205ee3a9c2008ad43a0e145c4898536de2ccba Mon Sep 17 00:00:00 2001
From: Mark Goddard <mark@stackhpc.com>
Date: Fri, 3 Nov 2017 14:35:02 +0000
Subject: [PATCH] Add a variable to configure which hosts run nova compute for
 ironic

May be used to avoid HA nova compute for ironic, which is experimental.
---
 ansible/group_vars/all/nova                           |  7 +++++++
 ansible/roles/kolla-ansible/defaults/main.yml         | 11 +++++++++++
 .../kolla-ansible/templates/overcloud-services.j2     |  5 ++++-
 doc/source/release-notes.rst                          |  4 ++++
 etc/kayobe/nova.yml                                   | 11 +++++++++++
 5 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 ansible/group_vars/all/nova
 create mode 100644 etc/kayobe/nova.yml

diff --git a/ansible/group_vars/all/nova b/ansible/group_vars/all/nova
new file mode 100644
index 00000000..06f7ce5e
--- /dev/null
+++ b/ansible/group_vars/all/nova
@@ -0,0 +1,7 @@
+---
+###############################################################################
+# Nova configuration.
+
+# Which group to use to deploy the nova-compute services for ironic. By default
+# all hosts in the nova group are used - typically the controllers.
+kolla_nova_compute_ironic_group: nova
diff --git a/ansible/roles/kolla-ansible/defaults/main.yml b/ansible/roles/kolla-ansible/defaults/main.yml
index f143eb67..59472e5f 100644
--- a/ansible/roles/kolla-ansible/defaults/main.yml
+++ b/ansible/roles/kolla-ansible/defaults/main.yml
@@ -205,6 +205,17 @@ kolla_openstack_logging_debug:
 #kolla_enable_tempest:
 #kolla_enable_watcher:
 
+#######################
+# Nova options
+#######################
+
+# Which group to use to deploy the nova-compute services for ironic. By default
+# all hosts in the nova group are used - typically the controllers.
+kolla_nova_compute_ironic_group: nova
+
+###############################################################################
+# Extra free-form configuraton.
+
 # Free form extra configuration to append to {{ kolla_config_path }}/globals.yml.
 kolla_extra_globals:
 
diff --git a/ansible/roles/kolla-ansible/templates/overcloud-services.j2 b/ansible/roles/kolla-ansible/templates/overcloud-services.j2
index 9e12c936..2ae5fd53 100644
--- a/ansible/roles/kolla-ansible/templates/overcloud-services.j2
+++ b/ansible/roles/kolla-ansible/templates/overcloud-services.j2
@@ -38,7 +38,10 @@ nova
 nova
 
 [nova-compute-ironic:children]
-nova
+# NOTE: HA for nova-compute services with ironic is still an experimental
+# feature. Provide the option to use a single compute host, even when multiple
+# controllers are in use.
+{{ kolla_nova_compute_ironic_group }}
 
 [nova-serialproxy:children]
 nova
diff --git a/doc/source/release-notes.rst b/doc/source/release-notes.rst
index 8d70d491..93e667d0 100644
--- a/doc/source/release-notes.rst
+++ b/doc/source/release-notes.rst
@@ -20,6 +20,10 @@ Features
 * Adds support for specifying a local Yum mirror for package installation.
 * Adds the command ``kayobe network connectivity check`` which can be used to
   verify network connectivity in the cloud hosts.
+* Adds a variable ``kolla_nova_compute_ironic_group`` which may be used to set
+  which hosts run the nova compute service for ironic. This may be used to
+  avoid the experimental HA nova compute service for ironic, by specifying a
+  single host.
 
 Upgrade Notes
 -------------
diff --git a/etc/kayobe/nova.yml b/etc/kayobe/nova.yml
new file mode 100644
index 00000000..991e517f
--- /dev/null
+++ b/etc/kayobe/nova.yml
@@ -0,0 +1,11 @@
+---
+###############################################################################
+# Nova configuration.
+
+# Which group to use to deploy the nova-compute services for ironic. By default
+# all hosts in the nova group are used - typically the controllers.
+#kolla_nova_compute_ironic_group:
+
+###############################################################################
+# Dummy variable to allow Ansible to accept this file.
+workaround_ansible_issue_8743: yes
-- 
GitLab