Merge "Remove legacy controller-v6.yaml NIC config templates"
This commit is contained in:
commit
84a32324e9
@ -1,16 +0,0 @@
|
||||
# This template configures each role to use a pair of bonded nics (nic2 and
|
||||
# nic3) and configures an IP address on each relevant isolated network
|
||||
# for each role, with IPv6 on the External network. This template assumes
|
||||
# use of network-isolation-v6.yaml.
|
||||
#
|
||||
# FIXME: if/when we add functionality to heatclient to include heat
|
||||
# environment files we should think about using it here to automatically
|
||||
# include network-isolation-v6.yaml.
|
||||
resource_registry:
|
||||
{%- for role in roles if role != "Controller" %}
|
||||
# Network configuration assignments for the {{role.name}}
|
||||
OS::TripleO::{{role.name}}::Net::SoftwareConfig: ../network/config/bond-with-vlans/{{role.deprecated_nic_config_name|default(role.name.lower() ~ ".yaml")}}
|
||||
{%- endfor %}
|
||||
|
||||
# FIXME this should really be handled via setting ipv6:true in network_data not overriding here.
|
||||
OS::TripleO::Controller::Net::SoftwareConfig: ../network/config/bond-with-vlans/controller-v6.yaml
|
@ -5,6 +5,13 @@
|
||||
# FIXME: if/when we add functionality to heatclient to include heat
|
||||
# environment files we should think about using it here to automatically
|
||||
# include network-isolation.yaml.
|
||||
#
|
||||
# There is no longer a requirement to use net-bond-with-vlans-v6.yaml for
|
||||
# nodes when deploying with IPv6. You may now define both an IPv4 network
|
||||
# and an IPv6 network as default routes by adding both networks to the
|
||||
# default_route_networks list for the Controller role in roles_data.yaml.
|
||||
# Then include this environment file to use bond-with-vlans NIC configs.
|
||||
|
||||
resource_registry:
|
||||
{%- for role in roles %}
|
||||
# Network configuration assignments for the {{role.name}}
|
||||
|
@ -1,15 +0,0 @@
|
||||
# This template configures each role to use a separate NIC for
|
||||
# each isolated network with IPv6 on the External network.
|
||||
# This template assumes use of network-isolation.yaml.
|
||||
#
|
||||
# FIXME: if/when we add functionality to heatclient to include heat
|
||||
# environment files we should think about using it here to automatically
|
||||
# include network-isolation-v6.yaml.
|
||||
resource_registry:
|
||||
{%- for role in roles if role.name != "Controller" %}
|
||||
# Network configuration assignments for the {{role.name}}
|
||||
OS::TripleO::{{role.name}}::Net::SoftwareConfig: ../network/config/multiple-nics/{{role.deprecated_nic_config_name|default(role.name.lower() ~ ".yaml")}}
|
||||
{%- endfor %}
|
||||
|
||||
# FIXME this should really be handled via setting ipv6:true in network_data not overriding here.
|
||||
OS::TripleO::Controller::Net::SoftwareConfig: ../network/config/multiple-nics/controller-v6.yaml
|
@ -5,6 +5,13 @@
|
||||
# FIXME: if/when we add functionality to heatclient to include heat
|
||||
# environment files we should think about using it here to automatically
|
||||
# include network-isolation.yaml.
|
||||
#
|
||||
# There is no longer a requirement to use net-multiple-nics-v6.yaml for
|
||||
# nodes when deploying with IPv6. You may now define both an IPv4 network
|
||||
# and an IPv6 network as default routes by adding both networks to the
|
||||
# default_route_networks list for the Controller role in roles_data.yaml.
|
||||
# Then include this environment file to use bond-with-vlans NIC configs.
|
||||
|
||||
resource_registry:
|
||||
{%- for role in roles %}
|
||||
# Network configuration assignments for the {{role.name}}
|
||||
|
@ -1,15 +0,0 @@
|
||||
# This template configures each role to use Vlans on a single nic for
|
||||
# each isolated network with IPv6 on the External network.
|
||||
# This template assumes use of network-isolation.yaml.
|
||||
#
|
||||
# FIXME: if/when we add functionality to heatclient to include heat
|
||||
# environment files we should think about using it here to automatically
|
||||
# include network-isolation-v6.yaml.
|
||||
resource_registry:
|
||||
{%- for role in roles if role.name != "Controller" %}
|
||||
# Network configuration assignments for the {{role.name}}
|
||||
OS::TripleO::{{role.name}}::Net::SoftwareConfig: ../network/config/single-nic-vlans/{{role.deprecated_nic_config_name|default(role.name.lower() ~ ".yaml")}}
|
||||
{%- endfor %}
|
||||
|
||||
# FIXME this should really be handled via setting ipv6:true in network_data not overriding here.
|
||||
OS::TripleO::Controller::Net::SoftwareConfig: ../network/config/single-nic-vlans/controller-v6.yaml
|
@ -5,6 +5,13 @@
|
||||
# FIXME: if/when we add functionality to heatclient to include heat
|
||||
# environment files we should think about using it here to automatically
|
||||
# include network-isolation.yaml.
|
||||
#
|
||||
# There is no longer a requirement to use net-single-nic-with-vlans-v6.yaml
|
||||
# when deploying with IPv6. You may now define both an IPv4 network
|
||||
# and an IPv6 network as default routes by adding both networks to the
|
||||
# default_route_networks list for the Controller role in roles_data.yaml.
|
||||
# Then include this environment file to use single-nic-vlans NIC configs.
|
||||
|
||||
resource_registry:
|
||||
{%- for role in roles %}
|
||||
# Network configuration assignments for the {{role.name}}
|
||||
|
@ -30,6 +30,14 @@ Same as above except set the following value for the controller role:
|
||||
|
||||
OS::TripleO::Controller::Net::SoftwareConfig: network/config/bond-with-vlans/controller-no-external.yaml
|
||||
|
||||
Configuration with IPv6 Networks
|
||||
--------------------------------
|
||||
|
||||
There is no longer a requirement to use controller-v6.yaml for Controller nodes
|
||||
when deploying with IPv6. You may now define both an IPv4 network and an IPv6
|
||||
network as default routes by adding both networks to the default_route_networks
|
||||
list for the Controller role in roles_data.yaml.
|
||||
|
||||
Configuration with System Management Network
|
||||
--------------------------------------------
|
||||
|
||||
|
@ -1,230 +0,0 @@
|
||||
heat_template_version: rocky
|
||||
description: >
|
||||
Software Config to drive os-net-config with 2 bonded nics on a bridge with VLANs attached for the controller role with IPv6
|
||||
on the External network. The IPv6 default route is on the External network, and the IPv4 default route is on the Control
|
||||
Plane.
|
||||
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
|
||||
{% for network in networks %}
|
||||
{{network.name}}IpSubnet:
|
||||
default: ''
|
||||
description: IP address/subnet on the {{network.name_lower}} network
|
||||
type: string
|
||||
{{network.name}}NetworkVlanID:
|
||||
default: {{network.vlan|default(1)}}
|
||||
description: Vlan ID for the {{network.name_lower}} network traffic.
|
||||
type: number
|
||||
{{network.name}}Mtu:
|
||||
default: {{network.mtu|default('1500')}}
|
||||
description: The maximum transmission unit (MTU) size(in bytes) that is
|
||||
guaranteed to pass through the data path of the segments in the
|
||||
{{network.name}} network.
|
||||
type: number
|
||||
{{network.name}}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
|
||||
{%- endfor %}
|
||||
ExternalInterfaceDefaultRoute:
|
||||
default: ''
|
||||
description: default route for the external network
|
||||
type: string
|
||||
DnsServers: # Override this via parameter_defaults
|
||||
default: []
|
||||
description: >
|
||||
DNS servers to use for the Overcloud (2 max for some implementations).
|
||||
If not set the nameservers configured in the ctlplane subnet's
|
||||
dns_nameservers attribute will be used.
|
||||
type: comma_delimited_list
|
||||
DnsSearchDomains: # Override this via parameter_defaults
|
||||
default: []
|
||||
description: A list of DNS search domains to be added (in order) to resolv.conf.
|
||||
type: comma_delimited_list
|
||||
BondInterfaceOvsOptions:
|
||||
default: bond_mode=active-backup
|
||||
description: 'The ovs_options or bonding_options string for the bond
|
||||
interface. Set things like lacp=active and/or bond_mode=balance-slb
|
||||
for OVS bonds or like mode=4 for Linux bonds using this option.'
|
||||
type: string
|
||||
resources:
|
||||
|
||||
MinViableMtu:
|
||||
# This resource resolves the minimum viable MTU for interfaces, bonds and
|
||||
# bridges that carry multiple VLANs. Each VLAN may have different MTU. The
|
||||
# bridge, bond or interface must have an MTU to allow the VLAN with the
|
||||
# largest MTU.
|
||||
type: OS::Heat::Value
|
||||
properties:
|
||||
type: number
|
||||
value:
|
||||
yaql:
|
||||
expression: $.data.max()
|
||||
data:
|
||||
- {get_param: ControlPlaneMtu}
|
||||
{%- for network in networks if network.enabled|default(true) %}
|
||||
- {get_param: {{network.name}}Mtu}
|
||||
{%- endfor %}
|
||||
|
||||
OsNetConfigImpl:
|
||||
type: OS::Heat::SoftwareConfig
|
||||
properties:
|
||||
group: script
|
||||
config:
|
||||
str_replace:
|
||||
template:
|
||||
get_file: ../../scripts/run-os-net-config.sh
|
||||
params:
|
||||
$network_config:
|
||||
network_config:
|
||||
- type: interface
|
||||
name: nic1
|
||||
mtu:
|
||||
get_param: ControlPlaneMtu
|
||||
use_dhcp: false
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
list_join:
|
||||
- /
|
||||
- - get_param: ControlPlaneIp
|
||||
- get_param: ControlPlaneSubnetCidr
|
||||
routes:
|
||||
list_concat_unique:
|
||||
- get_param: ControlPlaneStaticRoutes
|
||||
- - default: true # NOTE(hjensas): This is the IPv4 default route
|
||||
next_hop:
|
||||
get_param: ControlPlaneDefaultRoute
|
||||
- type: ovs_bridge
|
||||
name: bridge_name
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
dns_servers:
|
||||
get_param: DnsServers
|
||||
domain:
|
||||
get_param: DnsSearchDomains
|
||||
members:
|
||||
- type: ovs_bond
|
||||
name: bond1
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
ovs_options:
|
||||
get_param: BondInterfaceOvsOptions
|
||||
members:
|
||||
- type: interface
|
||||
name: nic2
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
primary: true
|
||||
- type: interface
|
||||
name: nic3
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [ExternalMtu, value]
|
||||
vlan_id:
|
||||
get_param: ExternalNetworkVlanID
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: ExternalIpSubnet
|
||||
routes:
|
||||
list_concat_unique:
|
||||
- get_param: ExternalInterfaceRoutes
|
||||
- - default: true # NOTE(hjensas): This is the IPv6 default route
|
||||
next_hop:
|
||||
get_param: ExternalInterfaceDefaultRoute
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [InternalApiMtu, value]
|
||||
vlan_id:
|
||||
get_param: InternalApiNetworkVlanID
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: InternalApiIpSubnet
|
||||
routes:
|
||||
get_param: InternalApiInterfaceRoutes
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [StorageMtu, value]
|
||||
vlan_id:
|
||||
get_param: StorageNetworkVlanID
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: StorageIpSubnet
|
||||
routes:
|
||||
get_param: StorageInterfaceRoutes
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [StorageMgmtMtu, value]
|
||||
vlan_id:
|
||||
get_param: StorageMgmtNetworkVlanID
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: StorageMgmtIpSubnet
|
||||
routes:
|
||||
get_param: StorageMgmtInterfaceRoutes
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [TenantMtu, value]
|
||||
vlan_id:
|
||||
get_param: TenantNetworkVlanID
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: TenantIpSubnet
|
||||
routes:
|
||||
get_param: TenantInterfaceRoutes
|
||||
# Uncomment when including environments/network-management.yaml
|
||||
# If setting default route on the Management interface, comment
|
||||
# out the default route on the External interface. This will
|
||||
# make the External API unreachable from remote subnets.
|
||||
#- type: vlan
|
||||
# mtu:
|
||||
# get_attr: [ManagementMtu, value]
|
||||
# vlan_id:
|
||||
# get_param: ManagementNetworkVlanID
|
||||
# addresses:
|
||||
# - ip_netmask:
|
||||
# get_param: ManagementIpSubnet
|
||||
# routes:
|
||||
# list_concat_unique:
|
||||
# - get_param: TenantInterfaceRoutes
|
||||
# - - default: true
|
||||
# next_hop:
|
||||
# get_param: ManagementInterfaceDefaultRoute
|
||||
outputs:
|
||||
OS::stack_id:
|
||||
description: The OsNetConfigImpl resource.
|
||||
value:
|
||||
get_resource: OsNetConfigImpl
|
||||
|
@ -20,6 +20,14 @@ Or use this Heat environment file:
|
||||
|
||||
environments/net-multiple-nics.yaml
|
||||
|
||||
Configuration with IPv6 Networks
|
||||
--------------------------------
|
||||
|
||||
There is no longer a requirement to use controller-v6.yaml for Controller nodes
|
||||
when deploying with IPv6. You may now define both an IPv4 network and an IPv6
|
||||
network as default routes by adding both networks to the default_route_networks
|
||||
list for the Controller role in roles_data.yaml.
|
||||
|
||||
Configuration with System Management Network
|
||||
--------------------------------------------
|
||||
|
||||
|
@ -1,200 +0,0 @@
|
||||
heat_template_version: rocky
|
||||
description: >
|
||||
Software Config to drive os-net-config to configure multiple interfaces for the controller role with IPv6 on the External
|
||||
network. The IPv6 default route is on the External network, and the IPv4 default route is on the Control Plane.
|
||||
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
|
||||
{% for network in networks %}
|
||||
{{network.name}}IpSubnet:
|
||||
default: ''
|
||||
description: IP address/subnet on the {{network.name_lower}} network
|
||||
type: string
|
||||
{{network.name}}NetworkVlanID:
|
||||
default: {{network.vlan|default(1)}}
|
||||
description: Vlan ID for the {{network.name_lower}} network traffic.
|
||||
type: number
|
||||
{{network.name}}Mtu:
|
||||
default: {{network.mtu|default('1500')}}
|
||||
description: The maximum transmission unit (MTU) size(in bytes) that is
|
||||
guaranteed to pass through the data path of the segments in the
|
||||
{{network.name}} network.
|
||||
type: number
|
||||
{{network.name}}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
|
||||
{%- endfor %}
|
||||
ExternalInterfaceDefaultRoute:
|
||||
default: ''
|
||||
description: default route for the external network
|
||||
type: string
|
||||
DnsServers: # Override this via parameter_defaults
|
||||
default: []
|
||||
description: >
|
||||
DNS servers to use for the Overcloud (2 max for some implementations).
|
||||
If not set the nameservers configured in the ctlplane subnet's
|
||||
dns_nameservers attribute will be used.
|
||||
type: comma_delimited_list
|
||||
DnsSearchDomains: # Override this via parameter_defaults
|
||||
default: []
|
||||
description: A list of DNS search domains to be added (in order) to resolv.conf.
|
||||
type: comma_delimited_list
|
||||
|
||||
resources:
|
||||
OsNetConfigImpl:
|
||||
type: OS::Heat::SoftwareConfig
|
||||
properties:
|
||||
group: script
|
||||
config:
|
||||
str_replace:
|
||||
template:
|
||||
get_file: ../../scripts/run-os-net-config.sh
|
||||
params:
|
||||
$network_config:
|
||||
network_config:
|
||||
- type: interface
|
||||
name: nic1
|
||||
mtu:
|
||||
get_param: ControlPlaneMtu
|
||||
use_dhcp: false
|
||||
dns_servers:
|
||||
get_param: DnsServers
|
||||
domain:
|
||||
get_param: DnsSearchDomains
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
list_join:
|
||||
- /
|
||||
- - get_param: ControlPlaneIp
|
||||
- get_param: ControlPlaneSubnetCidr
|
||||
routes:
|
||||
list_concat_unique:
|
||||
- get_param: ControlPlaneStaticRoutes
|
||||
- - default: true # NOTE(hjensas): This is the IPv4 default route
|
||||
next_hop:
|
||||
get_param: ControlPlaneDefaultRoute
|
||||
- type: interface
|
||||
name: nic2
|
||||
mtu:
|
||||
get_param: StorageMtu
|
||||
use_dhcp: false
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: StorageIpSubnet
|
||||
routes:
|
||||
get_param: StorageInterfaceRoutes
|
||||
- type: interface
|
||||
name: nic3
|
||||
mtu:
|
||||
get_param: StorageMgmtMtu
|
||||
use_dhcp: false
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: StorageMgmtIpSubnet
|
||||
routes:
|
||||
get_param: StorageMgmtInterfaceRoutes
|
||||
- type: interface
|
||||
name: nic4
|
||||
mtu:
|
||||
get_param: InternalApiMtu
|
||||
use_dhcp: false
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: InternalApiIpSubnet
|
||||
routes:
|
||||
get_param: InternalApiInterfaceRoutes
|
||||
- type: ovs_bridge
|
||||
name: br-tenant
|
||||
mtu:
|
||||
get_param: TenantMtu
|
||||
use_dhcp: false
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: TenantIpSubnet
|
||||
routes:
|
||||
get_param: TenantInterfaceRoutes
|
||||
members:
|
||||
- type: interface
|
||||
name: nic5
|
||||
mtu:
|
||||
get_param: TenantMtu
|
||||
use_dhcp: false
|
||||
primary: true
|
||||
- type: ovs_bridge
|
||||
name: bridge_name
|
||||
mtu:
|
||||
get_param: ExternalMtu
|
||||
dns_servers:
|
||||
get_param: DnsServers
|
||||
use_dhcp: false
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: ExternalIpSubnet
|
||||
routes:
|
||||
list_concat_unique:
|
||||
- get_param: ExternalInterfaceRoutes
|
||||
- - default: true # NOTE(hjensas): This is the IPv6 default route
|
||||
next_hop:
|
||||
get_param: ExternalInterfaceDefaultRoute
|
||||
members:
|
||||
- type: interface
|
||||
mtu:
|
||||
get_param: ExternalMtu
|
||||
name: nic6
|
||||
primary: true
|
||||
# Uncomment when including environments/network-management.yaml
|
||||
# If setting default route on the Management interface, comment
|
||||
# out the default route on the External interface. This will
|
||||
# make the External API unreachable from remote subnets.
|
||||
#- type: interface
|
||||
# name: nic7
|
||||
# mtu:
|
||||
# get_param: ManagementMtu
|
||||
# use_dhcp: false
|
||||
# addresses:
|
||||
# - ip_netmask:
|
||||
# get_param: ManagementIpSubnet
|
||||
# routes:
|
||||
# list_concat_unique:
|
||||
# - get_param: ManagementInterfaceRoutes
|
||||
# - - default: true
|
||||
# next_hop:
|
||||
# get_param: ManagementInterfaceDefaultRoute
|
||||
outputs:
|
||||
OS::stack_id:
|
||||
description: The OsNetConfigImpl resource.
|
||||
value:
|
||||
get_resource: OsNetConfigImpl
|
||||
|
@ -17,3 +17,11 @@ something like this:
|
||||
Or use this Heat environment file:
|
||||
|
||||
environments/net-single-nic-linux-bridge-with-vlans.yaml
|
||||
|
||||
Configuration with IPv6 Networks
|
||||
--------------------------------
|
||||
|
||||
There is no longer a requirement to use controller-v6.yaml for Controller nodes
|
||||
when deploying with IPv6. You may now define both an IPv4 network and an IPv6
|
||||
network as default routes by adding both networks to the default_route_networks
|
||||
list for the Controller role in roles_data.yaml.
|
||||
|
@ -1,215 +0,0 @@
|
||||
heat_template_version: rocky
|
||||
description: >
|
||||
Software Config to drive os-net-config to configure VLANs for the controller role with IPv6 on the External network. The
|
||||
IPv6 default route is on the External network, and the IPv4 default route is on the Control Plane.
|
||||
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
|
||||
{% for network in networks %}
|
||||
{{network.name}}IpSubnet:
|
||||
default: ''
|
||||
description: IP address/subnet on the {{network.name_lower}} network
|
||||
type: string
|
||||
{{network.name}}NetworkVlanID:
|
||||
default: {{network.vlan|default(1)}}
|
||||
description: Vlan ID for the {{network.name_lower}} network traffic.
|
||||
type: number
|
||||
{{network.name}}Mtu:
|
||||
default: {{network.mtu|default('1500')}}
|
||||
description: The maximum transmission unit (MTU) size(in bytes) that is
|
||||
guaranteed to pass through the data path of the segments in the
|
||||
{{network.name}} network.
|
||||
type: number
|
||||
{{network.name}}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
|
||||
{%- endfor %}
|
||||
ExternalInterfaceDefaultRoute:
|
||||
default: ''
|
||||
description: default route for the external network
|
||||
type: string
|
||||
DnsServers: # Override this via parameter_defaults
|
||||
default: []
|
||||
description: >
|
||||
DNS servers to use for the Overcloud (2 max for some implementations).
|
||||
If not set the nameservers configured in the ctlplane subnet's
|
||||
dns_nameservers attribute will be used.
|
||||
type: comma_delimited_list
|
||||
DnsSearchDomains: # Override this via parameter_defaults
|
||||
default: []
|
||||
description: A list of DNS search domains to be added (in order) to resolv.conf.
|
||||
type: comma_delimited_list
|
||||
|
||||
resources:
|
||||
|
||||
MinViableMtu:
|
||||
# This resource resolves the minimum viable MTU for interfaces, bonds and
|
||||
# bridges that carry multiple VLANs. Each VLAN may have different MTU. The
|
||||
# bridge, bond or interface must have an MTU to allow the VLAN with the
|
||||
# largest MTU.
|
||||
type: OS::Heat::Value
|
||||
properties:
|
||||
type: number
|
||||
value:
|
||||
yaql:
|
||||
expression: $.data.max()
|
||||
data:
|
||||
- {get_param: ControlPlaneMtu}
|
||||
{%- for network in networks if network.enabled|default(true) %}
|
||||
- {get_param: {{network.name}}Mtu}
|
||||
{%- endfor %}
|
||||
|
||||
OsNetConfigImpl:
|
||||
type: OS::Heat::SoftwareConfig
|
||||
properties:
|
||||
group: script
|
||||
config:
|
||||
str_replace:
|
||||
template:
|
||||
get_file: ../../scripts/run-os-net-config.sh
|
||||
params:
|
||||
$network_config:
|
||||
network_config:
|
||||
- type: linux_bridge
|
||||
name: bridge_name
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
use_dhcp: false
|
||||
dns_servers:
|
||||
get_param: DnsServers
|
||||
domain:
|
||||
get_param: DnsSearchDomains
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
list_join:
|
||||
- /
|
||||
- - get_param: ControlPlaneIp
|
||||
- get_param: ControlPlaneSubnetCidr
|
||||
routes:
|
||||
list_concat_unique:
|
||||
- get_param: ControlPlaneStaticRoutes
|
||||
- - default: true # NOTE(hjensas): This is the IPv4 default route
|
||||
next_hop:
|
||||
get_param: ControlPlaneDefaultRoute
|
||||
members:
|
||||
- type: interface
|
||||
name: interface_name
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
primary: true
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
vlan_id:
|
||||
get_param: ExternalNetworkVlanID
|
||||
device: bridge_name
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: ExternalIpSubnet
|
||||
routes:
|
||||
list_concat_unique:
|
||||
- get_param: ExternalInterfaceRoutes
|
||||
- - default: true # NOTE(hjensas): This is the IPv6 default route
|
||||
next_hop:
|
||||
get_param: ExternalInterfaceDefaultRoute
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
vlan_id:
|
||||
get_param: InternalApiNetworkVlanID
|
||||
device: bridge_name
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: InternalApiIpSubnet
|
||||
routes:
|
||||
get_param: InternalApiInterfaceRoutes
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
vlan_id:
|
||||
get_param: StorageNetworkVlanID
|
||||
device: bridge_name
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: StorageIpSubnet
|
||||
routes:
|
||||
get_param: StorageInterfaceRoutes
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
vlan_id:
|
||||
get_param: StorageMgmtNetworkVlanID
|
||||
device: bridge_name
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: StorageMgmtIpSubnet
|
||||
routes:
|
||||
get_param: StorageMgmtInterfaceRoutes
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
vlan_id:
|
||||
get_param: TenantNetworkVlanID
|
||||
device: bridge_name
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: TenantIpSubnet
|
||||
routes:
|
||||
get_param: TenantInterfaceRoutes
|
||||
# Uncomment when including environments/network-management.yaml
|
||||
# If setting default route on the Management interface, comment
|
||||
# out the default route on the External interface. This will
|
||||
# make the External API unreachable from remote subnets.
|
||||
#- type: vlan
|
||||
# mtu:
|
||||
# get_attr: [MinViableMtu, value]
|
||||
# vlan_id:
|
||||
# get_param: ManagementNetworkVlanID
|
||||
# device: bridge_name
|
||||
# addresses:
|
||||
# - ip_netmask:
|
||||
# get_param: ManagementIpSubnet
|
||||
# routes:
|
||||
# list_concat_unique:
|
||||
# - get_param: ManagementInterfaceRoutes
|
||||
# - - default: true
|
||||
# next_hop:
|
||||
# get_param: ManagementInterfaceDefaultRoute
|
||||
outputs:
|
||||
OS::stack_id:
|
||||
description: The OsNetConfigImpl resource.
|
||||
value:
|
||||
get_resource: OsNetConfigImpl
|
||||
|
@ -30,6 +30,14 @@ Same as above except set the following value for the controller role:
|
||||
|
||||
OS::TripleO::Controller::Net::SoftwareConfig: network/config/single-nic-vlans/controller-no-external.yaml
|
||||
|
||||
Configuration with IPv6 Networks
|
||||
--------------------------------
|
||||
|
||||
There is no longer a requirement to use controller-v6.yaml for Controller nodes
|
||||
when deploying with IPv6. You may now define both an IPv4 network and an IPv6
|
||||
network as default routes by adding both networks to the default_route_networks
|
||||
list for the Controller role in roles_data.yaml.
|
||||
|
||||
Configuration with System Management Network
|
||||
--------------------------------------------
|
||||
|
||||
|
@ -1,209 +0,0 @@
|
||||
heat_template_version: rocky
|
||||
description: >
|
||||
Software Config to drive os-net-config to configure VLANs for the controller role with IPv6 on the External network. The
|
||||
IPv6 default route is on the External network, and the IPv4 default route is on the Control Plane.
|
||||
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
|
||||
{% for network in networks %}
|
||||
{{network.name}}IpSubnet:
|
||||
default: ''
|
||||
description: IP address/subnet on the {{network.name_lower}} network
|
||||
type: string
|
||||
{{network.name}}NetworkVlanID:
|
||||
default: {{network.vlan|default(1)}}
|
||||
description: Vlan ID for the {{network.name_lower}} network traffic.
|
||||
type: number
|
||||
{{network.name}}Mtu:
|
||||
default: {{network.mtu|default('1500')}}
|
||||
description: The maximum transmission unit (MTU) size(in bytes) that is
|
||||
guaranteed to pass through the data path of the segments in the
|
||||
{{network.name}} network.
|
||||
type: number
|
||||
{{network.name}}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
|
||||
{%- endfor %}
|
||||
ExternalInterfaceDefaultRoute:
|
||||
default: ''
|
||||
description: default route for the external network
|
||||
type: string
|
||||
DnsServers: # Override this via parameter_defaults
|
||||
default: []
|
||||
description: >
|
||||
DNS servers to use for the Overcloud (2 max for some implementations).
|
||||
If not set the nameservers configured in the ctlplane subnet's
|
||||
dns_nameservers attribute will be used.
|
||||
type: comma_delimited_list
|
||||
DnsSearchDomains: # Override this via parameter_defaults
|
||||
default: []
|
||||
description: A list of DNS search domains to be added (in order) to resolv.conf.
|
||||
type: comma_delimited_list
|
||||
|
||||
resources:
|
||||
|
||||
MinViableMtu:
|
||||
# This resource resolves the minimum viable MTU for interfaces, bonds and
|
||||
# bridges that carry multiple VLANs. Each VLAN may have different MTU. The
|
||||
# bridge, bond or interface must have an MTU to allow the VLAN with the
|
||||
# largest MTU.
|
||||
type: OS::Heat::Value
|
||||
properties:
|
||||
type: number
|
||||
value:
|
||||
yaql:
|
||||
expression: $.data.max()
|
||||
data:
|
||||
- {get_param: ControlPlaneMtu}
|
||||
{%- for network in networks if network.enabled|default(true) %}
|
||||
- {get_param: {{network.name}}Mtu}
|
||||
{%- endfor %}
|
||||
|
||||
OsNetConfigImpl:
|
||||
type: OS::Heat::SoftwareConfig
|
||||
properties:
|
||||
group: script
|
||||
config:
|
||||
str_replace:
|
||||
template:
|
||||
get_file: ../../scripts/run-os-net-config.sh
|
||||
params:
|
||||
$network_config:
|
||||
network_config:
|
||||
- type: ovs_bridge
|
||||
name: bridge_name
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
use_dhcp: false
|
||||
dns_servers:
|
||||
get_param: DnsServers
|
||||
domain:
|
||||
get_param: DnsSearchDomains
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
list_join:
|
||||
- /
|
||||
- - get_param: ControlPlaneIp
|
||||
- get_param: ControlPlaneSubnetCidr
|
||||
routes:
|
||||
list_concat_unique:
|
||||
- get_param: ControlPlaneStaticRoutes
|
||||
- - default: true # NOTE(hjensas): This is the IPv4 default route
|
||||
next_hop:
|
||||
get_param: ControlPlaneDefaultRoute
|
||||
members:
|
||||
- type: interface
|
||||
name: nic1
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
primary: true
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
vlan_id:
|
||||
get_param: ExternalNetworkVlanID
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: ExternalIpSubnet
|
||||
routes:
|
||||
list_concat_unique:
|
||||
- get_param: ExternalInterfaceRoutes
|
||||
- - default: true # NOTE(hjensas): This is the IPv6 default route
|
||||
next_hop:
|
||||
get_param: ExternalInterfaceDefaultRoute
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
vlan_id:
|
||||
get_param: InternalApiNetworkVlanID
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: InternalApiIpSubnet
|
||||
routes:
|
||||
get_param: InternalApiInterfaceRoutes
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
vlan_id:
|
||||
get_param: StorageNetworkVlanID
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: StorageIpSubnet
|
||||
routes:
|
||||
get_param: StorageInterfaceRoutes
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
vlan_id:
|
||||
get_param: StorageMgmtNetworkVlanID
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: StorageMgmtIpSubnet
|
||||
routes:
|
||||
get_param: StorageMgmtInterfaceRoutes
|
||||
- type: vlan
|
||||
mtu:
|
||||
get_attr: [MinViableMtu, value]
|
||||
vlan_id:
|
||||
get_param: TenantNetworkVlanID
|
||||
addresses:
|
||||
- ip_netmask:
|
||||
get_param: TenantIpSubnet
|
||||
routes:
|
||||
get_param: TenantInterfaceRoutes
|
||||
# Uncomment when including environments/network-management.yaml
|
||||
# If setting default route on the Management interface, comment
|
||||
# out the default route on the External interface. This will
|
||||
# make the External API unreachable from remote subnets.
|
||||
#- type: vlan
|
||||
# mtu:
|
||||
# get_attr: [MinViableMtu, value]
|
||||
# vlan_id:
|
||||
# get_param: ManagementNetworkVlanID
|
||||
# addresses:
|
||||
# - ip_netmask:
|
||||
# get_param: ManagementIpSubnet
|
||||
# routes:
|
||||
# list_concat_unique:
|
||||
# - get_param: ManagementInterfaceRoutes
|
||||
# - - default: true
|
||||
# next_hop:
|
||||
# get_param: ManagementInterfaceDefaultRoute
|
||||
outputs:
|
||||
OS::stack_id:
|
||||
description: The OsNetConfigImpl resource.
|
||||
value:
|
||||
get_resource: OsNetConfigImpl
|
||||
|
Loading…
Reference in New Issue
Block a user