59c5e23c54
Per-subnet vlan id parameters are already rendered in network-environment.yaml. This change uses networks data and roles data so that per-subnet vlan id param is used when passing the relevant NetworkVlanId data to nic-config templates. By using the generic %network%NetworkVlanId (no subnet suffix) in nic-config templates instead of %network%NetworkVlanId_%subnet%, this allow homogeneous computes in multiple sites to use the same nic-config template. Also use type: number for all vlan parameters. Closes-Bug: #1821043 Change-Id: Id8e76ae7c41a562f5c47d911c42aa18001c11be1
214 lines
7.4 KiB
YAML
214 lines
7.4 KiB
YAML
heat_template_version: rocky
|
|
|
|
description: >
|
|
Software Config to drive os-net-config for a simple bridge configured
|
|
with a static IP address for the ctlplane network.
|
|
|
|
parameters:
|
|
ControlPlaneIp:
|
|
default: ''
|
|
description: IP address/subnet on the ctlplane network
|
|
type: string
|
|
ControlPlaneSubnetCidr:
|
|
default: ''
|
|
description: >
|
|
The subnet CIDR of the control plane network. (The parameter is
|
|
automatically resolved from the ctlplane subnet's cidr attribute.)
|
|
type: string
|
|
ControlPlaneDefaultRoute:
|
|
default: ''
|
|
description: The default route of the control plane network. (The parameter
|
|
is automatically resolved from the ctlplane subnet's gateway_ip attribute.)
|
|
type: string
|
|
ControlPlaneStaticRoutes:
|
|
default: []
|
|
description: >
|
|
Routes for the ctlplane network traffic.
|
|
JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}]
|
|
Unless the default is changed, the parameter is automatically resolved
|
|
from the subnet host_routes attribute.
|
|
type: json
|
|
ControlPlaneMtu:
|
|
default: 1500
|
|
description: The maximum transmission unit (MTU) size(in bytes) that is
|
|
guaranteed to pass through the data path of the segments in the network.
|
|
(The parameter is automatically resolved from the ctlplane network's mtu attribute.)
|
|
type: number
|
|
ExternalIpSubnet:
|
|
default: ''
|
|
description: IP address/subnet on the external network
|
|
type: string
|
|
ExternalInterfaceRoutes:
|
|
default: []
|
|
description: >
|
|
Routes for the external 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
|
|
ExternalMtu:
|
|
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
|
|
External network.
|
|
type: number
|
|
ExternalInterfaceDefaultRoute:
|
|
default: ''
|
|
description: default route for the external network
|
|
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:
|
|
default: ''
|
|
description: IP address/subnet on the storage network
|
|
type: string
|
|
StorageInterfaceRoutes:
|
|
default: []
|
|
description: >
|
|
Routes for the storage 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
|
|
StorageMtu:
|
|
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
|
|
Storage network.
|
|
type: number
|
|
StorageMgmtIpSubnet:
|
|
default: ''
|
|
description: IP address/subnet on the storage_mgmt network
|
|
type: string
|
|
StorageMgmtInterfaceRoutes:
|
|
default: []
|
|
description: >
|
|
Routes for the storage_mgmt 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
|
|
StorageMgmtMtu:
|
|
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
|
|
StorageMgmt network.
|
|
type: number
|
|
StorageNFSIpSubnet:
|
|
default: ''
|
|
description: IP address/subnet on the storage_nfs network
|
|
type: string
|
|
TenantIpSubnet:
|
|
default: ''
|
|
description: IP address/subnet on the tenant network
|
|
type: string
|
|
TenantInterfaceRoutes:
|
|
default: []
|
|
description: >
|
|
Routes for the tenant 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
|
|
TenantMtu:
|
|
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
|
|
Tenant network.
|
|
type: number
|
|
ManagementIpSubnet:
|
|
default: ''
|
|
description: IP address/subnet on the management network
|
|
type: string
|
|
ManagementInterfaceRoutes:
|
|
default: []
|
|
description: >
|
|
Routes for the management 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
|
|
ManagementMtu:
|
|
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
|
|
Management network.
|
|
type: number
|
|
DnsServers: # Override this via parameter_defaults
|
|
default: []
|
|
description: >
|
|
DNS servers to use for the Overcloud (2 max for some implementations).
|
|
If not set the nameservers configured in the ctlplane subnet's
|
|
dns_nameservers attribute will be used.
|
|
type: comma_delimited_list
|
|
EC2MetadataIp:
|
|
default: ''
|
|
description: The IP address of the EC2 metadata server. (The parameter
|
|
is automatically resolved from the ctlplane subnet's host_routes attribute.)
|
|
type: string
|
|
# NOTE(hjensas): We need these because the default network_data.yaml define
|
|
# vlan for all networks.
|
|
ExternalNetworkVlanID:
|
|
default: 10
|
|
description: Vlan ID for the external network traffic.
|
|
type: number
|
|
InternalApiNetworkVlanID:
|
|
default: 20
|
|
description: Vlan ID for the internal_api network traffic.
|
|
type: number
|
|
StorageNetworkVlanID:
|
|
default: 30
|
|
description: Vlan ID for the storage network traffic.
|
|
type: number
|
|
StorageMgmtNetworkVlanID:
|
|
default: 40
|
|
description: Vlan ID for the storage_mgmt network traffic.
|
|
type: number
|
|
TenantNetworkVlanID:
|
|
default: 50
|
|
description: Vlan ID for the tenant network traffic.
|
|
type: number
|
|
|
|
resources:
|
|
OsNetConfigImpl:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: script
|
|
config:
|
|
str_replace:
|
|
template: |
|
|
#!/bin/bash
|
|
if ! ip addr show dev $bridge_name | grep CONTROLPLANEIP/CONTROLPLANESUBNETCIDR; then
|
|
ip addr add CONTROLPLANEIP/CONTROLPLANESUBNETCIDR dev $bridge_name
|
|
fi
|
|
params:
|
|
CONTROLPLANEIP: {get_param: ControlPlaneIp}
|
|
CONTROLPLANESUBNETCIDR: {get_param: ControlPlaneSubnetCidr}
|
|
inputs:
|
|
-
|
|
name: bridge_name
|
|
default: br-ex
|
|
description: bridge-name
|
|
type: String
|
|
|
|
outputs:
|
|
OS::stack_id:
|
|
description: The OsNetConfigImpl resource.
|
|
value: {get_resource: OsNetConfigImpl}
|