aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 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 3a311655..e4a179d6 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -618,6 +618,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,