heat_template_version: rocky description: > Software Config to drive os-net-config for a simple linux bridge. parameters: ControlPlaneIp: default: '' description: IP address/subnet on the ctlplane network type: string {%- for network in networks %} {{network.name}}IpSubnet: default: '' description: IP address/subnet on the {{network.name_lower}} network type: string {{network.name}}InterfaceRoutes: default: [] description: > Routes for the {{network.name_lower}} network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json {{network.name}}Mtu: default: {{network.mtu|default('1500')}} description: The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments in the {{network.name}} network. type: number {%- endfor %} ControlPlaneDefaultRoute: description: The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's gateway_ip attribute.) type: string default: 192.168.24.1 ControlPlaneStaticRoutes: default: [] description: > Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneSubnetCidr: default: '' description: > The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr attribute.) type: string ControlPlaneMtu: default: 1500 description: The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the ctlplane subnet's dns_nameservers attribute will be used. type: comma_delimited_list EC2MetadataIp: default: '' description: The IP address of the EC2 metadata server. (The parameter is automatically resolved from the ctlplane subnet's host_routes attribute.) type: string resources: OsNetConfigImpl: type: OS::Heat::SoftwareConfig properties: group: script config: str_replace: template: get_file: network/scripts/run-os-net-config.sh params: $network_config: network_config: - type: linux_bridge name: bridge_name addresses: - ip_netmask: get_param: ControlPlaneIp members: - type: interface name: interface_name # force the MAC address of the bridge to this interface primary: true routes: - ip_netmask: 0.0.0.0/0 next_hop: get_param: ControlPlaneDefaultRoute default: true - ip_netmask: get_param: EC2MetadataIp next_hop: get_param: ControlPlaneDefaultRoute outputs: OS::stack_id: description: The OsNetConfigImpl resource. value: get_resource: OsNetConfigImpl