From 607311e02b49c3f27498c4c8c8137c26a99a5800 Mon Sep 17 00:00:00 2001 From: Giulio Fidente Date: Tue, 2 Jun 2015 08:32:55 -0400 Subject: Wire Neutron VLAN ranges param as array to puppet Turns NeutronNetworkVLANRanges into a list and makes it consumable by neutron::plugins::ml2::network_vlan_ranges as an array. Previously usage of vlans was impossible due to puppet-neutron failing to join() network_vlan_ranges. Also fixes wiring of network_vlan_ranges on computes and adds a sample environment file to test use of vlans for tenant networks. Change-Id: I8725cdb9591dd8d0b7125fdacbefdc9138703266 --- compute.yaml | 2 +- controller.yaml | 2 +- environments/puppet-tenant-vlan.yaml | 4 ++++ overcloud-without-mergepy.yaml | 2 +- puppet/compute-puppet.yaml | 13 ++++++++++--- puppet/controller-puppet.yaml | 11 +++++++++-- 6 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 environments/puppet-tenant-vlan.yaml diff --git a/compute.yaml b/compute.yaml index 05399531..f434c277 100644 --- a/compute.yaml +++ b/compute.yaml @@ -132,7 +132,7 @@ parameters: The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the Neutron documentation for permitted values. Defaults to permitting any VLAN on the 'datacentre' physical network (See NeutronBridgeMappings). - type: string + type: comma_delimited_list NeutronPassword: default: unset description: The password for the neutron service account, used by neutron agents. diff --git a/controller.yaml b/controller.yaml index 8c1b93d2..82cff3f6 100644 --- a/controller.yaml +++ b/controller.yaml @@ -283,7 +283,7 @@ parameters: The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the Neutron documentation for permitted values. Defaults to permitting any VLAN on the 'datacentre' physical network (See NeutronBridgeMappings). - type: string + type: comma_delimited_list NeutronPassword: default: unset description: The password for the neutron service and db account, used by neutron agents. diff --git a/environments/puppet-tenant-vlan.yaml b/environments/puppet-tenant-vlan.yaml new file mode 100644 index 00000000..0df63caf --- /dev/null +++ b/environments/puppet-tenant-vlan.yaml @@ -0,0 +1,4 @@ +parameters: + NeutronNetworkType: vlan + NeutronEnableTunnelling: false + NeutronNetworkVLANRanges: datacentre:1:1000 \ No newline at end of file diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml index 4b2e0b90..bf9c03df 100644 --- a/overcloud-without-mergepy.yaml +++ b/overcloud-without-mergepy.yaml @@ -467,7 +467,7 @@ parameters: The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the Neutron documentation for permitted values. Defaults to permitting any VLAN on the 'datacentre' physical network (See NeutronBridgeMappings). - type: string + type: comma_delimited_list NovaComputeDriver: type: string default: libvirt.LibvirtDriver diff --git a/puppet/compute-puppet.yaml b/puppet/compute-puppet.yaml index d2cca8fb..de888c7f 100644 --- a/puppet/compute-puppet.yaml +++ b/puppet/compute-puppet.yaml @@ -132,7 +132,7 @@ parameters: The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the Neutron documentation for permitted values. Defaults to permitting any VLAN on the 'datacentre' physical network (See NeutronBridgeMappings). - type: string + type: comma_delimited_list NeutronPassword: default: unset description: The password for the neutron service account, used by neutron agents. @@ -369,7 +369,7 @@ resources: neutron_tenant_network_type: {get_input: neutron_tenant_network_type} neutron_tunnel_types: {get_input: neutron_tunnel_types} - neutron::network_vlan_ranges: {get_input: neutron_network_vlan_ranges} + neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges} neutron_bridge_mappings: {get_input: neutron_bridge_mappings} neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling} neutron_physical_bridge: {get_input: neutron_physical_bridge} @@ -424,7 +424,14 @@ resources: neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronLocalIp]}]} neutron_tenant_network_type: {get_param: NeutronNetworkType} neutron_tunnel_types: {get_param: NeutronTunnelTypes} - neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges} + neutron_network_vlan_ranges: + str_replace: + template: "['RANGES']" + params: + RANGES: + list_join: + - "','" + - {get_param: NeutronNetworkVLANRanges} neutron_bridge_mappings: {get_param: NeutronBridgeMappings} neutron_enable_tunneling: {get_param: NeutronEnableTunnelling} neutron_physical_bridge: {get_param: NeutronPhysicalBridge} diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml index 2160bfa2..e3363156 100644 --- a/puppet/controller-puppet.yaml +++ b/puppet/controller-puppet.yaml @@ -287,7 +287,7 @@ parameters: The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the Neutron documentation for permitted values. Defaults to permitting any VLAN on the 'datacentre' physical network (See NeutronBridgeMappings). - type: string + type: comma_delimited_list NeutronPassword: default: unset description: The password for the neutron service and db account, used by neutron agents. @@ -629,7 +629,14 @@ resources: neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers} neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover} neutron_l3_ha: {get_param: NeutronL3HA} - neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges} + neutron_network_vlan_ranges: + str_replace: + template: "['RANGES']" + params: + RANGES: + list_join: + - "','" + - {get_param: NeutronNetworkVLANRanges} neutron_bridge_mappings: {get_param: NeutronBridgeMappings} neutron_public_interface: {get_param: NeutronPublicInterface} neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice} -- cgit 1.2.3-korg