aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Stransky <jistr@redhat.com>2015-08-14 15:30:36 +0200
committerJiri Stransky <jistr@redhat.com>2015-09-16 14:32:48 +0200
commite78e1c8d9b5a7ebf327987b22091bff3ed42d1c1 (patch)
tree69128005a644243145d14bcc3c57645edb7d5cea
parentf84d4e45c01cb69c4ecc8032f76f2142bfbb76e0 (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.yaml17
-rw-r--r--puppet/controller-puppet.yaml1
-rw-r--r--puppet/extraconfig/pre_deploy/controller/neutron-ml2-bigswitch.yaml73
-rw-r--r--puppet/manifests/overcloud_controller.pp10
-rw-r--r--puppet/manifests/overcloud_controller_pacemaker.pp10
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 0000000..69c9132
--- /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 f47463a..eb19b36 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 0000000..bf06d25
--- /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 b98c3a4..fdb16ea 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 862c7bd..4e70c86 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,