This repository has been archived by the owner on Feb 29, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 178
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge "Add a version of the multiple-nics templates with tagged VLANs"
- Loading branch information
Showing
4 changed files
with
488 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# This template configures each role to use a separate NIC for | ||
# each isolated network with tagged VLANs on each NIC. | ||
# 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.yaml. | ||
# | ||
resource_registry: | ||
{%- for role in roles %} | ||
# Network configuration assignments for the {{role.name}} | ||
OS::TripleO::{{role.name}}::Net::SoftwareConfig: ../network/config/multiple-nics-vlans/{{role.deprecated_nic_config_name|default(role.name.lower() ~ ".yaml")}} | ||
{%- endfor %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
This directory contains Heat templates to help configure | ||
multiple NICs for each Overcloud role, where it is | ||
assumed that each NIC is running a specific network | ||
traffic type with tagged VLANs. | ||
|
||
Configuration | ||
------------- | ||
|
||
To make use of these templates create a Heat environment that looks | ||
something like this: | ||
|
||
resource\_registry: | ||
OS::TripleO::BlockStorage::Net::SoftwareConfig: network/config/multiple-nics/cinder-storage.yaml | ||
OS::TripleO::Compute::Net::SoftwareConfig: network/config/multiple-nics/compute.yaml | ||
OS::TripleO::Controller::Net::SoftwareConfig: network/config/multiple-nics/controller.yaml | ||
OS::TripleO::ObjectStorage::Net::SoftwareConfig: network/config/multiple-nics/swift-storage.yaml | ||
OS::TripleO::CephStorage::Net::SoftwareConfig: network/config/multiple-nics/ceph-storage.yaml | ||
|
||
Or use this Heat environment file: | ||
|
||
environments/net-multiple-nics-vlans.yaml | ||
|
||
Configuration with System Management Network | ||
-------------------------------------------- | ||
|
||
The Management network is enabled for backwards-compatibility, but | ||
is not included in any roles by default. To enable the optional System | ||
Management network, create a Heat environment that looks something like | ||
this: | ||
|
||
resource\_registry: | ||
OS::TripleO::Network::Management: ../network/management.yaml | ||
OS::TripleO::Controller::Ports::ManagementPort: ../network/ports/management.yaml | ||
OS::TripleO::Compute::Ports::ManagementPort: ../network/ports/management.yaml | ||
OS::TripleO::CephStorage::Ports::ManagementPort: ../network/ports/management.yaml | ||
OS::TripleO::ObjectStorage::Ports::ManagementPort: ../network/ports/management.yaml | ||
OS::TripleO::BlockStorage::Ports::ManagementPort: ../network/ports/management.yaml | ||
|
||
Or use this Heat environment file: | ||
|
||
environments/network-management.yaml | ||
|
||
Or, add the network to the list of networks used by each role in the role | ||
definition file (e.g. roles_data.yaml). Refer to installation documentation | ||
for procedure to generate a role file for custom roles. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,198 @@ | ||
# FIXME: This legacy template should be converted to a composable role | ||
heat_template_version: rocky | ||
description: > | ||
Software Config to drive os-net-config to configure multiple interfaces for the | ||
compute role with external bridge for DVR. | ||
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 %} | ||
# Uncomment when including environments/network-management.yaml and setting | ||
# default route on the Management interface. Also comment out the default | ||
# route on the Control Plane and add the Management network to the roles | ||
# default_route_networks in roles data. | ||
# ManagementInterfaceDefaultRoute: | ||
# default: '' | ||
# description: default route for the management 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 | ||
next_hop: | ||
get_param: ControlPlaneDefaultRoute | ||
- type: interface | ||
name: nic2 | ||
mtu: | ||
get_param: StorageMtu | ||
use_dhcp: false | ||
- type: vlan | ||
device: nic2 | ||
mtu: | ||
get_param: StorageMtu | ||
vlan_id: | ||
get_param: StorageNetworkVlanID | ||
addresses: | ||
- ip_netmask: | ||
get_param: StorageIpSubnet | ||
routes: | ||
get_param: StorageInterfaceRoutes | ||
- type: interface | ||
name: nic4 | ||
mtu: | ||
get_param: InternalApiMtu | ||
use_dhcp: false | ||
- type: vlan | ||
device: nic4 | ||
mtu: | ||
get_param: InternalApiMtu | ||
vlan_id: | ||
get_param: InternalApiNetworkVlanID | ||
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 | ||
# External bridge for DVR (no IP address required) | ||
- type: ovs_bridge | ||
name: bridge_name | ||
mtu: | ||
get_param: ExternalMtu | ||
dns_servers: | ||
get_param: DnsServers | ||
use_dhcp: false | ||
members: | ||
- type: interface | ||
name: nic6 | ||
mtu: | ||
get_param: ExternalMtu | ||
primary: true | ||
# Uncomment when including environments/network-management.yaml | ||
# If setting default route on the Management interface, comment | ||
# out the default route on the Control Plane. | ||
#- 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 | ||
|
Oops, something went wrong.