From b0a67996c383c7a0ad7e0e0f9a17bfaa687c46f4 Mon Sep 17 00:00:00 2001
From: Darren Hoyland <darren.hoyland@verneglobal.com>
Date: Mon, 13 Nov 2017 15:46:17 +0000
Subject: [PATCH 1/3] (potential) fix for
 https://github.com/stackhpc/kayobe/issues/71

---
 ansible/roles/kolla-ansible/defaults/main.yml              | 2 ++
 .../roles/kolla-ansible/templates/overcloud-services.j2    | 7 ++++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/ansible/roles/kolla-ansible/defaults/main.yml b/ansible/roles/kolla-ansible/defaults/main.yml
index 2d8a03a78..01f683291 100644
--- a/ansible/roles/kolla-ansible/defaults/main.yml
+++ b/ansible/roles/kolla-ansible/defaults/main.yml
@@ -210,6 +210,8 @@ kolla_openstack_logging_debug:
 # Nova options
 #######################
 
+kolla_nova_compute_ironic_host:
+
 # 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/templates/overcloud-services.j2 b/ansible/roles/kolla-ansible/templates/overcloud-services.j2
index 2ae5fd531..4c8628499 100644
--- a/ansible/roles/kolla-ansible/templates/overcloud-services.j2
+++ b/ansible/roles/kolla-ansible/templates/overcloud-services.j2
@@ -37,11 +37,16 @@ nova
 [nova-spicehtml5proxy:children]
 nova
 
-[nova-compute-ironic:children]
 # 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.
+{% if kolla_nova_compute_ironic_host is not none %}
+[nova-compute-ironic]
+{{ kolla_nova_compute_ironic_host }}
+{% else %}
+[nova-compute-ironic:children]
 {{ kolla_nova_compute_ironic_group }}
+{% endif %}
 
 [nova-serialproxy:children]
 nova

From 77c13fe626e8b582b2c59aa71d02d7ef51e87ba2 Mon Sep 17 00:00:00 2001
From: Darren Hoyland <darren.hoyland@verneglobal.com>
Date: Mon, 13 Nov 2017 16:03:20 +0000
Subject: [PATCH 2/3] Added a comment to explain what's going on with
 kolla_nova_compute_ironic_host

---
 ansible/group_vars/all/nova                   | 4 ++++
 ansible/roles/kolla-ansible/defaults/main.yml | 6 ++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/ansible/group_vars/all/nova b/ansible/group_vars/all/nova
index 06f7ce5ea..9c5dbf451 100644
--- a/ansible/group_vars/all/nova
+++ b/ansible/group_vars/all/nova
@@ -5,3 +5,7 @@
 # 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
+
+# Which host to use to deploy the nova-compute services for ironic. By default
+# this is none and the kolla_nova_compute_ironic_group is used instead.
+kolla_nova_compute_ironic_host:
diff --git a/ansible/roles/kolla-ansible/defaults/main.yml b/ansible/roles/kolla-ansible/defaults/main.yml
index 01f683291..ec76d8a6d 100644
--- a/ansible/roles/kolla-ansible/defaults/main.yml
+++ b/ansible/roles/kolla-ansible/defaults/main.yml
@@ -210,12 +210,14 @@ kolla_openstack_logging_debug:
 # Nova options
 #######################
 
-kolla_nova_compute_ironic_host:
-
 # 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
 
+# Which host to use to deploy the nova-compute services for ironic. By default
+# this is none and the kolla_nova_compute_ironic_group is used instead.
+kolla_nova_compute_ironic_host:
+
 ###############################################################################
 # Extra free-form configuraton.
 

From 80b30b8a984b18801175ab9b5f94ecd6257d1c88 Mon Sep 17 00:00:00 2001
From: Darren Hoyland <darren.hoyland@verneglobal.com>
Date: Mon, 13 Nov 2017 16:16:01 +0000
Subject: [PATCH 3/3] The default group doesn't need to be configurable

---
 ansible/group_vars/all/nova                                | 7 ++-----
 ansible/roles/kolla-ansible/defaults/main.yml              | 7 ++-----
 .../roles/kolla-ansible/templates/overcloud-services.j2    | 2 +-
 doc/source/release-notes.rst                               | 2 +-
 etc/kayobe/nova.yml                                        | 7 ++++---
 5 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/ansible/group_vars/all/nova b/ansible/group_vars/all/nova
index 9c5dbf451..d08eb0a80 100644
--- a/ansible/group_vars/all/nova
+++ b/ansible/group_vars/all/nova
@@ -2,10 +2,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
-
 # Which host to use to deploy the nova-compute services for ironic. By default
-# this is none and the kolla_nova_compute_ironic_group is used instead.
+# this is none and all hosts in the nova group are used instead - typically the
+# controllers.
 kolla_nova_compute_ironic_host:
diff --git a/ansible/roles/kolla-ansible/defaults/main.yml b/ansible/roles/kolla-ansible/defaults/main.yml
index ec76d8a6d..da88e5f45 100644
--- a/ansible/roles/kolla-ansible/defaults/main.yml
+++ b/ansible/roles/kolla-ansible/defaults/main.yml
@@ -210,12 +210,9 @@ kolla_openstack_logging_debug:
 # 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
-
 # Which host to use to deploy the nova-compute services for ironic. By default
-# this is none and the kolla_nova_compute_ironic_group is used instead.
+# this is none and all hosts in the nova group are used instead - typically the
+# controllers.
 kolla_nova_compute_ironic_host:
 
 ###############################################################################
diff --git a/ansible/roles/kolla-ansible/templates/overcloud-services.j2 b/ansible/roles/kolla-ansible/templates/overcloud-services.j2
index 4c8628499..3b9f9f4e4 100644
--- a/ansible/roles/kolla-ansible/templates/overcloud-services.j2
+++ b/ansible/roles/kolla-ansible/templates/overcloud-services.j2
@@ -45,7 +45,7 @@ nova
 {{ kolla_nova_compute_ironic_host }}
 {% else %}
 [nova-compute-ironic:children]
-{{ kolla_nova_compute_ironic_group }}
+nova
 {% endif %}
 
 [nova-serialproxy:children]
diff --git a/doc/source/release-notes.rst b/doc/source/release-notes.rst
index 93e667d03..19520e25c 100644
--- a/doc/source/release-notes.rst
+++ b/doc/source/release-notes.rst
@@ -20,7 +20,7 @@ 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
+* Adds a variable ``kolla_nova_compute_ironic_host`` 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.
diff --git a/etc/kayobe/nova.yml b/etc/kayobe/nova.yml
index 991e517f6..6abf14500 100644
--- a/etc/kayobe/nova.yml
+++ b/etc/kayobe/nova.yml
@@ -2,9 +2,10 @@
 ###############################################################################
 # 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:
+# Which host to use to deploy the nova-compute services for ironic. By default
+# this is none and all hosts in the nova group are used instead - typically the
+# controllers.
+#kolla_nova_compute_ironic_host:
 
 ###############################################################################
 # Dummy variable to allow Ansible to accept this file.