Split OVN northd and ml2 plugin
authorSteven Hardy <shardy@redhat.com>
Tue, 18 Oct 2016 11:15:56 +0000 (12:15 +0100)
committerNuman Siddique <nusiddiq@redhat.com>
Mon, 19 Dec 2016 07:00:21 +0000 (12:30 +0530)
This allows us to take advantage of the composable roles hiera
settings to connect the plugin to the northd/ovndb API without
needing to hard-code the IP of the node running the service.

Change-Id: I2508d48f81c1819ae3521fff271c0bdc50724604
Depends-On: I9af7bd837c340c3df016fc7ad4238b2941ba7a95
Closes-Bug: #1634171

environments/neutron-ml2-ovn.yaml
network/service_net_map.j2.yaml
overcloud-resource-registry-puppet.j2.yaml
puppet/services/neutron-plugin-ml2-ovn.yaml
puppet/services/ovn-dbs.yaml [new file with mode: 0644]
roles_data.yaml

index bafb2a7..3da560c 100644 (file)
@@ -8,10 +8,10 @@ resource_registry:
 # Disabling Neutron services that overlap with OVN
   OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
   OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
+  OS::TripleO::Services::OVNDBs: ../puppet/services/ovn-dbs.yaml
 
 parameter_defaults:
   NeutronMechanismDrivers: ovn
-  OVNDbHost: '0.0.0.0'
   OVNSouthboundServerPort: 6642
   OVNNorthboundServerPort: 6641
   OVNDbConnectionTimeout: 60
@@ -19,3 +19,4 @@ parameter_defaults:
   OVNNeutronSyncMode: log
   OVNQosDriver: ovn-qos
   OVNTunnelEncapType: geneve
+  NeutronEnableDHCPAgent: false
index 5991b3b..ee35f94 100644 (file)
@@ -58,6 +58,7 @@ parameters:
       CephRgwNetwork: storage
       PublicNetwork: external
       OpendaylightApiNetwork: internal_api
+      OvnDbsNetwork: internal_api
       MistralApiNetwork: internal_api
       ZaqarApiNetwork: internal_api
       # We special-case the default ResolveNetwork for the CephStorage role
index 77a4865..8c4b9f5 100644 (file)
@@ -146,6 +146,8 @@ resource_registry:
   OS::TripleO::Services::NeutronCorePluginPlumgrid: puppet/services/neutron-plugin-plumgrid.yaml
   OS::TripleO::Services::NeutronCorePluginNuage: puppet/services/neutron-plugin-nuage.yaml
   OS::TripleO::Services::NeutronCorePluginOpencontrail: puppet/services/neutron-plugin-opencontrail.yaml
+  OS::TripleO::Services::OVNDBs: OS::Heat::None
+
   OS::TripleO::Services::NeutronCorePluginMidonet: puppet/services/neutron-midonet.yaml
   OS::TripleO::Services::NeutronOvsAgent: puppet/services/neutron-ovs-agent.yaml
   OS::TripleO::Services::ComputeNeutronOvsAgent: puppet/services/neutron-ovs-agent.yaml
index e98ed49..20dfda6 100644 (file)
@@ -18,13 +18,6 @@ parameters:
     description: Mapping of service endpoint -> protocol. Typically set
                  via parameter_defaults in the resource registry.
     type: json
-  OVNDbHost:
-    description: IP address on which the OVN DB servers are listening
-    type: string
-  OVNNorthboundServerPort:
-    description: Port of the OVN Northbound DB server
-    type: number
-    default: 6641
   OVNDbConnectionTimeout:
     description: Timeout in seconds for the OVSDB connection transaction
     type: number
@@ -68,9 +61,7 @@ outputs:
       config_settings:
         map_merge:
           - get_attr: [NeutronMl2Base, role_data, config_settings]
-          - ovn::northbound::port: {get_param: OVNNorthboundServerPort}
-            tripleo::profile::base::neutron::plugins::ml2::ovn::ovn_db_host: {get_param: OVNDbHost}
-            neutron::plugins::ovn::ovsdb_connection_timeout: {get_param: OVNDbConnectionTimeout}
+          - neutron::plugins::ovn::ovsdb_connection_timeout: {get_param: OVNDbConnectionTimeout}
             neutron::plugins::ovn::neutron_sync_mode: {get_param: OVNNeutronSyncMode}
             neutron::plugins::ovn::ovn_l3_mode: true
             neutron::plugins::ovn::vif_type: {get_param: OVNVifType}
diff --git a/puppet/services/ovn-dbs.yaml b/puppet/services/ovn-dbs.yaml
new file mode 100644 (file)
index 0000000..302628d
--- /dev/null
@@ -0,0 +1,40 @@
+heat_template_version: 2016-04-08
+
+description: >
+  OVN databases configured with puppet
+
+parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  OVNNorthboundServerPort:
+    description: Port of the OVN Northbound DB server
+    type: number
+    default: 6641
+  OVNSouthboundServerPort:
+    description: Port of the OVN Southbound DB server
+    type: number
+    default: 6642
+
+outputs:
+  role_data:
+    description: Role data for the OVN northd service
+    value:
+      service_name: ovn_dbs
+      config_settings:
+          ovn::northbound::port: {get_param: OVNNorthboundServerPort}
+          ovn::southbound::port: {get_param: OVNSouthboundServerPort}
+          ovn::northd::dbs_listen_ip: {get_param: [ServiceNetMap, OvnDbsNetwork]}
+      step_config: |
+        include ::tripleo::profile::base::neutron::ovn_northd
index 81ddf9c..e96bd78 100644 (file)
@@ -97,6 +97,7 @@
     - OS::TripleO::Services::BarbicanApi
     - OS::TripleO::Services::PankoApi
     - OS::TripleO::Services::Zaqar
+    - OS::TripleO::Services::OVNDBs
 
 - name: Compute
   CountDefault: 1