From 226269d295ef62e2d7ab038fefdaf579f2e90878 Mon Sep 17 00:00:00 2001
From: portdirect <pete@port.direct>
Date: Sun, 28 Jan 2018 22:57:07 -0500
Subject: [PATCH] Gate/Doc: Move neutron config to gate scripts

This PS moves the neutron configuration to the gate scripts, rather
than mixing it between set and values commands, which was hard to
follow.

Change-Id: I94035d2af15efbe961366ae0427b39721b7aff78
---
 .../developer/ceph/160-compute-kit.sh         | 24 +++++++++-
 .../developer/nfs/160-compute-kit.sh          | 24 +++++++++-
 tools/deployment/multinode/140-compute-kit.sh | 48 +++++++++++++++----
 tools/overrides/mvp/neutron-ovs.yaml          | 40 ----------------
 4 files changed, 86 insertions(+), 50 deletions(-)
 delete mode 100644 tools/overrides/mvp/neutron-ovs.yaml

diff --git a/tools/deployment/developer/ceph/160-compute-kit.sh b/tools/deployment/developer/ceph/160-compute-kit.sh
index 176cb8d5de..daba0d4778 100755
--- a/tools/deployment/developer/ceph/160-compute-kit.sh
+++ b/tools/deployment/developer/ceph/160-compute-kit.sh
@@ -34,10 +34,32 @@ else
 fi
 
 #NOTE: Deploy neutron
+tee /tmp/neutron.yaml << EOF
+network:
+  interface:
+    tunnel: docker0
+conf:
+  neutron:
+    DEFAULT:
+      l3_ha: False
+      min_l3_agents_per_router: 1
+      max_l3_agents_per_router: 1
+      l3_ha_network_type: vxlan
+      dhcp_agents_per_network: 1
+  plugins:
+    ml2_conf:
+      ml2_type_flat:
+        flat_networks: public
+    openvswitch_agent:
+      agent:
+        tunnel_types: vxlan
+      ovs:
+        bridge_mappings: public:br-ex
+EOF
 helm install ./neutron \
     --namespace=openstack \
     --name=neutron \
-    --values=./tools/overrides/mvp/neutron-ovs.yaml
+    --values=/tmp/neutron.yaml
 
 #NOTE: Wait for deploy
 ./tools/deployment/common/wait-for-pods.sh openstack
diff --git a/tools/deployment/developer/nfs/160-compute-kit.sh b/tools/deployment/developer/nfs/160-compute-kit.sh
index 7607f4c0e0..47a10833fc 100755
--- a/tools/deployment/developer/nfs/160-compute-kit.sh
+++ b/tools/deployment/developer/nfs/160-compute-kit.sh
@@ -36,10 +36,32 @@ else
 fi
 
 #NOTE: Deploy neutron
+tee /tmp/neutron.yaml << EOF
+network:
+  interface:
+    tunnel: docker0
+conf:
+  neutron:
+    DEFAULT:
+      l3_ha: False
+      min_l3_agents_per_router: 1
+      max_l3_agents_per_router: 1
+      l3_ha_network_type: vxlan
+      dhcp_agents_per_network: 1
+  plugins:
+    ml2_conf:
+      ml2_type_flat:
+        flat_networks: public
+    openvswitch_agent:
+      agent:
+        tunnel_types: vxlan
+      ovs:
+        bridge_mappings: public:br-ex
+EOF
 helm install ./neutron \
     --namespace=openstack \
     --name=neutron \
-    --values=./tools/overrides/mvp/neutron-ovs.yaml
+    --values=/tmp/neutron.yaml
 
 #NOTE: Wait for deploy
 ./tools/deployment/common/wait-for-pods.sh openstack
diff --git a/tools/deployment/multinode/140-compute-kit.sh b/tools/deployment/multinode/140-compute-kit.sh
index 2e917f4ae0..59ceb0b4da 100755
--- a/tools/deployment/multinode/140-compute-kit.sh
+++ b/tools/deployment/multinode/140-compute-kit.sh
@@ -48,17 +48,49 @@ else
 fi
 
 #NOTE: Deploy neutron
+#NOTE(portdirect): for simplicity we will assume the default route device
+# should be used for tunnels
+NETWORK_TUNNEL_DEV="$(sudo ip -4 route list 0/0 | awk '{ print $5; exit }')"
+tee /tmp/neutron.yaml << EOF
+network:
+  interface:
+    tunnel: "${NETWORK_TUNNEL_DEV}"
+labels:
+  agent:
+    dhcp:
+      node_selector_key: openstack-helm-node-class
+      node_selector_value: primary
+    l3:
+      node_selector_key: openstack-helm-node-class
+      node_selector_value: primary
+    metadata:
+      node_selector_key: openstack-helm-node-class
+      node_selector_value: primary
+pod:
+  replicas:
+    server: 2
+conf:
+  neutron:
+    DEFAULT:
+      l3_ha: False
+      min_l3_agents_per_router: 1
+      max_l3_agents_per_router: 1
+      l3_ha_network_type: vxlan
+      dhcp_agents_per_network: 1
+  plugins:
+    ml2_conf:
+      ml2_type_flat:
+        flat_networks: public
+    openvswitch_agent:
+      agent:
+        tunnel_types: vxlan
+      ovs:
+        bridge_mappings: public:br-ex
+EOF
 helm install ./neutron \
     --namespace=openstack \
     --name=neutron \
-    --set pod.replicas.server=2 \
-    --set labels.agent.dhcp.node_selector_key=openstack-helm-node-class \
-    --set labels.agent.dhcp.node_selector_value=primary \
-    --set labels.agent.l3.node_selector_key=openstack-helm-node-class \
-    --set labels.agent.l3.node_selector_value=primary \
-    --set labels.agent.metadata.node_selector_key=openstack-helm-node-class \
-    --set labels.agent.metadata.node_selector_value=primary \
-    --values=./tools/overrides/mvp/neutron-ovs.yaml
+    --values=/tmp/neutron.yaml
 
 #NOTE: Wait for deploy
 ./tools/deployment/common/wait-for-pods.sh openstack
diff --git a/tools/overrides/mvp/neutron-ovs.yaml b/tools/overrides/mvp/neutron-ovs.yaml
deleted file mode 100644
index e7a584b040..0000000000
--- a/tools/overrides/mvp/neutron-ovs.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2017 The Openstack-Helm Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# MVP values for neutron.
-# This file contains overrides to launch a MVP deployment of neutron for the
-# OpenStack-Helm gates, and local development use. It should be
-# kept to the bare minimum required for this purpose.
-
-network:
-  interface:
-    tunnel: docker0
-
-conf:
-  neutron:
-    DEFAULT:
-      l3_ha: False
-      min_l3_agents_per_router: 1
-      max_l3_agents_per_router: 1
-      l3_ha_network_type: vxlan
-      dhcp_agents_per_network: 1
-  plugins:
-    ml2_conf:
-      ml2_type_flat:
-        flat_networks: public
-    openvswitch_agent:
-      agent:
-        tunnel_types: vxlan
-      ovs:
-        bridge_mappings: public:br-ex