From cf609ba3cc82001822b4b050b595187d14235edd Mon Sep 17 00:00:00 2001
From: Paul Bourke <paul.bourke@oracle.com>
Date: Wed, 31 Oct 2018 11:43:12 +0000
Subject: [PATCH] Remove deprecated compute groups

The concept of splitting the compute group into external/internal just
to specify agent_mode for Neutron DVR was deemed to be heavy handed, and
depreacated in the Pike cycle.

Now that Rocky has been released we can remove these completely for Stein.

Change-Id: I28a1eba7f40fee55a7ec41c27451e39e4d7fd8f0
---
 ansible/group_vars/all.yml                       |  2 +-
 ansible/inventory/all-in-one                     | 16 +---------------
 ansible/inventory/multinode                      | 16 +---------------
 ansible/roles/neutron/tasks/precheck.yml         | 10 ----------
 ansible/roles/neutron/templates/l3_agent.ini.j2  |  6 +-----
 contrib/dev/vagrant/bootstrap.sh                 |  4 ++--
 ...precated-compute-groups-5273e945720edddc.yaml |  7 +++++++
 7 files changed, 13 insertions(+), 48 deletions(-)
 create mode 100644 releasenotes/notes/remove-deprecated-compute-groups-5273e945720edddc.yaml

diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 557a44874c..7b7701820a 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -728,7 +728,7 @@ neutron_tenant_network_types: "vxlan"
 
 # valid values: ["dvr", "dvr_no_external"]
 neutron_compute_dvr_mode: "dvr"
-computes_need_external_bridge: "{{ enable_neutron_dvr | bool and (neutron_compute_dvr_mode == 'dvr' or inventory_hostname in groups['external-compute']) or enable_neutron_provider_networks | bool or enable_opendaylight | bool and neutron_plugin_agent != 'vmware_dvs' and not enable_onos | bool }}"
+computes_need_external_bridge: "{{ enable_neutron_dvr | bool and neutron_compute_dvr_mode == 'dvr' or enable_neutron_provider_networks | bool or enable_opendaylight | bool and neutron_plugin_agent != 'vmware_dvs' and not enable_onos | bool }}"
 
 # Default DNS resolvers for virtual networks
 neutron_dnsmasq_dns_servers: "1.1.1.1,8.8.8.8,8.8.4.4"
diff --git a/ansible/inventory/all-in-one b/ansible/inventory/all-in-one
index f549badc88..233966ef4f 100644
--- a/ansible/inventory/all-in-one
+++ b/ansible/inventory/all-in-one
@@ -6,23 +6,9 @@ localhost       ansible_connection=local
 [network]
 localhost       ansible_connection=local
 
-# inner-compute is the groups of compute nodes which do not have
-# external reachability.
-# DEPRECATED, the group will be removed in S release of OpenStack,
-# use variable neutron_compute_dvr_mode instead.
-[inner-compute]
-
-# external-compute is the groups of compute nodes which can reach
-# outside.
-# DEPRECATED, the group will be removed in S release of OpenStack,
-# use variable neutron_compute_dvr_mode instead.
-[external-compute]
+[compute]
 localhost       ansible_connection=local
 
-[compute:children]
-inner-compute
-external-compute
-
 [storage]
 localhost       ansible_connection=local
 
diff --git a/ansible/inventory/multinode b/ansible/inventory/multinode
index 41c911e838..7e6ff6d618 100644
--- a/ansible/inventory/multinode
+++ b/ansible/inventory/multinode
@@ -15,23 +15,9 @@ control03
 network01
 network02
 
-# inner-compute is the groups of compute nodes which do not have
-# external reachability.
-# DEPRECATED, the group will be removed in S release of OpenStack,
-# use variable neutron_compute_dvr_mode instead.
-[inner-compute]
-
-# external-compute is the groups of compute nodes which can reach
-# outside.
-# DEPRECATED, the group will be removed in S release of OpenStack,
-# use variable neutron_compute_dvr_mode instead.
-[external-compute]
+[compute]
 compute01
 
-[compute:children]
-inner-compute
-external-compute
-
 [monitoring]
 monitoring01
 
diff --git a/ansible/roles/neutron/tasks/precheck.yml b/ansible/roles/neutron/tasks/precheck.yml
index 190d0ed1e7..850e6ec13c 100644
--- a/ansible/roles/neutron/tasks/precheck.yml
+++ b/ansible/roles/neutron/tasks/precheck.yml
@@ -48,16 +48,6 @@
   run_once: true
   with_items: "{{ tenant_network_types }}"
 
-- name: Checking for deprecated inner-compute and external-compute groups
-  local_action:
-    module: debug
-    msg: "WARNING: inner-compute and external-compute groups are DEPRECATED"
-  changed_when: false
-  run_once: True
-  when:
-    - (groups['inner-compute'] | default([]) | length > 0
-       or groups['external-compute'] | default([]) | length > 0)
-
 - name: Checking whether Ironic enabled
   local_action: fail msg="Ironic must be enabled when using networking-baremetal/ironic-neutron-agent"
   changed_when: false
diff --git a/ansible/roles/neutron/templates/l3_agent.ini.j2 b/ansible/roles/neutron/templates/l3_agent.ini.j2
index 049f9c71f6..dd24e54cd5 100644
--- a/ansible/roles/neutron/templates/l3_agent.ini.j2
+++ b/ansible/roles/neutron/templates/l3_agent.ini.j2
@@ -4,11 +4,7 @@
 {% if enable_neutron_dvr | bool %}
 {% if inventory_hostname in groups['network'] %}
 agent_mode = dvr_snat
-{% elif inventory_hostname in groups['external-compute'] %}
-agent_mode = dvr
-{% elif inventory_hostname in groups['inner-compute'] %}
-agent_mode = dvr_no_external
-{% elif inventory_hostname in groups['compute'] %}
+{% else %}
 agent_mode = {{ neutron_compute_dvr_mode }}
 {% endif %}
 {% else %}
diff --git a/contrib/dev/vagrant/bootstrap.sh b/contrib/dev/vagrant/bootstrap.sh
index a4c47e78bf..d7260a3239 100644
--- a/contrib/dev/vagrant/bootstrap.sh
+++ b/contrib/dev/vagrant/bootstrap.sh
@@ -176,14 +176,14 @@ function configure_kolla_cli {
     if [ "$MODE" == 'aio' ]; then
         kolla-cli setdeploy local
         kolla-cli host add localhost
-        for group in control deployment external-compute monitoring network storage; do
+        for group in control deployment compute monitoring network storage; do
             kolla-cli group addhost $group localhost
         done
     else
         for node_num in $(seq 1 ${NUMBER_OF_COMPUTE_NODES}); do
             node_name="compute0${node_num}"
             kolla-cli host add $node_name
-            kolla-cli group addhost external-compute $node_name
+            kolla-cli group addhost compute $node_name
         done
 
         for node_num in $(seq 1 ${NUMBER_OF_STORAGE_NODES}); do
diff --git a/releasenotes/notes/remove-deprecated-compute-groups-5273e945720edddc.yaml b/releasenotes/notes/remove-deprecated-compute-groups-5273e945720edddc.yaml
new file mode 100644
index 0000000000..49fb60d95d
--- /dev/null
+++ b/releasenotes/notes/remove-deprecated-compute-groups-5273e945720edddc.yaml
@@ -0,0 +1,7 @@
+---
+upgrade:
+  - |
+    Previously deprecated compute groups 'inner-compute' and 'external-compute'
+    have now been removed in favor of the more simple 'compute' group. Please
+    be sure to update your inventory.  Set 'neutron_compute_dvr_mode' on nodes
+    with which you wish to customise the value for neutron's 'agent_mode'.