heat_template_version: rocky description: > Software Config to drive os-net-config with 2 bonded nics on a bridge. parameters: BondInterfaceOvsOptions: default: '' description: The ovs_options or bonding_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb for OVS bonds or like mode=4 for Linux bonds using this option. type: string constraints: - allowed_pattern: ^((?!balance.tcp).)*$ description: The balance-tcp bond mode is known to cause packet loss and should not be used in BondInterfaceOvsOptions. ControlPlaneIp: default: '' description: IP address/subnet on the ctlplane network type: string 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 ControlPlaneDefaultRoute: default: '' description: The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's gateway_ip attribute.) type: string 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 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: # Here for compatability, not used. 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 {%- for network in networks %} {{network.name}}IpSubnet: default: '' description: IP address/subnet on the {{network.name_lower}} network type: string {{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 {{network.name}}InterfaceDefaultRoute: default: '' description: default route for the {{network.name_lower}} network type: string {{network.name}}NetworkVlanID: default: {{network.vlan|default(1)}} description: Vlan ID for the {{network.name_lower}} network traffic. type: number {%- endfor %} 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: ovs_bridge name: bridge_name use_dhcp: true members: - type: ovs_bond name: bond1 use_dhcp: true ovs_options: get_param: BondInterfaceOvsOptions members: - type: interface name: nic1 - type: interface name: nic2 outputs: OS::stack_id: description: The OsNetConfigImpl resource. value: get_resource: OsNetConfigImpl