diff options
author | Jiri Stransky <jistr@redhat.com> | 2015-08-14 15:30:36 +0200 |
---|---|---|
committer | Jiri Stransky <jistr@redhat.com> | 2015-09-16 14:32:48 +0200 |
commit | e78e1c8d9b5a7ebf327987b22091bff3ed42d1c1 (patch) | |
tree | 69128005a644243145d14bcc3c57645edb7d5cea | |
parent | f84d4e45c01cb69c4ecc8032f76f2142bfbb76e0 (diff) |
Big Switch Neutron ML2 plugin integration
Add support for Big Switch Neutron ML2 plugin. Makes sure that the
package is present and sets up the [restproxy] section in ml2_conf.ini.
This also adds support for setting the ovs_use_veth option in
l3_agent.ini. There is no support for this in puppet-neutron l3 class
and it probably doesn't make sense adding it there, because this setting
isn't relevant for all l3 agent drivers, it's specific to
OVSInterfaceDriver. The ovs_use_veth option is also added to
dhcp_agent.ini.
Change-Id: I99635e25b2099dacce68154fe14693d6f06ac19f
-rw-r--r-- | environments/neutron-ml2-bigswitch.yaml | 17 | ||||
-rw-r--r-- | puppet/controller-puppet.yaml | 1 | ||||
-rw-r--r-- | puppet/extraconfig/pre_deploy/controller/neutron-ml2-bigswitch.yaml | 73 | ||||
-rw-r--r-- | puppet/manifests/overcloud_controller.pp | 10 | ||||
-rw-r--r-- | puppet/manifests/overcloud_controller_pacemaker.pp | 10 |
5 files changed, 111 insertions, 0 deletions
diff --git a/environments/neutron-ml2-bigswitch.yaml b/environments/neutron-ml2-bigswitch.yaml new file mode 100644 index 00000000..69c91326 --- /dev/null +++ b/environments/neutron-ml2-bigswitch.yaml @@ -0,0 +1,17 @@ +# A Heat environment file which can be used to enable Big Switch +# extensions, configured via puppet +resource_registry: + OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/neutron-ml2-bigswitch.yaml + +parameter_defaults: + # Required to fill in: + NeutronBigswitchRestproxyServers: + NeutronBigswitchRestproxyServerAuth: + + # Optional: + # NeutronBigswitchRestproxyAutoSyncOnFailure: + # NeutronBigswitchRestproxyConsistencyInterval: + # NeutronBigswitchRestproxyNeutronId: + # NeutronBigswitchRestproxyServerSsl: + # NeutronBigswitchRestproxySslCertDirectory: + diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml index f47463ab..eb19b36d 100644 --- a/puppet/controller-puppet.yaml +++ b/puppet/controller-puppet.yaml @@ -910,6 +910,7 @@ resources: - '"%{::osfamily}"' - common - cinder_netapp_data # Optionally provided by ControllerExtraConfigPre + - neutron_bigswitch_data # Optionally provided by ControllerExtraConfigPre - neutron_cisco_data # Optionally provided by ControllerExtraConfigPre datafiles: controller_extraconfig: diff --git a/puppet/extraconfig/pre_deploy/controller/neutron-ml2-bigswitch.yaml b/puppet/extraconfig/pre_deploy/controller/neutron-ml2-bigswitch.yaml new file mode 100644 index 00000000..bf06d25d --- /dev/null +++ b/puppet/extraconfig/pre_deploy/controller/neutron-ml2-bigswitch.yaml @@ -0,0 +1,73 @@ +heat_template_version: 2015-04-30 + +description: Configure hieradata for Neutron Big Switch configuration + +parameters: + server: + description: ID of the controller node to apply this config to + type: string + NeutronBigswitchRestproxyServers: + description: 'Big Switch controllers ("IP:port,IP:port")' + type: string + NeutronBigswitchRestproxyServerAuth: + description: 'Big Switch controller credentials ("username:password")' + type: string + NeutronBigswitchRestproxyAutoSyncOnFailure: + description: Resynchronize with the new master server on Big Switch failover. + type: boolean + default: true + NeutronBigswitchRestproxyConsistencyInterval: + description: Keepalive message interval (from Neutron to Big Switch controller). + type: number + default: 60 + NeutronBigswitchRestproxyNeutronId: + description: Unique identifier of the Neutron instance for the Big Switch controller. + type: string + default: 'neutron' + NeutronBigswitchRestproxyServerSsl: + description: Whether Neutron should use SSL to talk to the Big Switch controllers. + type: boolean + default: true + NeutronBigswitchRestproxySslCertDirectory: + description: Directory where Big Switch controller certificate will be stored. + type: string + default: '/var/lib/neutron' + + +resources: + NeutronBigswitchConfig: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + hiera: + datafiles: + neutron_bigswitch_data: + mapped_data: + neutron_enable_bigswitch_ml2: true + neutron::plugins::ml2::bigswitch::restproxy::servers: {get_input: restproxy_servers} + neutron::plugins::ml2::bigswitch::restproxy::server_auth: {get_input: restproxy_server_auth} + neutron::plugins::ml2::bigswitch::restproxy::auto_sync_on_failure: {get_input: restproxy_auto_sync_on_failure} + neutron::plugins::ml2::bigswitch::restproxy::consistency_interval: {get_input: restproxy_consistency_interval} + neutron::plugins::ml2::bigswitch::restproxy::neutron_id: {get_input: restproxy_neutron_id} + neutron::plugins::ml2::bigswitch::restproxy::server_ssl: {get_input: restproxy_server_ssl} + neutron::plugins::ml2::bigswitch::restproxy::ssl_cert_directory: {get_input: restproxy_ssl_cert_directory} + + NeutronBigswitchDeployment: + type: OS::Heat::StructuredDeployment + properties: + config: {get_resource: NeutronBigswitchConfig} + server: {get_param: server} + input_values: + restproxy_servers: {get_param: NeutronBigswitchRestproxyServers} + restproxy_server_auth: {get_param: NeutronBigswitchRestproxyServerAuth } + restproxy_auto_sync_on_failure: {get_param: NeutronBigswitchRestproxyAutoSyncOnFailure} + restproxy_consistency_interval: {get_param: NeutronBigswitchRestproxyConsistencyInterval} + restproxy_neutron_id: {get_param: NeutronBigswitchRestproxyNeutronId} + restproxy_server_ssl: {get_param: NeutronBigswitchRestproxyServerSsl} + restproxy_ssl_cert_directory: {get_param: NeutronBigswitchRestproxySslCertDirectory} + +outputs: + deploy_stdout: + description: Deployment reference, used to trigger puppet apply on changes + value: {get_attr: [NeutronBigswitchDeployment, deploy_stdout]} diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp index b98c3a40..fdb16ea2 100644 --- a/puppet/manifests/overcloud_controller.pp +++ b/puppet/manifests/overcloud_controller.pp @@ -254,6 +254,16 @@ if hiera('step') >= 3 { include ::neutron::plugins::ml2::cisco::type_nexus_vxlan } + if hiera('neutron_enable_bigswitch_ml2', false) { + include neutron::plugins::ml2::bigswitch::restproxy + } + neutron_l3_agent_config { + 'DEFAULT/ovs_use_veth': value => hiera('neutron_ovs_use_veth', false); + } + neutron_dhcp_agent_config { + 'DEFAULT/ovs_use_veth': value => hiera('neutron_ovs_use_veth', false); + } + Service['neutron-server'] -> Service['neutron-dhcp-service'] Service['neutron-server'] -> Service['neutron-l3'] Service['neutron-server'] -> Service['neutron-ovs-agent-service'] diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp index 862c7bdb..4e70c86b 100644 --- a/puppet/manifests/overcloud_controller_pacemaker.pp +++ b/puppet/manifests/overcloud_controller_pacemaker.pp @@ -616,6 +616,16 @@ if hiera('step') >= 3 { include ::neutron::plugins::ml2::cisco::type_nexus_vxlan } + if hiera('neutron_enable_bigswitch_ml2', false) { + include neutron::plugins::ml2::bigswitch::restproxy + } + neutron_l3_agent_config { + 'DEFAULT/ovs_use_veth': value => hiera('neutron_ovs_use_veth', false); + } + neutron_dhcp_agent_config { + 'DEFAULT/ovs_use_veth': value => hiera('neutron_ovs_use_veth', false); + } + include ::cinder class { '::cinder::api': sync_db => $sync_db, |