diff --git a/manifests/controller.pp b/manifests/controller.pp index b3e86ed..52fa826 100644 --- a/manifests/controller.pp +++ b/manifests/controller.pp @@ -55,10 +55,31 @@ # The next is an array of arrays, that can be used to add call-out links to the dashboard for other apps. # There is no specific requirement for these apps to be for monitoring, that's just the defacto purpose. # Each app is defined in two parts, the display name, and the URI +# +# [ovs_enable_tunneling] +# Enable/disable the Quantum OVS GRE tunneling networking mode. +# Optional. Defaults to true. +# # [metadata_shared_secret] # Shared secret used by nova and quantum to authenticate metadata. # (optional) Defaults to false. # +# [physical_network] +# Unique name of the physical network used by the Quantum OVS Agent. +# All physical networks listed are available for flat and VLAN +# provider network creation. +# +# [tenant_network_type] +# Type of network to allocate for tenant networks +# Optional. Defualts to 'gre'. +# +# [network_vlan_ranges] +# Comma-separated list of [::] +# tuples enumerating ranges of VLAN IDs on named physical networks +# that are available for allocation. Only applicable when tenant_network_type +# parameter is set to 'vlan'. +# Optional. Defaults to 'physnet1: +# # [firewall_driver] # Driver used to implement firewall rules. # (optional) Defaults to 'quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver'. @@ -187,6 +208,11 @@ class openstack::controller ( $cinder_bind_address = '0.0.0.0', # Quantum $quantum = true, + $physical_network = 'default', + $tenant_network_type = 'gre', + $ovs_enable_tunneling = true, + $ovs_local_ip = false, + $network_vlan_ranges = 'physnet1:1000:2000', $bridge_interface = undef, $external_bridge_name = 'br-ex', $enable_ovs_agent = true, @@ -199,7 +225,6 @@ class openstack::controller ( $quantum_db_name = 'quantum', $quantum_auth_url = 'http://127.0.0.1:35357/v2.0', $enable_quantum_server = true, - $ovs_local_ip = false, # swift $swift = false, $swift_public_address = false, @@ -399,9 +424,12 @@ class openstack::controller ( rabbit_password => $rabbit_password, rabbit_virtual_host => $rabbit_virtual_host, # Quantum OVS + tenant_network_type => $tenant_network_type, + network_vlan_ranges => $network_vlan_ranges, + ovs_enable_tunneling => $ovs_enable_tunneling, ovs_local_ip => $ovs_local_ip_real, bridge_uplinks => ["${external_bridge_name}:${bridge_interface}"], - bridge_mappings => ["default:${external_bridge_name}"], + bridge_mappings => ["${physical_network}:${external_bridge_name}"], enable_ovs_agent => $enable_ovs_agent, firewall_driver => $firewall_driver, # Database diff --git a/manifests/quantum.pp b/manifests/quantum.pp index 6079a05..b0ef5fe 100644 --- a/manifests/quantum.pp +++ b/manifests/quantum.pp @@ -74,6 +74,16 @@ # Whether ovs tunnels should be enabled. # (optional) Defaults to true. # +# [tenant_network_type] +# Type of network to allocate for tenant networks +# Optional. Defualts to 'gre'. +# +# [network_vlan_ranges] +# Comma-separated list of [::] +# tuples enumerating ranges of VLAN IDs on named physical networks +# that are available for allocation. +# Optional. Defaults to 'physnet1:1000:2000'. +# # [firewall_driver] # Firewall driver to use. # (optional) Defaults to undef. @@ -153,6 +163,8 @@ class openstack::quantum ( $enable_metadata_agent = false, $enable_ovs_agent = false, # OVS settings + $tenant_network_type = 'gre', + $network_vlan_ranges = 'physnet1:1000:2000', $ovs_local_ip = false, $ovs_enable_tunneling = true, $bridge_uplinks = [], @@ -212,7 +224,8 @@ class openstack::quantum ( class { 'quantum::plugins::ovs': sql_connection => $sql_connection, sql_idle_timeout => $sql_idle_timeout, - tenant_network_type => 'gre', + tenant_network_type => $tenant_network_type, + network_vlan_ranges => $network_vlan_ranges, } } diff --git a/spec/classes/openstack_controller_spec.rb b/spec/classes/openstack_controller_spec.rb index 62a795c..c04fe63 100644 --- a/spec/classes/openstack_controller_spec.rb +++ b/spec/classes/openstack_controller_spec.rb @@ -553,6 +553,9 @@ describe 'openstack::controller' do :rabbit_user => 'openstack', :rabbit_password => 'rabbit_pw', :rabbit_virtual_host => '/', + :tenant_network_type => 'gre', + :network_vlan_ranges => 'physnet1:1000:2000', + :ovs_enable_tunneling => true, :ovs_local_ip => '10.0.0.3', :bridge_uplinks => ["br-ex:eth_27"], :bridge_mappings => ["default:br-ex"], diff --git a/spec/classes/openstack_quantum_spec.rb b/spec/classes/openstack_quantum_spec.rb index 5feb982..8a92cbe 100644 --- a/spec/classes/openstack_quantum_spec.rb +++ b/spec/classes/openstack_quantum_spec.rb @@ -44,7 +44,8 @@ describe 'openstack::quantum' do ) should contain_class('quantum::plugins::ovs').with( :sql_connection => "mysql://quantum:bar@127.0.0.1/quantum?charset=utf8", - :tenant_network_type => 'gre' + :tenant_network_type => 'gre', + :network_vlan_ranges => 'physnet1:1000:2000' ) end end