Create NetworkConfig per-role in overcloud.yaml

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
This commit is contained in:
Harald Jensås 2020-09-24 05:00:22 +02:00
parent f7e35f9fca
commit ff30e794d1
19 changed files with 694 additions and 783 deletions

View File

@ -1,5 +1,4 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
@ -12,16 +11,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
StorageMgmtIpSubnet: StorageMgmtIpSubnet:
default: '' default: ''
@ -30,21 +27,19 @@ parameters:
StorageMgmtInterfaceRoutes: StorageMgmtInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage_mgmt network traffic. Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMgmtMtu: StorageMgmtMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
StorageMgmt network. in the StorageMgmt network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
StorageNetworkVlanID: StorageNetworkVlanID:
default: 30 default: 30
@ -57,36 +52,37 @@ parameters:
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used. type: comma_delimited_list
DnsSearchDomains:
default: []
description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
@ -101,26 +97,32 @@ resources:
- ip_netmask: - ip_netmask:
list_join: list_join:
- / - /
- - {get_param: ControlPlaneIp} - - get_param: ControlPlaneIp
- {get_param: ControlPlaneSubnetCidr} - get_param: ControlPlaneSubnetCidr
routes: routes:
- default: true - default: true
ip_netmask: 0.0.0.0/0 ip_netmask: 0.0.0.0/0
next_hop: {get_param: ControlPlaneDefaultRoute} next_hop:
get_param: ControlPlaneDefaultRoute
- type: interface - type: interface
name: nic4 name: nic4
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageIpSubnet} - ip_netmask:
get_param: StorageIpSubnet
- type: interface - type: interface
name: nic5 name: nic5
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageMgmtIpSubnet} - ip_netmask:
get_param: StorageMgmtIpSubnet
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -1,5 +1,4 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
@ -12,16 +11,14 @@ parameters:
InternalApiInterfaceRoutes: InternalApiInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the internal_api network traffic. Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
InternalApiMtu: InternalApiMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
InternalApi network. in the InternalApi network.
type: number type: number
StorageIpSubnet: StorageIpSubnet:
default: '' default: ''
@ -30,16 +27,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
StorageMgmtIpSubnet: StorageMgmtIpSubnet:
default: '' default: ''
@ -48,21 +43,19 @@ parameters:
StorageMgmtInterfaceRoutes: StorageMgmtInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage_mgmt network traffic. Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMgmtMtu: StorageMgmtMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
StorageMgmt network. in the StorageMgmt network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
InternalApiNetworkVlanID: InternalApiNetworkVlanID:
default: 20 default: 20
@ -79,44 +72,48 @@ parameters:
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used. type: comma_delimited_list
DnsSearchDomains:
default: []
description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
properties: properties:
value: value:
network_config: [] network_config: []
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -1,5 +1,4 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
@ -12,16 +11,14 @@ parameters:
InternalApiInterfaceRoutes: InternalApiInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the internal_api network traffic. Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
InternalApiMtu: InternalApiMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
InternalApi network. in the InternalApi network.
type: number type: number
StorageIpSubnet: StorageIpSubnet:
default: '' default: ''
@ -30,16 +27,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
TenantIpSubnet: TenantIpSubnet:
default: '' default: ''
@ -48,21 +43,19 @@ parameters:
TenantInterfaceRoutes: TenantInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the tenant network traffic. Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
TenantMtu: TenantMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Tenant network. in the Tenant network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
InternalApiNetworkVlanID: InternalApiNetworkVlanID:
default: 20 default: 20
@ -79,45 +72,41 @@ parameters:
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used.
type: comma_delimited_list type: comma_delimited_list
DnsSearchDomains: # Override this via parameter_defaults DnsSearchDomains: # Override this via parameter_defaults
default: [] default: []
description: A list of DNS search domains to be added (in order) to resolv.conf. description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
ExternalInterfaceDefaultRoute: ExternalInterfaceDefaultRoute:
default: '10.0.0.1' default: 10.0.0.1
description: default route for the external network description: default route for the external network
type: string type: string
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
@ -132,31 +121,37 @@ resources:
- ip_netmask: - ip_netmask:
list_join: list_join:
- / - /
- - {get_param: ControlPlaneIp} - - get_param: ControlPlaneIp
- {get_param: ControlPlaneSubnetCidr} - get_param: ControlPlaneSubnetCidr
routes: routes:
- default: true - default: true
ip_netmask: 0.0.0.0/0 ip_netmask: 0.0.0.0/0
next_hop: {get_param: ControlPlaneDefaultRoute} next_hop:
get_param: ControlPlaneDefaultRoute
- type: interface - type: interface
name: nic3 name: nic3
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: InternalApiIpSubnet} - ip_netmask:
get_param: InternalApiIpSubnet
- type: interface - type: interface
name: nic4 name: nic4
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageIpSubnet} - ip_netmask:
get_param: StorageIpSubnet
- type: ovs_bridge - type: ovs_bridge
name: br-tenant name: br-tenant
dns_servers: {get_param: DnsServers} dns_servers:
domain: {get_param: DnsSearchDomains} get_param: DnsServers
domain:
get_param: DnsSearchDomains
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: TenantIpSubnet} - ip_netmask:
get_param: TenantIpSubnet
members: members:
- type: interface - type: interface
name: nic6 name: nic6
@ -164,18 +159,23 @@ resources:
primary: true primary: true
- type: ovs_bridge - type: ovs_bridge
name: br-ex name: br-ex
dns_servers: {get_param: DnsServers} dns_servers:
get_param: DnsServers
use_dhcp: false use_dhcp: false
routes: routes:
- ip_netmask: ::/0 - ip_netmask: ::/0
next_hop: {get_param: ExternalInterfaceDefaultRoute} next_hop:
get_param: ExternalInterfaceDefaultRoute
members: members:
- type: interface - type: interface
name: nic2 name: nic2
mtu: 1350 mtu: 1350
primary: true primary: true
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -1,5 +1,4 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
@ -12,16 +11,14 @@ parameters:
InternalApiInterfaceRoutes: InternalApiInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the internal_api network traffic. Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
InternalApiMtu: InternalApiMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
InternalApi network. in the InternalApi network.
type: number type: number
StorageIpSubnet: StorageIpSubnet:
default: '' default: ''
@ -30,16 +27,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
TenantIpSubnet: TenantIpSubnet:
default: '' default: ''
@ -48,21 +43,19 @@ parameters:
TenantInterfaceRoutes: TenantInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the tenant network traffic. Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
TenantMtu: TenantMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Tenant network. in the Tenant network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
InternalApiNetworkVlanID: InternalApiNetworkVlanID:
default: 20 default: 20
@ -79,40 +72,37 @@ parameters:
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used.
type: comma_delimited_list type: comma_delimited_list
DnsSearchDomains: # Override this via parameter_defaults DnsSearchDomains: # Override this via parameter_defaults
default: [] default: []
description: A list of DNS search domains to be added (in order) to resolv.conf. description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
@ -127,38 +117,47 @@ resources:
- ip_netmask: - ip_netmask:
list_join: list_join:
- / - /
- - {get_param: ControlPlaneIp} - - get_param: ControlPlaneIp
- {get_param: ControlPlaneSubnetCidr} - get_param: ControlPlaneSubnetCidr
routes: routes:
- default: true - default: true
ip_netmask: 0.0.0.0/0 ip_netmask: 0.0.0.0/0
next_hop: {get_param: ControlPlaneDefaultRoute} next_hop:
get_param: ControlPlaneDefaultRoute
- type: interface - type: interface
name: nic3 name: nic3
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: InternalApiIpSubnet} - ip_netmask:
get_param: InternalApiIpSubnet
- type: interface - type: interface
name: nic4 name: nic4
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageIpSubnet} - ip_netmask:
get_param: StorageIpSubnet
- type: ovs_bridge - type: ovs_bridge
name: br-tenant name: br-tenant
dns_servers: {get_param: DnsServers} dns_servers:
domain: {get_param: DnsSearchDomains} get_param: DnsServers
domain:
get_param: DnsSearchDomains
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: TenantIpSubnet} - ip_netmask:
get_param: TenantIpSubnet
members: members:
- type: interface - type: interface
name: nic6 name: nic6
mtu: 1350 mtu: 1350
primary: true primary: true
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -1,5 +1,4 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
@ -12,10 +11,8 @@ parameters:
ExternalInterfaceRoutes: ExternalInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the external network traffic. Routes for the external network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
InternalApiIpSubnet: InternalApiIpSubnet:
default: '' default: ''
@ -24,16 +21,14 @@ parameters:
InternalApiInterfaceRoutes: InternalApiInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the internal_api network traffic. Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
InternalApiMtu: InternalApiMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
InternalApi network. in the InternalApi network.
type: number type: number
StorageIpSubnet: StorageIpSubnet:
default: '' default: ''
@ -42,16 +37,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
StorageMgmtIpSubnet: StorageMgmtIpSubnet:
default: '' default: ''
@ -60,16 +53,14 @@ parameters:
StorageMgmtInterfaceRoutes: StorageMgmtInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage_mgmt network traffic. Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMgmtMtu: StorageMgmtMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
StorageMgmt network. in the StorageMgmt network.
type: number type: number
TenantIpSubnet: TenantIpSubnet:
default: '' default: ''
@ -78,21 +69,19 @@ parameters:
TenantInterfaceRoutes: TenantInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the tenant network traffic. Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
TenantMtu: TenantMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Tenant network. in the Tenant network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
ExternalNetworkVlanID: ExternalNetworkVlanID:
default: 10 default: 10
@ -115,52 +104,49 @@ parameters:
description: Vlan ID for the tenant network traffic. description: Vlan ID for the tenant network traffic.
type: number type: number
ExternalInterfaceDefaultRoute: ExternalInterfaceDefaultRoute:
default: '10.0.0.1' default: 10.0.0.1
description: default route for the external network description: default route for the external network
type: string type: string
ExternalMtu: ExternalMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
External network. in the External network.
type: number type: number
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used.
type: comma_delimited_list type: comma_delimited_list
DnsSearchDomains: # Override this via parameter_defaults DnsSearchDomains: # Override this via parameter_defaults
default: [] default: []
description: A list of DNS search domains to be added (in order) to resolv.conf. description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
@ -175,23 +161,28 @@ resources:
- ip_netmask: - ip_netmask:
list_join: list_join:
- / - /
- - {get_param: ControlPlaneIp} - - get_param: ControlPlaneIp
- {get_param: ControlPlaneSubnetCidr} - get_param: ControlPlaneSubnetCidr
routes: routes:
- default: true - default: true
ip_netmask: 0.0.0.0/0 ip_netmask: 0.0.0.0/0
next_hop: {get_param: ControlPlaneDefaultRoute} next_hop:
get_param: ControlPlaneDefaultRoute
- type: ovs_bridge - type: ovs_bridge
name: br-ex name: br-ex
dns_servers: {get_param: DnsServers} dns_servers:
domain: {get_param: DnsSearchDomains} get_param: DnsServers
domain:
get_param: DnsSearchDomains
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: ExternalIpSubnet} - ip_netmask:
get_param: ExternalIpSubnet
routes: routes:
- default: true - default: true
ip_netmask: ::/0 ip_netmask: ::/0
next_hop: {get_param: ExternalInterfaceDefaultRoute} next_hop:
get_param: ExternalInterfaceDefaultRoute
members: members:
- type: interface - type: interface
name: nic2 name: nic2
@ -202,32 +193,40 @@ resources:
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: InternalApiIpSubnet} - ip_netmask:
get_param: InternalApiIpSubnet
- type: interface - type: interface
name: nic4 name: nic4
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageIpSubnet} - ip_netmask:
get_param: StorageIpSubnet
- type: interface - type: interface
name: nic5 name: nic5
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageMgmtIpSubnet} - ip_netmask:
get_param: StorageMgmtIpSubnet
- type: ovs_bridge - type: ovs_bridge
name: br-tenant name: br-tenant
dns_servers: {get_param: DnsServers} dns_servers:
get_param: DnsServers
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: TenantIpSubnet} - ip_netmask:
get_param: TenantIpSubnet
members: members:
- type: interface - type: interface
name: nic6 name: nic6
mtu: 1350 mtu: 1350
primary: true primary: true
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -1,5 +1,4 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
@ -12,16 +11,14 @@ parameters:
InternalApiInterfaceRoutes: InternalApiInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the internal_api network traffic. Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
InternalApiMtu: InternalApiMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
InternalApi network. in the InternalApi network.
type: number type: number
StorageIpSubnet: StorageIpSubnet:
default: '' default: ''
@ -30,16 +27,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
StorageMgmtIpSubnet: StorageMgmtIpSubnet:
default: '' default: ''
@ -48,21 +43,19 @@ parameters:
StorageMgmtInterfaceRoutes: StorageMgmtInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage_mgmt network traffic. Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMgmtMtu: StorageMgmtMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
StorageMgmt network. in the StorageMgmt network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
InternalApiNetworkVlanID: InternalApiNetworkVlanID:
default: 20 default: 20
@ -79,44 +72,48 @@ parameters:
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used. type: comma_delimited_list
DnsSearchDomains:
default: []
description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
properties: properties:
value: value:
network_config: [] network_config: []
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -1,5 +1,4 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
@ -12,16 +11,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
StorageMgmtIpSubnet: StorageMgmtIpSubnet:
default: '' default: ''
@ -30,21 +27,19 @@ parameters:
StorageMgmtInterfaceRoutes: StorageMgmtInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage_mgmt network traffic. Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMgmtMtu: StorageMgmtMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
StorageMgmt network. in the StorageMgmt network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
StorageNetworkVlanID: StorageNetworkVlanID:
default: 30 default: 30
@ -57,36 +52,37 @@ parameters:
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used. type: comma_delimited_list
DnsSearchDomains:
default: []
description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
@ -101,25 +97,31 @@ resources:
- ip_netmask: - ip_netmask:
list_join: list_join:
- / - /
- - {get_param: ControlPlaneIp} - - get_param: ControlPlaneIp
- {get_param: ControlPlaneSubnetCidr} - get_param: ControlPlaneSubnetCidr
routes: routes:
- default: true - default: true
next_hop: {get_param: ControlPlaneDefaultRoute} next_hop:
get_param: ControlPlaneDefaultRoute
- type: interface - type: interface
name: nic4 name: nic4
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageIpSubnet} - ip_netmask:
get_param: StorageIpSubnet
- type: interface - type: interface
name: nic5 name: nic5
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageMgmtIpSubnet} - ip_netmask:
get_param: StorageMgmtIpSubnet
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -1,10 +1,25 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
description: IP address/subnet on the ctlplane network description: IP address/subnet on the ctlplane network
type: string type: string
InternalApiIpSubnet:
default: ''
description: IP address/subnet on the internal_api network
type: string
InternalApiInterfaceRoutes:
default: []
description: >
Routes for the internal_api 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
InternalApiMtu:
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 InternalApi network.
type: number
StorageIpSubnet: StorageIpSubnet:
default: '' default: ''
description: IP address/subnet on the storage network description: IP address/subnet on the storage network
@ -12,16 +27,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
StorageMgmtIpSubnet: StorageMgmtIpSubnet:
default: '' default: ''
@ -30,22 +43,24 @@ parameters:
StorageMgmtInterfaceRoutes: StorageMgmtInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage_mgmt network traffic. Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMgmtMtu: StorageMgmtMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
StorageMgmt network. in the StorageMgmt network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
InternalApiNetworkVlanID:
default: 20
description: Vlan ID for the internal_api network traffic.
type: number
StorageNetworkVlanID: StorageNetworkVlanID:
default: 30 default: 30
description: Vlan ID for the storage network traffic. description: Vlan ID for the storage network traffic.
@ -57,44 +72,48 @@ parameters:
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used. type: comma_delimited_list
DnsSearchDomains:
default: []
description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
properties: properties:
value: value:
network_config: [] network_config: []
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -1,5 +1,4 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
@ -12,16 +11,14 @@ parameters:
InternalApiInterfaceRoutes: InternalApiInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the internal_api network traffic. Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
InternalApiMtu: InternalApiMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
InternalApi network. in the InternalApi network.
type: number type: number
StorageIpSubnet: StorageIpSubnet:
default: '' default: ''
@ -30,16 +27,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
TenantIpSubnet: TenantIpSubnet:
default: '' default: ''
@ -48,21 +43,19 @@ parameters:
TenantInterfaceRoutes: TenantInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the tenant network traffic. Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
TenantMtu: TenantMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Tenant network. in the Tenant network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
InternalApiNetworkVlanID: InternalApiNetworkVlanID:
default: 20 default: 20
@ -79,44 +72,41 @@ parameters:
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used.
type: comma_delimited_list type: comma_delimited_list
DnsSearchDomains: # Override this via parameter_defaults DnsSearchDomains: # Override this via parameter_defaults
default: [] default: []
description: A list of DNS search domains to be added (in order) to resolv.conf. description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
ExternalInterfaceDefaultRoute: ExternalInterfaceDefaultRoute:
default: '10.0.0.1' default: 10.0.0.1
description: default route for the external network description: default route for the external network
type: string type: string
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
@ -131,19 +121,23 @@ resources:
- ip_netmask: - ip_netmask:
list_join: list_join:
- / - /
- - {get_param: ControlPlaneIp} - - get_param: ControlPlaneIp
- {get_param: ControlPlaneSubnetCidr} - get_param: ControlPlaneSubnetCidr
routes: routes:
- default: true - default: true
next_hop: {get_param: ControlPlaneDefaultRoute} next_hop:
get_param: ControlPlaneDefaultRoute
- type: ovs_bridge - type: ovs_bridge
name: br-ex name: br-ex
dns_servers: {get_param: DnsServers} dns_servers:
domain: {get_param: DnsSearchDomains} get_param: DnsServers
domain:
get_param: DnsSearchDomains
use_dhcp: false use_dhcp: false
routes: routes:
- ip_netmask: 0.0.0.0/0 - ip_netmask: 0.0.0.0/0
next_hop: {get_param: ExternalInterfaceDefaultRoute} next_hop:
get_param: ExternalInterfaceDefaultRoute
members: members:
- type: interface - type: interface
name: nic2 name: nic2
@ -154,26 +148,33 @@ resources:
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: InternalApiIpSubnet} - ip_netmask:
get_param: InternalApiIpSubnet
- type: interface - type: interface
name: nic4 name: nic4
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageIpSubnet} - ip_netmask:
get_param: StorageIpSubnet
- type: ovs_bridge - type: ovs_bridge
name: br-tenant name: br-tenant
dns_servers: {get_param: DnsServers} dns_servers:
get_param: DnsServers
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: TenantIpSubnet} - ip_netmask:
get_param: TenantIpSubnet
members: members:
- type: interface - type: interface
name: nic6 name: nic6
mtu: 1350 mtu: 1350
primary: true primary: true
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -1,5 +1,4 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
@ -12,16 +11,14 @@ parameters:
InternalApiInterfaceRoutes: InternalApiInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the internal_api network traffic. Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
InternalApiMtu: InternalApiMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
InternalApi network. in the InternalApi network.
type: number type: number
StorageIpSubnet: StorageIpSubnet:
default: '' default: ''
@ -30,16 +27,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
TenantIpSubnet: TenantIpSubnet:
default: '' default: ''
@ -48,21 +43,19 @@ parameters:
TenantInterfaceRoutes: TenantInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the tenant network traffic. Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
TenantMtu: TenantMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Tenant network. in the Tenant network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
InternalApiNetworkVlanID: InternalApiNetworkVlanID:
default: 20 default: 20
@ -79,40 +72,37 @@ parameters:
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used.
type: comma_delimited_list type: comma_delimited_list
DnsSearchDomains: # Override this via parameter_defaults DnsSearchDomains: # Override this via parameter_defaults
default: [] default: []
description: A list of DNS search domains to be added (in order) to resolv.conf. description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
@ -127,37 +117,46 @@ resources:
- ip_netmask: - ip_netmask:
list_join: list_join:
- / - /
- - {get_param: ControlPlaneIp} - - get_param: ControlPlaneIp
- {get_param: ControlPlaneSubnetCidr} - get_param: ControlPlaneSubnetCidr
routes: routes:
- default: true - default: true
next_hop: {get_param: ControlPlaneDefaultRoute} next_hop:
get_param: ControlPlaneDefaultRoute
- type: interface - type: interface
name: nic3 name: nic3
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: InternalApiIpSubnet} - ip_netmask:
get_param: InternalApiIpSubnet
- type: interface - type: interface
name: nic4 name: nic4
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageIpSubnet} - ip_netmask:
get_param: StorageIpSubnet
- type: ovs_bridge - type: ovs_bridge
name: br-tenant name: br-tenant
dns_servers: {get_param: DnsServers} dns_servers:
domain: {get_param: DnsSearchDomains} get_param: DnsServers
domain:
get_param: DnsSearchDomains
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: TenantIpSubnet} - ip_netmask:
get_param: TenantIpSubnet
members: members:
- type: interface - type: interface
name: nic6 name: nic6
mtu: 1350 mtu: 1350
primary: true primary: true
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -1,5 +1,4 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
@ -12,16 +11,14 @@ parameters:
ExternalInterfaceRoutes: ExternalInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the external network traffic. Routes for the external network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ExternalMtu: ExternalMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
External network. in the External network.
type: number type: number
InternalApiIpSubnet: InternalApiIpSubnet:
default: '' default: ''
@ -30,16 +27,14 @@ parameters:
InternalApiInterfaceRoutes: InternalApiInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the internal_api network traffic. Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
InternalApiMtu: InternalApiMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
InternalApi network. in the InternalApi network.
type: number type: number
StorageIpSubnet: StorageIpSubnet:
default: '' default: ''
@ -48,16 +43,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
StorageMgmtIpSubnet: StorageMgmtIpSubnet:
default: '' default: ''
@ -66,16 +59,14 @@ parameters:
StorageMgmtInterfaceRoutes: StorageMgmtInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage_mgmt network traffic. Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMgmtMtu: StorageMgmtMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
StorageMgmt network. in the StorageMgmt network.
type: number type: number
TenantIpSubnet: TenantIpSubnet:
default: '' default: ''
@ -84,21 +75,19 @@ parameters:
TenantInterfaceRoutes: TenantInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the tenant network traffic. Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
TenantMtu: TenantMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Tenant network. in the Tenant network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
ExternalNetworkVlanID: ExternalNetworkVlanID:
default: 10 default: 10
@ -121,46 +110,43 @@ parameters:
description: Vlan ID for the tenant network traffic. description: Vlan ID for the tenant network traffic.
type: number type: number
ExternalInterfaceDefaultRoute: ExternalInterfaceDefaultRoute:
default: '10.0.0.1' default: 10.0.0.1
description: default route for the external network description: default route for the external network
type: string type: string
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used.
type: comma_delimited_list type: comma_delimited_list
DnsSearchDomains: # Override this via parameter_defaults DnsSearchDomains: # Override this via parameter_defaults
default: [] default: []
description: A list of DNS search domains to be added (in order) to resolv.conf. description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
@ -175,18 +161,22 @@ resources:
- ip_netmask: - ip_netmask:
list_join: list_join:
- / - /
- - {get_param: ControlPlaneIp} - - get_param: ControlPlaneIp
- {get_param: ControlPlaneSubnetCidr} - get_param: ControlPlaneSubnetCidr
- type: ovs_bridge - type: ovs_bridge
name: br-ex name: br-ex
dns_servers: {get_param: DnsServers} dns_servers:
domain: {get_param: DnsSearchDomains} get_param: DnsServers
domain:
get_param: DnsSearchDomains
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: ExternalIpSubnet} - ip_netmask:
get_param: ExternalIpSubnet
routes: routes:
- ip_netmask: 0.0.0.0/0 - ip_netmask: 0.0.0.0/0
next_hop: {get_param: ExternalInterfaceDefaultRoute} next_hop:
get_param: ExternalInterfaceDefaultRoute
members: members:
- type: interface - type: interface
name: nic2 name: nic2
@ -197,32 +187,40 @@ resources:
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: InternalApiIpSubnet} - ip_netmask:
get_param: InternalApiIpSubnet
- type: interface - type: interface
name: nic4 name: nic4
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageIpSubnet} - ip_netmask:
get_param: StorageIpSubnet
- type: interface - type: interface
name: nic5 name: nic5
mtu: 1350 mtu: 1350
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: StorageMgmtIpSubnet} - ip_netmask:
get_param: StorageMgmtIpSubnet
- type: ovs_bridge - type: ovs_bridge
name: br-tenant name: br-tenant
dns_servers: {get_param: DnsServers} dns_servers:
get_param: DnsServers
use_dhcp: false use_dhcp: false
addresses: addresses:
- ip_netmask: {get_param: TenantIpSubnet} - ip_netmask:
get_param: TenantIpSubnet
members: members:
- type: interface - type: interface
name: nic6 name: nic6
mtu: 1350 mtu: 1350
primary: true primary: true
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -1,5 +1,4 @@
heat_template_version: rocky heat_template_version: rocky
parameters: parameters:
ControlPlaneIp: ControlPlaneIp:
default: '' default: ''
@ -12,16 +11,14 @@ parameters:
InternalApiInterfaceRoutes: InternalApiInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the internal_api network traffic. Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
InternalApiMtu: InternalApiMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
InternalApi network. in the InternalApi network.
type: number type: number
StorageIpSubnet: StorageIpSubnet:
default: '' default: ''
@ -30,16 +27,14 @@ parameters:
StorageInterfaceRoutes: StorageInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage network traffic. Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMtu: StorageMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
Storage network. in the Storage network.
type: number type: number
StorageMgmtIpSubnet: StorageMgmtIpSubnet:
default: '' default: ''
@ -48,21 +43,19 @@ parameters:
StorageMgmtInterfaceRoutes: StorageMgmtInterfaceRoutes:
default: [] default: []
description: > description: >
Routes for the storage_mgmt network traffic. Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
StorageMgmtMtu: StorageMgmtMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
StorageMgmt network. in the StorageMgmt network.
type: number type: number
BondInterfaceOvsOptions: BondInterfaceOvsOptions:
default: 'bond_mode=active-backup' default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like description: >-
lacp=active and/or bond_mode=balance-slb using this option. The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option.
type: string type: string
InternalApiNetworkVlanID: InternalApiNetworkVlanID:
default: 20 default: 20
@ -79,44 +72,48 @@ parameters:
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''
description: > description: >
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr
automatically resolved from the ctlplane subnet's cidr attribute.) attribute.)
type: string type: string
ControlPlaneDefaultRoute: ControlPlaneDefaultRoute:
default: '' default: ''
description: The default route of the control plane network. (The parameter description: >-
is automatically resolved from the ctlplane subnet's gateway_ip attribute.) The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's
gateway_ip attribute.)
type: string type: string
ControlPlaneStaticRoutes: ControlPlaneStaticRoutes:
default: [] default: []
description: > description: >
Routes for the ctlplane network traffic. Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] the default is changed, the parameter is automatically resolved from the subnet host_routes attribute.
Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute.
type: json type: json
ControlPlaneMtu: ControlPlaneMtu:
default: 1500 default: 1500
description: The maximum transmission unit (MTU) size(in bytes) that is description: >-
guaranteed to pass through the data path of the segments in the network. The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments
(The parameter is automatically resolved from the ctlplane network's mtu attribute.) in the network. (The parameter is automatically resolved from the ctlplane network's mtu attribute.)
type: number type: number
DnsServers: # Override this via parameter_defaults DnsServers: # Override this via parameter_defaults
default: [] default: []
description: > description: >
DNS servers to use for the Overcloud (2 max for some implementations). DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the
If not set the nameservers configured in the ctlplane subnet's ctlplane subnet's dns_nameservers attribute will be used.
dns_nameservers attribute will be used. type: comma_delimited_list
DnsSearchDomains:
default: []
description: A list of DNS search domains to be added (in order) to resolv.conf.
type: comma_delimited_list type: comma_delimited_list
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:
type: OS::Heat::Value type: OS::Heat::Value
properties: properties:
value: value:
network_config: [] network_config: []
outputs: outputs:
config: config:
description: The OsNetConfigImpl resource. description: The OsNetConfigImpl resource.
value: {get_attr: [OsNetConfigImpl, value]} value:
get_attr:
- OsNetConfigImpl
- value

View File

@ -25,7 +25,7 @@
# openstack overcloud roles generate -o ~/roles_data.yaml Standalone # openstack overcloud roles generate -o ~/roles_data.yaml Standalone
parameter_defaults: parameter_defaults:
# Set to true to append per network Vips to /etc/hosts on each node. # Set to true to append per network Vips to /etc/hosts on each node.
# Type: string # Type: boolean
AddVipsToEtcHosts: False AddVipsToEtcHosts: False
# 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. # 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.

View File

@ -31,6 +31,10 @@ parameters:
default: '' default: ''
description: default route for the {{network.name_lower}} network description: default route for the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID:
default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic.
type: number
{%- endfor %} {%- endfor %}
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''

View File

@ -31,6 +31,10 @@ parameters:
default: '' default: ''
description: default route for the {{network.name_lower}} network description: default route for the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID:
default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic.
type: number
{%- endfor %} {%- endfor %}
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
default: '' default: ''

View File

@ -372,6 +372,14 @@ parameters:
local device or a DMI String matches the specified id being written as a local device or a DMI String matches the specified id being written as a
mapping file for os-net-config. (/etc/os-net-config/mapping.yaml) mapping file for os-net-config. (/etc/os-net-config/mapping.yaml)
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
{% for role in roles %} {% for role in roles %}
{%- if role.deprecated_param_scheduler_hints is defined or role.deprecated_param_extraconfig is defined %} {%- if role.deprecated_param_scheduler_hints is defined or role.deprecated_param_extraconfig is defined %}
{%- if not parameter_groups_defined|default(false) %} {%- if not parameter_groups_defined|default(false) %}
@ -461,6 +469,9 @@ conditions:
- equals: - equals:
- get_param: [EndpointMapOverride, NovaMetadataCellInternal] - get_param: [EndpointMapOverride, NovaMetadataCellInternal]
- '' - ''
dnsservers_set:
not:
equals: [{get_param: DnsServers}, []]
resources: resources:
@ -952,42 +963,39 @@ resources:
value: value:
ctlplane_mtu: {get_attr: [Networks, net_attributes_map, ctlplane, network, mtu]} ctlplane_mtu: {get_attr: [Networks, net_attributes_map, ctlplane, network, mtu]}
ctlplane_gateway_ip: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, gateway_ip]} ctlplane_gateway_ip: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, gateway_ip]}
ctlplane_dns_nameservers: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, dns_nameservers]} ctlplane_dns_nameservers:
if:
- dnsservers_set
- {get_param: DnsServers}
- {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, dns_nameservers]}
ctlplane_subnet_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, cidr]}, 1]} ctlplane_subnet_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, cidr]}, 1]}
ctlplane_host_routes: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, host_routes]} ctlplane_host_routes: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, host_routes]}
{%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %} {%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %}
{{network.name_lower}}_mtu: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, network, mtu]}
{%- if role.networks is mapping %} {%- if role.networks is mapping %}
{{network.name_lower}}_gateway_ip: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{role.networks[network.name]['subnet']}}, gateway_ip]} {%- set _role_net_subnet = role.networks[network.name]['subnet'] %}
{{network.name_lower}}_host_routes: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{role.networks[network.name]['subnet']}}, host_routes]}
{{network.name_lower}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{role.networks[network.name]['subnet']}}, cidr]}, 1]}
{{network.name_lower}}_vlan_id:
yaql:
expression: >
switch(not isList($.data) => 1,
not $.data.where($.startsWith('tripleo_vlan_id')).len() => 1,
true => int($.data.where($.startsWith('tripleo_vlan_id')).first().split('=').last()))
data: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{role.networks[network.name]['subnet']}}, tags]}
{%- else %} {%- else %}
{{network.name_lower}}_gateway_ip: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{network.name_lower}}_subnet, gateway_ip]} {%- set _role_net_subnet = network.name_lower + '_subnet' %}
{{network.name_lower}}_host_routes: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{network.name_lower}}_subnet, host_routes]} {%- endif %}
{{network.name_lower}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{network.name_lower}}_subnet, cidr]}, 1]} {{network.name_lower}}_mtu: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, network, mtu]}
{{network.name_lower}}_gateway_ip: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, gateway_ip]}
{{network.name_lower}}_host_routes: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, host_routes]}
{{network.name_lower}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, cidr]}, 1]}
{{network.name_lower}}_vlan_id: {{network.name_lower}}_vlan_id:
yaql: yaql:
expression: > expression: >
switch(not isList($.data) => 1, switch(not isList($.data) => 1,
not $.data.where($.startsWith('tripleo_vlan_id')).len() => 1, not $.data.where($.startsWith('tripleo_vlan_id')).len() => 1,
true => int($.data.where($.startsWith('tripleo_vlan_id')).first().split('=').last())) true => int($.data.where($.startsWith('tripleo_vlan_id')).first().split('=').last()))
data: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{network.name_lower}}_subnet, tags]} data: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, tags]}
{%- endif %}
{%- endfor %} {%- endfor %}
network_cidrs: network_cidrs:
{%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %} {%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %}
{%- if role.networks is mapping %} {%- if role.networks is mapping %}
{{network.name}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{role.networks[network.name]['subnet']}}, cidr]}, 1]} {%- set _role_net_subnet = role.networks[network.name]['subnet'] %}
{%- else %} {%- else %}
{{network.name}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{network.name_lower}}_subnet, cidr]}, 1]} {%- set _role_net_subnet = network.name_lower + '_subnet' %}
{%- endif %} {%- endif %}
{{network.name}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, cidr]}, 1]}
{%- endfor %} {%- endfor %}
dns_search_domains: {get_param: DnsSearchDomains} dns_search_domains: {get_param: DnsSearchDomains}
local_mtu: {get_param: {{role.name}}LocalMtu} local_mtu: {get_param: {{role.name}}LocalMtu}
@ -1005,6 +1013,40 @@ resources:
default_route_networks: {{role.default_route_networks}} default_route_networks: {{role.default_route_networks}}
networks_skip_config: {{role.networks_skip_config }} networks_skip_config: {{role.networks_skip_config }}
role_tags: {{role.tags}} role_tags: {{role.tags}}
{{role.name}}NetworkConfig:
type: OS::TripleO::{{role.name}}::Net::SoftwareConfig
properties:
ControlPlaneIp: "{{ '{{' }} ctlplane_ip {{ '}}' }}"
ControlPlaneSubnetCidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, cidr]}, 1]}
ControlPlaneDefaultRoute: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, gateway_ip]}
ControlPlaneStaticRoutes: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, host_routes]}
ControlPlaneMtu: {get_attr: [Networks, net_attributes_map, ctlplane, network, mtu]}
DnsServers:
if:
- dnsservers_set
- {get_param: DnsServers}
- {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, dns_nameservers]}
{%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %}
{%- if role.networks is mapping %}
{%- set _role_net_subnet = role.networks[network.name]['subnet'] %}
{%- else %}
{%- set _role_net_subnet = network.name_lower + '_subnet' %}
{%- endif %}
{{network.name}}IpSubnet: "{{ '{{' }} {{network.name_lower}}_ip ~ '/' ~ {{network.name_lower}}_cidr {{ '}}' }}"
{{network.name}}InterfaceRoutes: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, host_routes]}
{{network.name}}Mtu: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, network, mtu]}
{{network.name}}NetworkVlanID:
yaql:
expression: >
switch(not isList($.data) => 1,
not $.data.where($.startsWith('tripleo_vlan_id')).len() => 1,
true => int($.data.where($.startsWith('tripleo_vlan_id')).first().split('=').last()))
data: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, tags]}
{%- if network.name in role.default_route_networks %}
{{network.name}}InterfaceDefaultRoute: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, gateway_ip]}
{%- endif %}
{%- endfor %}
{%- endfor %} {%- endfor %}
ControlVirtualIP: ControlVirtualIP:
@ -1329,13 +1371,11 @@ outputs:
GlobalConfig: GlobalConfig:
description: The global_config (hieradata). description: The global_config (hieradata).
value: {get_attr: [GlobalConfig, value]} value: {get_attr: [GlobalConfig, value]}
HostnameNetworkConfigMap: RoleNetworkConfigMap:
description: Mapping of hostname to NetworkConfig resource description: Mapping of roles to network config
value: value:
map_merge:
list_concat:
{%- for role in roles %} {%- for role in roles %}
- {get_attr: [{{role.name}}, hostname_network_config_map]} {{role.name}}: {get_attr: [{{role.name}}NetworkConfig, config]}
{%- endfor %} {%- endfor %}
AnsibleHostVarsMap: AnsibleHostVarsMap:
description: Map of Ansible Host variables per role description: Map of Ansible Host variables per role

View File

@ -169,59 +169,6 @@ parameters:
The subnet CIDR of the control plane network. (The parameter is The subnet CIDR of the control plane network. (The parameter is
automatically resolved from the ctlplane subnet's cidr attribute.) automatically resolved from the ctlplane subnet's cidr attribute.)
type: string 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
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
{%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %}
{{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
{%- if role.networks is mapping %}
{%- set _subnets = network.get('subnets') %}
{%- set _role_net_subnet = role.networks[network.name].get('subnet') %}
{%- if _subnets and _role_net_subnet and _role_net_subnet in _subnets %}
{{network.name}}NetworkVlanID_{{_role_net_subnet}}:
default: {{network.subnets[_role_net_subnet].vlan|default(1)}}
description: >
Vlan ID for the {{network.name_lower}} network traffic for subnet
{{_role_net_subnet}}.
type: number
{%- elif network.vlan|default(false) %}
{{network.name}}NetworkVlanID:
default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic.
type: number
{%- endif %}
{%- elif network.vlan|default(false) %}
{{network.name}}NetworkVlanID:
default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic.
type: number
{%- endif %}
{%- endfor %}
ServerDeletionPolicy: ServerDeletionPolicy:
description: Whether to retain or delete servers on deletion of the stack description: Whether to retain or delete servers on deletion of the stack
type: string type: string
@ -281,32 +228,13 @@ conditions:
- "" - ""
{%- endif %} {%- endif %}
- false # NOTE(hjensas): Make sure 'or' get's 2 conditions or more - false # NOTE(hjensas): Make sure 'or' get's 2 conditions or more
{%- for network in networks %} {%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %}
{%- if network.enabled|default(true) and network.name in role.networks|default([]) %}
{{role.name}}_{{network.name}}_fixed_ip_set: {{role.name}}_{{network.name}}_fixed_ip_set:
not: not:
equals: equals:
- {get_param: [{{role.name}}IPs, '{{network.name_lower}}', {get_param: NodeIndex}]} - {get_param: [{{role.name}}IPs, '{{network.name_lower}}', {get_param: NodeIndex}]}
- '' - ''
{{network.name_lower}}_interface_routes_set:
not:
equals:
- {get_param: {{network.name}}InterfaceRoutes}
- []
{%- endif %}
{%- endfor %} {%- endfor %}
ctlplane_subnet_cidr_set:
not:
equals: [{get_param: ControlPlaneSubnetCidr}, '']
ctlplane_default_route_set:
not:
equals: [{get_param: ControlPlaneDefaultRoute}, '']
ctlplane_static_routes_set:
not:
equals: [{get_param: ControlPlaneStaticRoutes}, []]
dnsservers_set:
not:
equals: [{get_param: DnsServers}, []]
resources: resources:
{{server_resource_name}}: {{server_resource_name}}:
@ -378,6 +306,8 @@ resources:
- - {get_attr: [{{server_resource_name}}, name]} - - {get_attr: [{{server_resource_name}}, name]}
- {{network.name}} - {{network.name}}
DnsName: {get_attr: [{{server_resource_name}}, name]} DnsName: {get_attr: [{{server_resource_name}}, name]}
# TODO(hjensas): Make network isolation the default, so that we can drop
# using network/ports/noop.yaml as the default and remove this.
ControlPlaneIP: {get_attr: [{{server_resource_name}}, networks, ctlplane, 0]} ControlPlaneIP: {get_attr: [{{server_resource_name}}, networks, ctlplane, 0]}
FixedIPs: FixedIPs:
if: if:
@ -393,15 +323,14 @@ resources:
{%- else %} {%- else %}
- [{subnet: {{network.name_lower}}_subnet}] - [{subnet: {{network.name_lower}}_subnet}]
{%- endif %} {%- endif %}
# TODO(hjensas): Make network isolation the default, so that we can drop
# using network/ports/noop.yaml as the default and remove this.
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
if: # DeployedServer docs specify 'cidr: 24' in DeployedServerPortMap.
- ctlplane_subnet_cidr_set # Support both that, and 'cidr: 192.168.24.0/24'.
- {get_param: ControlPlaneSubnetCidr} yaql:
# DeployedServer docs specify 'cidr: 24' in DeployedServerPortMap. expression: str("{0}".format($.data).split("/")[-1])
# Support both that, and 'cidr: 192.168.24.0/24'. data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]}
- yaql:
expression: str("{0}".format($.data).split("/")[-1])
data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]}
IPPool: IPPool:
map_merge: map_merge:
{%- if role.deprecated_param_ips is defined %} {%- if role.deprecated_param_ips is defined %}
@ -412,77 +341,14 @@ resources:
{%- endif %} {%- endif %}
{%- endfor %} {%- endfor %}
NetworkConfig:
type: OS::TripleO::{{role.name}}::Net::SoftwareConfig
properties:
ControlPlaneIp: "{{ '{{' }} ctlplane_ip {{ '}}' }}"
ControlPlaneSubnetCidr:
if:
- ctlplane_subnet_cidr_set
- {get_param: ControlPlaneSubnetCidr}
- yaql:
expression: str("{0}".format($.data).split("/")[-1])
data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]}
ControlPlaneDefaultRoute:
if:
- ctlplane_default_route_set
- {get_param: ControlPlaneDefaultRoute}
- {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, gateway_ip]}
ControlPlaneStaticRoutes:
if:
- ctlplane_static_routes_set
- {get_param: ControlPlaneStaticRoutes}
- yaql:
expression: switch(isList($.data) => $.data, true => [])
data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, host_routes]}
ControlPlaneMtu:
yaql:
expression: switch(isInteger($.data) => $.data, true => 1500)
data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, network, mtu]}
DnsServers:
if:
- dnsservers_set
- {get_param: DnsServers}
- {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, dns_nameservers]}
{%- for network in networks %}
{%- if network.enabled|default(true) and network.name in role.networks|default([]) %}
{{network.name}}IpSubnet: "{{ '{{' }} {{network.name_lower}}_ip ~ '/' ~ {{network.name_lower}}_cidr {{ '}}' }}"
{{network.name}}InterfaceRoutes:
if:
- {{network.name_lower}}_interface_routes_set
- {get_param: {{network.name}}InterfaceRoutes}
- {get_attr: [{{network.name}}Port, host_routes]}
{{network.name}}Mtu: {get_attr: [{{network.name}}Port, mtu]}
{%- if network.name in role.default_route_networks %}
{{network.name}}InterfaceDefaultRoute: {get_attr: [{{network.name}}Port, gateway_ip]}
{%- endif %}
{%- if role.networks is mapping %}
{%- set _subnets = network.get('subnets') %}
{%- set _role_net_subnet = role.networks[network.name].get('subnet') %}
{%- if _subnets and _role_net_subnet and _role_net_subnet in _subnets %}
{{network.name}}NetworkVlanID: {get_param: {{network.name}}NetworkVlanID_{{_role_net_subnet}}}
{%- elif network.vlan|default(false) %}
{{network.name}}NetworkVlanID: {get_param: {{network.name}}NetworkVlanID}
{%- endif %}
{%- elif network.vlan|default(false) %}
{{network.name}}NetworkVlanID: {get_param: {{network.name}}NetworkVlanID}
{%- endif %}
{%- endif %}
{%- endfor %}
NetIpMap: NetIpMap:
type: OS::TripleO::Network::Ports::NetIpMap type: OS::TripleO::Network::Ports::NetIpMap
properties: properties:
ControlPlaneIp: {get_attr: [{{server_resource_name}}, networks, ctlplane, 0]} ControlPlaneIp: {get_attr: [{{server_resource_name}}, networks, ctlplane, 0]}
ControlPlaneSubnetCidr: ControlPlaneSubnetCidr:
if: yaql:
- ctlplane_subnet_cidr_set expression: str("{0}".format($.data).split("/")[-1])
- {get_param: ControlPlaneSubnetCidr} data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]}
- yaql:
expression: str("{0}".format($.data).split("/")[-1])
data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]}
{%- for network in networks %} {%- for network in networks %}
@ -577,17 +443,8 @@ resources:
properties: properties:
type: json type: json
value: value:
{%- for network in networks %} {%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %}
{%- if network.enabled|default(true) and network.name in role.networks|default([]) %}
{{network.name_lower}}_cidr: {get_attr: [{{network.name}}Port, cidr]}
fqdn_{{network.name_lower}}: {get_attr: [NetHostMap, value, {{network.name_lower}}, fqdn]} fqdn_{{network.name_lower}}: {get_attr: [NetHostMap, value, {{network.name_lower}}, fqdn]}
{%- endif %}
{%- endfor %}
network_cidrs:
{%- for network in networks %}
{%- if network.enabled|default(true) and network.name in role.networks|default([]) %}
{{network.name}}_cidr: {get_attr: [{{network.name}}Port, cidr]}
{%- endif %}
{%- endfor %} {%- endfor %}
fqdn_ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]} fqdn_ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]}
fqdn_canonical: {get_attr: [NetHostMap, value, canonical, fqdn]} fqdn_canonical: {get_attr: [NetHostMap, value, canonical, fqdn]}
@ -665,13 +522,6 @@ outputs:
{%- endfor %} {%- endfor %}
ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]} ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]}
canonical: {get_attr: [NetHostMap, value, canonical, fqdn]} canonical: {get_attr: [NetHostMap, value, canonical, fqdn]}
hostname_network_config_map:
description: Mapping of hostname to NetworkConfig resource
value:
map_replace:
- HOSTNAME: {get_attr: [NetworkConfig, config]}
- keys:
HOSTNAME: {get_attr:[{{server_resource_name}}, name]}
hosts_entry: hosts_entry:
value: value:
- str_replace: - str_replace:

View File

@ -42,16 +42,17 @@ environments:
puppet/controller-role.yaml: puppet/controller-role.yaml:
parameters: parameters:
- SoftwareConfigTransport - SoftwareConfigTransport
- DnsServers
sample-env-generator/standalone.yaml: sample-env-generator/standalone.yaml:
parameters: parameters:
- AddVipsToEtcHosts - AddVipsToEtcHosts
- NetworkSafeDefaults - NetworkSafeDefaults
- StandaloneNetworkConfigWithAnsible - StandaloneNetworkConfigWithAnsible
- StandaloneNetworkConfigTemplate - StandaloneNetworkConfigTemplate
overcloud.yaml:
parameters:
- DnsServers
sample_values: sample_values:
AddVipsToEtcHosts: false
StackAction: CREATE StackAction: CREATE
SoftwareConfigTransport: POLL_SERVER_HEAT SoftwareConfigTransport: POLL_SERVER_HEAT
EnablePackageInstall: true EnablePackageInstall: true
@ -180,14 +181,14 @@ environments:
- NtpServer - NtpServer
# TODO(aschultz): hack to pull in this config transport, not sure it is # TODO(aschultz): hack to pull in this config transport, not sure it is
# still needed. # still needed.
puppet/controller-role.yaml:
parameters:
- DnsServers
sample-env-generator/standalone.yaml: sample-env-generator/standalone.yaml:
parameters: parameters:
- StandaloneHostnameFormat - StandaloneHostnameFormat
- StandaloneCount - StandaloneCount
- OvercloudStandaloneFlavor - OvercloudStandaloneFlavor
overcloud.yaml:
parameters:
- DnsServers
sample_values: sample_values:
StandaloneCount: 1 StandaloneCount: 1
OvercloudStandaloneFlavor: standalone OvercloudStandaloneFlavor: standalone

View File

@ -23,6 +23,8 @@ environments:
puppet/controller-role.yaml: puppet/controller-role.yaml:
parameters: parameters:
- SoftwareConfigTransport - SoftwareConfigTransport
overcloud.yaml:
parameters:
- DnsServers - DnsServers
sample_values: sample_values:
# Normal bits for standalone # Normal bits for standalone