1 heat_template_version: 2015-04-30
4 Software Config to drive os-net-config to configure multiple interfaces
5 for the {{ role }} role.
10 description: IP address/subnet on the ctlplane network
14 description: IP address/subnet on the external network
18 description: IP address/subnet on the internal API network
22 description: IP address/subnet on the storage network
26 description: IP address/subnet on the storage mgmt network
30 description: IP address/subnet on the tenant network
32 ManagementIpSubnet: # Only populated when including environments/network-management.yaml
34 description: IP address/subnet on the management network
36 ExternalNetworkVlanID:
38 description: Vlan ID for the external network traffic.
40 InternalApiNetworkVlanID:
42 description: Vlan ID for the internal_api network traffic.
46 description: Vlan ID for the storage network traffic.
48 StorageMgmtNetworkVlanID:
50 description: Vlan ID for the storage mgmt network traffic.
54 description: Vlan ID for the tenant network traffic.
56 ManagementNetworkVlanID:
58 description: Vlan ID for the management network traffic.
60 ExternalInterfaceDefaultRoute:
62 description: default route for the external network
64 ControlPlaneSubnetCidr: # Override this via parameter_defaults
66 description: The subnet CIDR of the control plane network.
68 ControlPlaneDefaultRoute: # Override this via parameter_defaults
69 description: The default route of the control plane network.
71 DnsServers: # Override this via parameter_defaults
73 description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
74 type: comma_delimited_list
75 EC2MetadataIp: # Override this via parameter_defaults
76 description: The IP address of the EC2 metadata server.
81 type: OS::Heat::StructuredConfig
83 group: os-apply-config
88 {%- if vlans['private_network'] is number or vlans['storage_network'] is number or vlans['api_network'] is number or vlans['public_network'] is number %}
90 name: {get_input: bridge_name}
94 name: {{ nics[role]['admin_network'] }}
95 # force the MAC address of the bridge to this interface
97 {%- if 'public_network' in enabled_networks and vlans['public_network'] is number %}
100 vlan_id: {get_param: ExternalNetworkVlanID}
103 ip_netmask: {get_param: ExternalIpSubnet}
107 next_hop: {get_param: ExternalInterfaceDefaultRoute}
109 {%- if 'private_network' in enabled_networks and vlans['private_network'] is number %}
112 vlan_id: {get_param: TenantNetworkVlanID}
115 ip_netmask: {get_param: TenantIpSubnet}
117 {%- if 'storage_network' in enabled_networks and vlans['storage_network'] is number %}
120 vlan_id: {get_param: StorageNetworkVlanID}
123 ip_netmask: {get_param: StorageIpSubnet}
125 {%- if 'api_network' in enabled_networks and vlans['api_network'] is number %}
128 vlan_id: {get_param: InternalApiNetworkVlanID}
131 ip_netmask: {get_param: InternalApiIpSubnet}
135 name: {{ nics[role]['admin_network'] }}
138 dns_servers: {get_param: DnsServers}
144 - - {get_param: ControlPlaneIp}
145 - {get_param: ControlPlaneSubnetCidr}
148 ip_netmask: 169.254.169.254/32
149 next_hop: {get_param: EC2MetadataIp}
150 {%- if external_net_af == 6 or role == 'compute' %}
153 next_hop: {get_param: ControlPlaneDefaultRoute}
156 {%- if 'private_network' in enabled_networks and vlans['private_network'] == 'native' %}
157 {%- if ovs_dpdk_bridge == 'br-phy' and role == 'compute' %}
160 name: {{ ovs_dpdk_bridge }}
164 ip_netmask: {get_param: TenantIpSubnet}
168 name: {{ nics[role]['private_network'] }}
169 # force the MAC address of the bridge to this interface
178 name: {{ nics[role]['private_network'] }}
182 ip_netmask: {get_param: TenantIpSubnet}
185 {%- if 'public_network' in enabled_networks and external_net_type == 'interface' and vlans['public_network'] == 'native' %}
188 name: {{ nics[role]['public_network'] }}
189 {%- if role == 'controller' %}
190 dns_servers: {get_param: DnsServers}
195 ip_netmask: {get_param: ExternalIpSubnet}
198 {%- if role == 'controller' %}
201 ip_netmask: 0.0.0.0/0
202 next_hop: {get_param: ExternalInterfaceDefaultRoute}
203 {%- elif 'public_network' in enabled_networks and external_net_type == 'br-ex' and vlans['public_network'] == 'native' %}
206 name: {get_input: bridge_name}
211 name: {{ nics[role]['public_network'] }}
212 # force the MAC address of the bridge to this interface
214 {%- if role == 'controller' %}
215 dns_servers: {get_param: DnsServers}
218 ip_netmask: {get_param: ExternalIpSubnet}
222 ip_netmask: 0.0.0.0/0
223 next_hop: {get_param: ExternalInterfaceDefaultRoute}
226 {%- if 'storage_network' in enabled_networks and vlans['storage_network'] == 'native' %}
229 name: {{ nics[role]['storage_network'] }}
233 ip_netmask: {get_param: StorageIpSubnet}
235 {%- if 'api_network' in enabled_networks and vlans['api_network'] == 'native' %}
238 name: {{ nics[role]['api_network'] }}
242 ip_netmask: {get_param: InternalApiIpSubnet}
247 description: The OsNetConfigImpl resource.
248 value: {get_resource: OsNetConfigImpl}