odl-ovs noha: Support VLAN tagged public
[fuel.git] / mcp / reclass / classes / cluster / mcp-odl-noha / openstack / compute.yml.j2
index c3e79e5..44ebb86 100644 (file)
@@ -6,21 +6,32 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 {%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
 ---
 classes:
   - service.neutron.compute.single
   - service.neutron.compute.opendaylight.single
-{%- if conf.MCP_DPDK_MODE %}
+{%- if '-ovs-' in conf.MCP_DEPLOY_SCENARIO %}
   - system.nova.compute.nfv.hugepages
   - system.neutron.compute.nfv.dpdk
 {%- endif %}
   - cluster.mcp-common-noha.openstack_compute
   - cluster.mcp-odl-noha
 parameters:
+  nova:
+    compute:
+      vif_plugging_is_fatal: false
+      vif_plugging_timeout: 60
+  neutron:
+    compute:
+      opendaylight:
+        ovsdb_server_iface: ptcp:6640:127.0.0.1
   linux:
     network:
+      ovs_nowait: false
       interface:
-{%- if conf.MCP_DPDK_MODE %}
+{%- if '-ovs-' in conf.MCP_DEPLOY_SCENARIO %}
         dpdk0:
           name: ${_param:dpdk0_name}
           pci: ${_param:dpdk0_pci}
@@ -29,21 +40,49 @@ parameters:
           bridge: br-prv
           type: dpdk_ovs_port
           n_rxq: ${_param:dpdk0_n_rxq}
+          mtu: ${_param:interface_mtu}
         br-prv:
           enabled: true
           type: dpdk_ovs_bridge
           proto: static
           address: ${_param:tenant_address}
           netmask: ${_param:opnfv_net_private_mask}
-        tenant_interface:
+        {{ nm.cmp001.nic_private }}:
           type: dpdk  # Not a meaningful type, just match 'dpdk' for filtering
-{%- endif %}
-        external_interface:
+
+{%- set nics = { nm.cmp001.nic_public: True } %}
+{%- set vlans = { nm.vlan_public: nm.cmp001.nic_public } %}
+
+{{ ma.linux_network_interfaces_nic(nics) }}
+
+{{ ma.linux_network_interfaces_vlan(vlans) }}
+
+        br-floating:
           enabled: true
-          type: eth
-          name: ${_param:external_interface}
+          type: ovs_bridge
+          datapath_type: netdev
+          use_interfaces:
+            - float-to-ex
+        float-to-ex:
+          enabled: true
+          type: ovs_port
           mtu: ${_param:interface_mtu}
-          proto: manual
+          bridge: br-floating
+          ovs_bridge: br-floating
+          noifupdown: true
+        br-ex:
+          enabled: true
+          type: bridge
+          address: ${_param:external_address}
+          netmask: ${_param:opnfv_net_public_mask}
+          use_interfaces:
+            - {{ ma.interface_str(nm.cmp001.nic_public, nm.vlan_public) }}
+          use_ovs_ports:
+            - float-to-ex
+          gateway: ${_param:opnfv_net_public_gw}
+          name_servers: {{ nm.dns_public }}
+          noifupdown: true
+{%- else %}
         br-mesh:
           enabled: true
           type: bridge
@@ -51,25 +90,36 @@ parameters:
           address: ${_param:tenant_address}
           netmask: ${_param:opnfv_net_private_mask}
           use_interfaces:
-            - ${_param:tenant_interface}
-        br-floating:
+            - {{ ma.interface_str(nm.cmp001.nic_private, vlan_private_start) }}
+        {{ ma.interface_str(nm.cmp001.nic_public, nm.vlan_public) }}:
           enabled: true
-          type: ovs_bridge
           mtu: ${_param:interface_mtu}
-        float-to-ex:
-          enabled: true
+          proto: manual
+          ovs_port_type: OVSPort
           type: ovs_port
-          mtu: ${_param:interface_mtu}
+          ovs_bridge: br-floating
           bridge: br-floating
-        br-ex:
+        br-floating:
           enabled: true
-          type: bridge
-          mtu: ${_param:interface_mtu}
+          type: ovs_bridge
+          proto: static
           address: ${_param:external_address}
           netmask: ${_param:opnfv_net_public_mask}
           use_interfaces:
-            - ${_param:external_interface}
-          use_ovs_ports:
-            - float-to-ex
+            - {{ ma.interface_str(nm.cmp001.nic_public, nm.vlan_public) }}
           gateway: ${_param:opnfv_net_public_gw}
           name_servers: {{ nm.dns_public }}
+          noifupdown: true
+{%- endif %}
+    system:
+      file:
+        /var/tmp/odl_hostconfig.patch:
+          contents: |
+            420c420
+            <                 if datapath_types.find(datapath_type) >= 0)
+            ---
+            >                 if datapath_type in datapath_types)
+            460c460
+            <         return subprocess.check_output(command_line).strip()  # nosec
+            ---
+            >         return subprocess.check_output(command_line).strip().decode()  # nosec