+#!/bin/bash
+if [[ $nics_cfg == *_private* ]]; then
+ private_net=$( cat << END
+
+ -
+ # Create a bridge which can also be used for VLAN-mode bridge mapping
+ type: ovs_bridge
+ name: br-tenant
+ use_dhcp: false
+ addresses:
+ -
+ ip_netmask: {get_param: TenantIpSubnet}
+ members:
+ -
+ type: interface
+ name: nic2
+ use_dhcp: false
+ # force the MAC address of the bridge to this interface
+ primary: true
+END
+)
+fi
+
+if [[ $nics_cfg == *_storage* ]]; then
+ storage_net=$( cat << END
+ -
+ type: interface
+ name: nic4
+ use_dhcp: false
+ addresses:
+ -
+ ip_netmask: {get_param: StorageIpSubnet}
+END
+)
+fi
+
+if [[ $nics_cfg == *_br-ex* ]]; then
+ br_ex=$( cat << END
+
+ members:
+ -
+ type: interface
+ name: nic3
+ # force the MAC address of the bridge to this interface
+ primary: true
+
+END
+)
+ nic3=$( cat << END
+
+ -
+ type: ovs_bridge
+ name: {get_input: bridge_name}
+END
+)
+else
+ nic3=$( cat << END
+
+ -
+ type: interface
+ name: nic3
+
+END
+)
+fi
+
+if [[ $nics_cfg == *_no-public-ip* ]]; then
+ if [[ $nics_cfg == *_br-ex* ]]; then
+ nic3+=$( cat << END
+
+ use_dhcp: false
+END
+)
+ else
+ nic3=""
+ fi
+else
+ nic3+=$( cat << END
+
+ use_dhcp: false
+ addresses:
+ -
+ ip_netmask: {get_param: ExternalIpSubnet}
+ routes:
+ -
+ ip_netmask: 0.0.0.0/0
+ next_hop: {get_param: ExternalInterfaceDefaultRoute}
+END
+)
+fi
+
+cat <<END
heat_template_version: 2015-04-30
description: >
Software Config to drive os-net-config to configure multiple interfaces
- for the controller role.
+ for the compute role.
parameters:
ControlPlaneIp:
default: ''
description: IP address/subnet on the storage mgmt network
type: string
+ StorageMgmtNetworkVlanID:
+ default: 40
+ description: Vlan ID for the storage mgmt network traffic.
+ type: number
TenantIpSubnet:
default: ''
description: IP address/subnet on the tenant network
type: string
+ ManagementIpSubnet: # Only populated when including environments/network-management.yaml
+ default: ''
+ description: IP address/subnet on the management network
+ type: string
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
default: 30
description: Vlan ID for the storage network traffic.
type: number
- StorageMgmtNetworkVlanID:
- default: 40
- description: Vlan ID for the storage mgmt network traffic.
- type: number
TenantNetworkVlanID:
default: 50
description: Vlan ID for the tenant network traffic.
type: number
+ ManagementNetworkVlanID:
+ default: 60
+ description: Vlan ID for the management network traffic.
+ type: number
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
description: default route for the external network
description: The subnet CIDR of the control plane network.
type: string
ControlPlaneDefaultRoute: # Override this via parameter_defaults
- description: The subnet CIDR of the control plane network.
+ description: The default route of the control plane network.
type: string
DnsServers: # Override this via parameter_defaults
default: []
description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
- type: json
+ type: comma_delimited_list
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
- -
- type: ovs_bridge
- name: {get_input: bridge_name}
- use_dhcp: false
- addresses:
- -
- ip_netmask: {get_param: ExternalIpSubnet}
- routes:
-
- ip_netmask: 0.0.0.0/0
- next_hop: {get_param: ExternalInterfaceDefaultRoute}
- members:
- -
- type: interface
- name: nic3
- # force the MAC address of the bridge to this interface
- primary: true
- -
- type: interface
- name: nic4
- use_dhcp: false
- addresses:
- -
- ip_netmask: {get_param: StorageIpSubnet}
-
+ default: true
+ next_hop: {get_param: ControlPlaneDefaultRoute}$private_net$nic3$br_ex
+$storage_net
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
+END