ff30e794d1
For each role create a network config resource {role.name}}NetworkConfig. Remove per node NetworkConfig resource from puppet/role.role.j2.yaml. NOTE: CI nic config templates was updated with using tools/merge-new-params-nic-config-script.py Depends-On: https://review.opendev.org/753930 Change-Id: Iff4bf742947a5a8170938372a8075519850b6f63
156 lines
6.1 KiB
YAML
156 lines
6.1 KiB
YAML
heat_template_version: rocky
|
|
description: >
|
|
Software Config to drive os-net-config for a simple bridge configured with a
|
|
static IP address for the ctlplane network with optionally the admin and
|
|
public IPs too.
|
|
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
|
|
{{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 %}
|
|
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
|
|
DnsSearchDomains: # Override this via parameter_defaults
|
|
default: []
|
|
description: A list of DNS search domains to be added (in order) to resolv.conf.
|
|
type: comma_delimited_list
|
|
UndercloudLocalMtu: # Override this via parameter_defaults
|
|
default: 1500
|
|
description: MTU to use for the Undercloud local_interface.
|
|
type: number
|
|
constraints:
|
|
- range: { min: 1000, max: 65536 }
|
|
UndercloudNetConfigOverride:
|
|
default: {}
|
|
description: Custom JSON data to be used to override the os-net-config data in this template. This is meant to be used by net_config_override parameter in tripleoclient to provide an easy means to pass in custom net configs for the Undercloud.
|
|
type: json
|
|
DeployedServerPortMap:
|
|
default: {}
|
|
type: json
|
|
NeutronPublicInterface:
|
|
default: nic1
|
|
description: Which interface to add to the NeutronPhysicalBridge.
|
|
type: string
|
|
|
|
conditions:
|
|
undercloud_net_config_override:
|
|
not:
|
|
equals: [{get_param: UndercloudNetConfigOverride}, {}]
|
|
control_virtual_ip_unset: {equals : [{get_param: [DeployedServerPortMap, 'control_virtual_ip', fixed_ips, 0, ip_address]}, '']}
|
|
public_virtual_ip_unset: {equals : [{get_param: [DeployedServerPortMap, 'public_virtual_ip', fixed_ips, 0, ip_address]}, '']}
|
|
control_virtual_ip_is_ipv6: {contains: [':', {get_param: [DeployedServerPortMap, 'control_virtual_ip', fixed_ips, 0, ip_address]}]}
|
|
public_virtual_ip_is_ipv6: {contains: [':', {get_param: [DeployedServerPortMap, 'public_virtual_ip', fixed_ips, 0, ip_address]}]}
|
|
|
|
resources:
|
|
OsNetConfigImpl:
|
|
type: OS::Heat::Value
|
|
properties:
|
|
value:
|
|
if:
|
|
- undercloud_net_config_override
|
|
- {get_param: UndercloudNetConfigOverride}
|
|
- network_config:
|
|
- type: ovs_bridge
|
|
name: br-ctlplane
|
|
use_dhcp: false
|
|
dns_servers:
|
|
get_param: DnsServers
|
|
domain:
|
|
get_param: DnsSearchDomains
|
|
ovs_extra:
|
|
- "br-set-external-id br-ctlplane bridge-id br-ctlplane"
|
|
addresses:
|
|
- ip_netmask:
|
|
list_join:
|
|
- /
|
|
- - get_param: ControlPlaneIp
|
|
- get_param: ControlPlaneSubnetCidr
|
|
-
|
|
if:
|
|
- control_virtual_ip_unset
|
|
- {}
|
|
- ip_netmask:
|
|
list_join:
|
|
- /
|
|
- - {get_param: [DeployedServerPortMap, 'control_virtual_ip', fixed_ips, 0, ip_address]}
|
|
- {if: [control_virtual_ip_is_ipv6, '128', '32']}
|
|
-
|
|
if:
|
|
- public_virtual_ip_unset
|
|
- {}
|
|
- ip_netmask:
|
|
list_join:
|
|
- /
|
|
- - {get_param: [DeployedServerPortMap, 'public_virtual_ip', fixed_ips, 0, ip_address]}
|
|
- {if: [public_virtual_ip_is_ipv6, '128', '32']}
|
|
routes: {get_param: ControlPlaneStaticRoutes}
|
|
members:
|
|
- type: interface
|
|
name: {get_param: NeutronPublicInterface}
|
|
# force the MAC address of the bridge to this interface
|
|
primary: true
|
|
mtu: {get_param: UndercloudLocalMtu}
|
|
outputs:
|
|
config:
|
|
description: The OsNetConfigImpl resource.
|
|
value:
|
|
get_attr: [OsNetConfigImpl, value]
|