Merge "Addition of Nuage as mechanism driver for ML2"
authorJenkins <jenkins@review.openstack.org>
Wed, 9 Aug 2017 15:11:25 +0000 (15:11 +0000)
committerGerrit Code Review <review@openstack.org>
Wed, 9 Aug 2017 15:11:25 +0000 (15:11 +0000)
environments/neutron-nuage-config.yaml
environments/nova-nuage-config.yaml
overcloud-resource-registry-puppet.j2.yaml
puppet/services/neutron-base.yaml
puppet/services/neutron-plugin-ml2-nuage.yaml [new file with mode: 0644]
puppet/services/neutron-plugin-ml2.yaml

index 601554a..ce64311 100644 (file)
@@ -1,13 +1,13 @@
 # A Heat environment file which can be used to enable a
 # a Neutron Nuage backend on the controller, configured via puppet
 resource_registry:
+  OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
   OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
   OS::TripleO::Services::NeutronMetadataAgent: OS::Heat::None
   OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
   OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
   # Override the NeutronCorePlugin to use Nuage
-  OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginNuage
-  OS::TripleO::Services::ComputeNeutronCorePlugin: ../puppet/services/neutron-compute-plugin-nuage.yaml
+  OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginML2Nuage
 
 parameter_defaults:
   NeutronNuageNetPartitionName: 'default_name'
@@ -18,9 +18,18 @@ parameter_defaults:
   NeutronNuageBaseURIVersion: 'default_uri_version'
   NeutronNuageCMSId: ''
   UseForwardedFor: true
-  NeutronCorePlugin: 'nuage_neutron.plugins.nuage.plugin.NuagePlugin'
-  NeutronEnableDHCPAgent: false
-  NeutronServicePlugins: []
-  NovaOVSBridge: 'alubr0'
-  controllerExtraConfig:
+  NeutronServicePlugins: ''
+  NeutronDBSyncExtraParams: '--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini'
+  NeutronTypeDrivers: ''
+  NeutronNetworkType: ''
+  NeutronMechanismDrivers: ''
+  NeutronPluginExtensions: ''
+  NeutronFlatNetworks: ''
+  NeutronTunnelIdRanges: ''
+  NeutronNetworkVLANRanges: ''
+  NeutronVniRanges: ''
+  NovaOVSBridge: 'default_bridge'
+  NeutronMetadataProxySharedSecret: 'default'
+  InstanceNameTemplate: 'inst-%08x'
+  ControllerExtraConfig:
     neutron::api_extensions_path: '/usr/lib/python2.7/site-packages/neutron/plugins/nuage/'
index 56c64d1..5e75ed9 100644 (file)
@@ -2,7 +2,13 @@
 # Nuage backend on the compute, configured via puppet
 resource_registry:
   OS::TripleO::ComputeExtraConfigPre: ../puppet/extraconfig/pre_deploy/compute/nova-nuage.yaml
+  OS::TripleO::Services::ComputeNeutronCorePlugin: ../puppet/services/neutron-compute-plugin-nuage.yaml
 
 parameter_defaults:
   NuageActiveController: '0.0.0.0'
   NuageStandbyController: '0.0.0.0'
+  NovaOVSBridge: 'default_bridge'
+  NovaComputeLibvirtType: 'default_type'
+  NovaIPv6: False
+  NuageMetadataProxySharedSecret: 'default'
+  NuageNovaApiEndpoint: 'default_endpoint'
index 0d3b875..0b4b4fe 100644 (file)
@@ -154,6 +154,7 @@ resource_registry:
   OS::TripleO::Services::NeutronCorePluginML2OVN: puppet/services/neutron-plugin-ml2-ovn.yaml
   OS::TripleO::Services::NeutronCorePluginPlumgrid: puppet/services/neutron-plugin-plumgrid.yaml
   OS::TripleO::Services::NeutronCorePluginNuage: puppet/services/neutron-plugin-nuage.yaml
+  OS::TripleO::Services::NeutronCorePluginML2Nuage: puppet/services/neutron-plugin-ml2-nuage.yaml
   OS::TripleO::Services::NeutronCorePluginNSX: puppet/services/neutron-plugin-nsx.yaml
   OS::TripleO::Services::OVNDBs: OS::Heat::None
   OS::TripleO::Services::OVNController: OS::Heat::None
index b955689..b698004 100644 (file)
@@ -69,6 +69,12 @@ parameters:
         networks, neutron uses this value without modification. For overlay
         networks such as VXLAN, neutron automatically subtracts the overlay
         protocol overhead from this value.
+  NeutronDBSyncExtraParams:
+    default: ''
+    description: |
+        String of extra command line parameters to append to the neutron-db-manage
+        upgrade head command.
+    type: string
   ServiceData:
     default: {}
     description: Dictionary packing service data
@@ -134,6 +140,7 @@ outputs:
             neutron::db::database_max_retries: -1
             neutron::db::sync::db_sync_timeout: {get_param: DatabaseSyncTimeout}
             neutron::global_physnet_mtu: {get_param: NeutronGlobalPhysnetMtu}
+            neutron::db::sync::extra_params: {get_param: NeutronDBSyncExtraParams}
           - if:
             - dhcp_agents_zero
             - {}
diff --git a/puppet/services/neutron-plugin-ml2-nuage.yaml b/puppet/services/neutron-plugin-ml2-nuage.yaml
new file mode 100644 (file)
index 0000000..a7dc2e8
--- /dev/null
@@ -0,0 +1,99 @@
+heat_template_version: pike
+
+description: >
+  OpenStack Neutron ML2/Nuage plugin configured with Puppet
+
+parameters:
+  ServiceData:
+    default: {}
+    description: Dictionary packing service data
+    type: json
+  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
+  RoleName:
+    default: ''
+    description: Role name on which the service is applied
+    type: string
+  RoleParameters:
+    default: {}
+    description: Parameters specific to the role
+    type: json
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  # Config specific parameters, to be provided via parameter_defaults
+  NeutronNuageNetPartitionName:
+    description: Specifies the title that you will see on the VSD
+    type: string
+    default: 'default_name'
+
+  NeutronNuageVSDIp:
+    description: IP address and port of the Virtual Services Directory
+    type: string
+
+  NeutronNuageVSDUsername:
+    description: Username to be used to log into VSD
+    type: string
+
+  NeutronNuageVSDPassword:
+    description: Password to be used to log into VSD
+    type: string
+
+  NeutronNuageVSDOrganization:
+    description: Organization parameter required to log into VSD
+    type: string
+    default: 'organization'
+
+  NeutronNuageBaseURIVersion:
+    description: URI version to be used based on the VSD release
+    type: string
+    default: 'default_uri_version'
+
+  NeutronNuageCMSId:
+    description: Cloud Management System ID (CMS ID) to distinguish between OS instances on the same VSD
+    type: string
+
+  UseForwardedFor:
+    description: Treat X-Forwarded-For as the canonical remote address. Only enable this if you have a sanitizing proxy.
+    type: boolean
+    default: false
+
+resources:
+
+  NeutronML2Base:
+    type: ./neutron-plugin-ml2.yaml
+    properties:
+      ServiceData: {get_param: ServiceData}
+      ServiceNetMap: {get_param: ServiceNetMap}
+      DefaultPasswords: {get_param: DefaultPasswords}
+      EndpointMap: {get_param: EndpointMap}
+      RoleName: {get_param: RoleName}
+      RoleParameters: {get_param: RoleParameters}
+
+outputs:
+  role_data:
+    description: Role data for the Neutron ML2/Nuage plugin
+    value:
+      service_name: neutron_plugin_ml2_nuage
+      config_settings:
+        map_merge:
+          - get_attr: [NeutronML2Base, role_data, config_settings]
+          - neutron::plugins::ml2::nuage::nuage_net_partition_name: {get_param: NeutronNuageNetPartitionName}
+            neutron::plugins::ml2::nuage::nuage_vsd_ip: {get_param: NeutronNuageVSDIp}
+            neutron::plugins::ml2::nuage::nuage_vsd_username: {get_param: NeutronNuageVSDUsername}
+            neutron::plugins::ml2::nuage::nuage_vsd_password: {get_param: NeutronNuageVSDPassword}
+            neutron::plugins::ml2::nuage::nuage_vsd_organization: {get_param: NeutronNuageVSDOrganization}
+            neutron::plugins::ml2::nuage::nuage_base_uri_version: {get_param: NeutronNuageBaseURIVersion}
+            neutron::plugins::ml2::nuage::nuage_cms_id: {get_param: NeutronNuageCMSId}
+            nova::api::use_forwarded_for: {get_param: UseForwardedFor}
+      step_config: |
+        include tripleo::profile::base::neutron::plugins::ml2
index dd757b5..bc91374 100644 (file)
@@ -72,6 +72,10 @@ parameters:
     default: 'vxlan'
     description: The tenant network type for Neutron.
     type: comma_delimited_list
+  NeutronFirewallDriver:
+    description: Firewall driver for realizing neutron security group function
+    type: string
+    default: 'openvswitch'
 resources:
 
   NeutronBase:
@@ -100,6 +104,7 @@ outputs:
             neutron::plugins::ml2::tunnel_id_ranges: {get_param: NeutronTunnelIdRanges}
             neutron::plugins::ml2::vni_ranges: {get_param: NeutronVniRanges}
             neutron::plugins::ml2::tenant_network_types: {get_param: NeutronNetworkType}
+            neutron::plugins::ml2::firewall_driver: {get_param: NeutronFirewallDriver}
 
       step_config: |
         include ::tripleo::profile::base::neutron::plugins::ml2