Apply os-net-config with a script instead of element

Wire in os-net-config via a normal script heat deployment, which has the
following advantages:

1. Improved error path, currently o-a-c deployments don't report any
errors, thus hang and eventually the deployment times out

2. It's far more hackable from a deployer perspective, e.g it's
much easier to change the os-net-config options or include a
mapping file

3. Reduces our dependencies on o-a-c (it's only os-net-config and hiera
which requires it), although the script does currently still use oac to
get the metadata IP.

4. May enable passing os-net-config yaml via a json parameter in future,
reducing the need for resource_registry mappings (although we'll have to
support that for backwards compatibility)

The script used is based directly on 20-os-net-config (from t-i-e
at cf94c5e, we can probably improve this now that we have an error path,
but for this initial commit it's a straight copy other than the changes to
replace o-a-c for rendering the json config file.

Co-Authored-By: Steven Hardy <shardy@redhat.com>

Change-Id: I0ed08332cfc49a579de2e83960f0d8047690b97a
This commit is contained in:
Dan Prince 2016-11-23 10:39:11 -05:00
parent d1deaae25f
commit 2985cd9a3a
35 changed files with 2137 additions and 1841 deletions

View File

@ -1,20 +1,22 @@
heat_template_version: 2016-10-14
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config with 2 bonded nics on a bridge.
parameters:
BondInterfaceOvsOptions:
default: ''
description: |
The ovs_options string for the bond interface. Set things like
description: 'The ovs_options string for the bond interface. Set things like
lacp=active and/or bond_mode=balance-slb using this option.
'
type: string
constraints:
- allowed_pattern: "^((?!balance.tcp).)*$"
description: |
The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
- allowed_pattern: ^((?!balance.tcp).)*$
description: 'The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
'
ControlPlaneIp:
default: ''
description: IP address/subnet on the ctlplane network
@ -43,34 +45,35 @@ parameters:
default: ''
description: IP address/subnet on the management network
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: ovs_bridge
name: {get_input: bridge_name}
use_dhcp: true
members:
-
type: ovs_bond
str_replace:
template:
get_file: network/scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: bridge_name
use_dhcp: true
members:
- type: ovs_bond
name: bond1
use_dhcp: true
ovs_options: {get_param: BondInterfaceOvsOptions}
ovs_options:
get_param: BondInterfaceOvsOptions
members:
-
type: interface
name: nic1
-
type: interface
name: nic2
- type: interface
name: nic1
- type: interface
name: nic2
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,8 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config for a simple bridge.
parameters:
ControlPlaneIp:
default: ''
@ -32,27 +30,29 @@ parameters:
default: ''
description: IP address/subnet on the management network
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: ovs_bridge
name: {get_input: bridge_name}
use_dhcp: true
members:
-
type: interface
name: {get_input: interface_name}
str_replace:
template:
get_file: network/scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: bridge_name
use_dhcp: true
members:
- type: interface
name: interface_name
# force the MAC address of the bridge to this interface
primary: true
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,8 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config for a simple bridge.
parameters:
ControlPlaneIp:
default: ''
@ -35,43 +33,45 @@ parameters:
ControlPlaneDefaultRoute: # Override this via parameter_defaults
description: The default route of the control plane network.
type: string
default: '192.0.2.1'
default: 192.0.2.1
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
default: '169.254.169.254/32'
default: 169.254.169.254/32
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: linux_bridge
name: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: ControlPlaneIp}
members:
-
type: interface
name: {get_input: interface_name}
str_replace:
template:
get_file: network/scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: linux_bridge
name: bridge_name
addresses:
- ip_netmask:
get_param: ControlPlaneIp
members:
- type: interface
name: interface_name
# force the MAC address of the bridge to this interface
primary: true
routes:
-
ip_netmask: 0.0.0.0/0
next_hop: {get_param: ControlPlaneDefaultRoute}
routes:
- ip_netmask: 0.0.0.0/0
next_hop:
get_param: ControlPlaneDefaultRoute
default: true
-
ip_netmask: {get_param: EC2MetadataIp}
next_hop: {get_param: ControlPlaneDefaultRoute}
- ip_netmask:
get_param: EC2MetadataIp
next_hop:
get_param: ControlPlaneDefaultRoute
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config for a simple bridge configured
with a static IP address for the ctlplane network.
Software Config to drive os-net-config for a simple bridge configured with a static IP address for the ctlplane network.
parameters:
ControlPlaneIp:
default: ''
@ -47,44 +44,44 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: ovs_bridge
name: {get_input: bridge_name}
use_dhcp: true
members:
-
type: interface
name: {get_input: interface_name}
str_replace:
template:
get_file: network/scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: bridge_name
use_dhcp: true
members:
- type: interface
name: interface_name
# force the MAC address of the bridge to this interface
primary: true
-
type: interface
name: br-ex:0
addresses:
-
ip_netmask:
- type: interface
name: br-ex:0
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config for a simple bridge configured
with a static IP address for the ctlplane network.
Software Config to drive os-net-config for a simple bridge configured with a static IP address for the ctlplane network.
parameters:
ControlPlaneIp:
default: ''
@ -47,42 +44,44 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: ovs_bridge
name: {get_input: bridge_name}
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: network/scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: bridge_name
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
name: {get_input: interface_name}
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: interface_name
# force the MAC address of the bridge to this interface
primary: true
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,8 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config for a simple bridge.
parameters:
ControlPlaneIp:
default: ''
@ -46,37 +44,39 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: {get_input: interface_name}
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: network/scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: interface_name
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config with 2 bonded nics on a bridge
with VLANs attached for the ceph storage role.
Software Config to drive os-net-config with 2 bonded nics on a bridge with VLANs attached for the ceph storage role.
parameters:
ControlPlaneIp:
default: ''
@ -35,14 +32,16 @@ parameters:
type: string
BondInterfaceOvsOptions:
default: ''
description: The ovs_options string for the bond interface. Set things like
lacp=active and/or bond_mode=balance-slb using this option.
description: The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using
this option.
type: string
constraints:
- allowed_pattern: "^((?!balance.tcp).)*$"
description: |
The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
- allowed_pattern: ^((?!balance.tcp).)*$
description: 'The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
'
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
@ -75,7 +74,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -89,64 +88,63 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: ovs_bridge
name: br-bond
members:
-
type: ovs_bond
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: ovs_bridge
name: br-bond
members:
- type: ovs_bond
name: bond1
ovs_options: {get_param: BondInterfaceOvsOptions}
ovs_options:
get_param: BondInterfaceOvsOptions
members:
-
type: interface
name: nic2
primary: true
-
type: interface
name: nic3
-
type: vlan
- type: interface
name: nic2
primary: true
- type: interface
name: nic3
- type: vlan
device: bond1
vlan_id: {get_param: StorageNetworkVlanID}
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageMgmtNetworkVlanID}
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- ip_netmask:
get_param: StorageMgmtIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -161,8 +159,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config with 2 bonded nics on a bridge
with VLANs attached for the cinder storage role.
Software Config to drive os-net-config with 2 bonded nics on a bridge with VLANs attached for the cinder storage role.
parameters:
ControlPlaneIp:
default: ''
@ -35,14 +32,16 @@ parameters:
type: string
BondInterfaceOvsOptions:
default: ''
description: The ovs_options string for the bond interface. Set things like
lacp=active and/or bond_mode=balance-slb using this option.
description: The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using
this option.
type: string
constraints:
- allowed_pattern: "^((?!balance.tcp).)*$"
description: |
The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
- allowed_pattern: ^((?!balance.tcp).)*$
description: 'The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
'
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
@ -75,7 +74,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -89,71 +88,70 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: ovs_bridge
name: br-bond
members:
-
type: ovs_bond
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: ovs_bridge
name: br-bond
members:
- type: ovs_bond
name: bond1
ovs_options: {get_param: BondInterfaceOvsOptions}
ovs_options:
get_param: BondInterfaceOvsOptions
members:
-
type: interface
name: nic2
primary: true
-
type: interface
name: nic3
-
type: vlan
- type: interface
name: nic2
primary: true
- type: interface
name: nic3
- type: vlan
device: bond1
vlan_id: {get_param: InternalApiNetworkVlanID}
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageNetworkVlanID}
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageMgmtNetworkVlanID}
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- ip_netmask:
get_param: StorageMgmtIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -168,8 +166,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config with 2 bonded nics on a bridge
with VLANs attached for the compute role.
Software Config to drive os-net-config with 2 bonded nics on a bridge with VLANs attached for the compute role.
parameters:
ControlPlaneIp:
default: ''
@ -35,8 +32,8 @@ parameters:
type: string
BondInterfaceOvsOptions:
default: ''
description: The ovs_options string for the bond interface. Set things like
lacp=active and/or bond_mode=balance-slb using this option.
description: The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using
this option.
type: string
ExternalNetworkVlanID:
default: 10
@ -70,7 +67,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -84,71 +81,70 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: ovs_bridge
name: {get_input: bridge_name}
members:
-
type: ovs_bond
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: ovs_bridge
name: bridge_name
members:
- type: ovs_bond
name: bond1
ovs_options: {get_param: BondInterfaceOvsOptions}
ovs_options:
get_param: BondInterfaceOvsOptions
members:
-
type: interface
name: nic2
primary: true
-
type: interface
name: nic3
-
type: vlan
- type: interface
name: nic2
primary: true
- type: interface
name: nic3
- type: vlan
device: bond1
vlan_id: {get_param: InternalApiNetworkVlanID}
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageNetworkVlanID}
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: TenantNetworkVlanID}
vlan_id:
get_param: TenantNetworkVlanID
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- ip_netmask:
get_param: TenantIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -163,30 +159,25 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
-
type: ovs_user_bridge
name: br-link
members:
-
type: ovs_dpdk_bond
- type: ovs_user_bridge
name: br-link
members:
- type: ovs_dpdk_bond
name: dpdkbond0
members:
-
type: ovs_dpdk_port
name: dpdk0
members:
-
type: interface
name: nic4
-
type: ovs_dpdk_port
name: dpdk1
members:
-
type: interface
name: nic5
- type: ovs_dpdk_port
name: dpdk0
members:
- type: interface
name: nic4
- type: ovs_dpdk_port
name: dpdk1
members:
- type: interface
name: nic5
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config with 2 bonded nics on a bridge
with VLANs attached for the compute role.
Software Config to drive os-net-config with 2 bonded nics on a bridge with VLANs attached for the compute role.
parameters:
ControlPlaneIp:
default: ''
@ -35,14 +32,16 @@ parameters:
type: string
BondInterfaceOvsOptions:
default: ''
description: The ovs_options string for the bond interface. Set things like
lacp=active and/or bond_mode=balance-slb using this option.
description: The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using
this option.
type: string
constraints:
- allowed_pattern: "^((?!balance.tcp).)*$"
description: |
The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
- allowed_pattern: ^((?!balance.tcp).)*$
description: 'The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
'
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
@ -75,7 +74,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -89,71 +88,70 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: ovs_bridge
name: {get_input: bridge_name}
members:
-
type: ovs_bond
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: ovs_bridge
name: bridge_name
members:
- type: ovs_bond
name: bond1
ovs_options: {get_param: BondInterfaceOvsOptions}
ovs_options:
get_param: BondInterfaceOvsOptions
members:
-
type: interface
name: nic2
primary: true
-
type: interface
name: nic3
-
type: vlan
- type: interface
name: nic2
primary: true
- type: interface
name: nic3
- type: vlan
device: bond1
vlan_id: {get_param: InternalApiNetworkVlanID}
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageNetworkVlanID}
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: TenantNetworkVlanID}
vlan_id:
get_param: TenantNetworkVlanID
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- ip_netmask:
get_param: TenantIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -168,8 +166,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config with 2 bonded nics on a bridge
with VLANs attached for the controller role.
Software Config to drive os-net-config with 2 bonded nics on a bridge with VLANs attached for the controller role.
parameters:
ControlPlaneIp:
default: ''
@ -35,14 +32,16 @@ parameters:
type: string
BondInterfaceOvsOptions:
default: ''
description: The ovs_options string for the bond interface. Set things like
lacp=active and/or bond_mode=balance-slb using this option.
description: The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using
this option.
type: string
constraints:
- allowed_pattern: "^((?!balance.tcp).)*$"
description: |
The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
- allowed_pattern: ^((?!balance.tcp).)*$
description: 'The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
'
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
@ -71,7 +70,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
default: 10.0.0.1
description: default route for the external network
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -89,79 +88,76 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: ovs_bridge
name: {get_input: bridge_name}
use_dhcp: true
members:
-
type: ovs_bond
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: ovs_bridge
name: bridge_name
use_dhcp: true
members:
- type: ovs_bond
name: bond1
ovs_options: {get_param: BondInterfaceOvsOptions}
ovs_options:
get_param: BondInterfaceOvsOptions
members:
-
type: interface
name: nic2
primary: true
-
type: interface
name: nic3
-
type: vlan
- type: interface
name: nic2
primary: true
- type: interface
name: nic3
- type: vlan
device: bond1
vlan_id: {get_param: InternalApiNetworkVlanID}
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageNetworkVlanID}
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageMgmtNetworkVlanID}
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: vlan
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: TenantNetworkVlanID}
vlan_id:
get_param: TenantNetworkVlanID
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- ip_netmask:
get_param: TenantIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -176,8 +172,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,11 +1,8 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
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.
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: ''
@ -36,15 +33,17 @@ parameters:
description: IP address/subnet on the management network
type: string
BondInterfaceOvsOptions:
default: 'bond_mode=active-backup'
description: The ovs_options string for the bond interface. Set things like
lacp=active and/or bond_mode=balance-slb using this option.
default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using
this option.
type: string
constraints:
- allowed_pattern: "^((?!balance.tcp).)*$"
description: |
The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
- allowed_pattern: ^((?!balance.tcp).)*$
description: 'The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
'
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
@ -77,7 +76,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
default: 10.0.0.1
description: default route for the external network
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -91,89 +90,88 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: ovs_bridge
name: {get_input: bridge_name}
dns_servers: {get_param: DnsServers}
members:
-
type: ovs_bond
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: ovs_bridge
name: bridge_name
dns_servers:
get_param: DnsServers
members:
- type: ovs_bond
name: bond1
ovs_options: {get_param: BondInterfaceOvsOptions}
ovs_options:
get_param: BondInterfaceOvsOptions
members:
-
type: interface
name: nic2
primary: true
-
type: interface
name: nic3
-
type: vlan
- type: interface
name: nic2
primary: true
- type: interface
name: nic3
- type: vlan
device: bond1
vlan_id: {get_param: ExternalNetworkVlanID}
vlan_id:
get_param: ExternalNetworkVlanID
addresses:
-
ip_netmask: {get_param: ExternalIpSubnet}
- ip_netmask:
get_param: ExternalIpSubnet
routes:
-
default: true
next_hop: {get_param: ExternalInterfaceDefaultRoute}
-
type: vlan
- default: true
next_hop:
get_param: ExternalInterfaceDefaultRoute
- type: vlan
device: bond1
vlan_id: {get_param: InternalApiNetworkVlanID}
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageNetworkVlanID}
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageMgmtNetworkVlanID}
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: vlan
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: TenantNetworkVlanID}
vlan_id:
get_param: TenantNetworkVlanID
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- ip_netmask:
get_param: TenantIpSubnet
# 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
@ -189,8 +187,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config with 2 bonded nics on a bridge
with VLANs attached for the controller role.
Software Config to drive os-net-config with 2 bonded nics on a bridge with VLANs attached for the controller role.
parameters:
ControlPlaneIp:
default: ''
@ -34,15 +31,17 @@ parameters:
description: IP address/subnet on the management network
type: string
BondInterfaceOvsOptions:
default: 'bond_mode=active-backup'
description: The ovs_options string for the bond interface. Set things like
lacp=active and/or bond_mode=balance-slb using this option.
default: bond_mode=active-backup
description: The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using
this option.
type: string
constraints:
- allowed_pattern: "^((?!balance.tcp).)*$"
description: |
The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
- allowed_pattern: ^((?!balance.tcp).)*$
description: 'The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
'
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
@ -71,7 +70,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
default: 10.0.0.1
description: default route for the external network
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -89,86 +88,85 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
type: ovs_bridge
name: {get_input: bridge_name}
dns_servers: {get_param: DnsServers}
members:
-
type: ovs_bond
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- type: ovs_bridge
name: bridge_name
dns_servers:
get_param: DnsServers
members:
- type: ovs_bond
name: bond1
ovs_options: {get_param: BondInterfaceOvsOptions}
ovs_options:
get_param: BondInterfaceOvsOptions
members:
-
type: interface
name: nic2
primary: true
-
type: interface
name: nic3
-
type: vlan
- type: interface
name: nic2
primary: true
- type: interface
name: nic3
- type: vlan
device: bond1
vlan_id: {get_param: ExternalNetworkVlanID}
vlan_id:
get_param: ExternalNetworkVlanID
addresses:
-
ip_netmask: {get_param: ExternalIpSubnet}
- ip_netmask:
get_param: ExternalIpSubnet
routes:
-
default: true
next_hop: {get_param: ExternalInterfaceDefaultRoute}
-
type: vlan
- default: true
next_hop:
get_param: ExternalInterfaceDefaultRoute
- type: vlan
device: bond1
vlan_id: {get_param: InternalApiNetworkVlanID}
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageNetworkVlanID}
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageMgmtNetworkVlanID}
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: vlan
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: TenantNetworkVlanID}
vlan_id:
get_param: TenantNetworkVlanID
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- ip_netmask:
get_param: TenantIpSubnet
# 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
@ -184,8 +182,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config with 2 bonded nics on a bridge
with VLANs attached for the swift storage role.
Software Config to drive os-net-config with 2 bonded nics on a bridge with VLANs attached for the swift storage role.
parameters:
ControlPlaneIp:
default: ''
@ -35,14 +32,16 @@ parameters:
type: string
BondInterfaceOvsOptions:
default: ''
description: The ovs_options string for the bond interface. Set things like
lacp=active and/or bond_mode=balance-slb using this option.
description: The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using
this option.
type: string
constraints:
- allowed_pattern: "^((?!balance.tcp).)*$"
description: |
The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
- allowed_pattern: ^((?!balance.tcp).)*$
description: 'The balance-tcp bond mode is known to cause packet loss and
should not be used in BondInterfaceOvsOptions.
'
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
@ -75,7 +74,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -89,71 +88,70 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: ovs_bridge
name: br-bond
members:
-
type: ovs_bond
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: ovs_bridge
name: br-bond
members:
- type: ovs_bond
name: bond1
ovs_options: {get_param: BondInterfaceOvsOptions}
ovs_options:
get_param: BondInterfaceOvsOptions
members:
-
type: interface
name: nic2
primary: true
-
type: interface
name: nic3
-
type: vlan
- type: interface
name: nic2
primary: true
- type: interface
name: nic3
- type: vlan
device: bond1
vlan_id: {get_param: InternalApiNetworkVlanID}
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageNetworkVlanID}
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
device: bond1
vlan_id: {get_param: StorageMgmtNetworkVlanID}
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- ip_netmask:
get_param: StorageMgmtIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -168,8 +166,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure multiple interfaces
for the ceph storage role.
Software Config to drive os-net-config to configure multiple interfaces for the ceph storage role.
parameters:
ControlPlaneIp:
default: ''
@ -65,7 +62,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,48 +76,48 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: interface
name: nic2
use_dhcp: false
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: interface
name: nic3
use_dhcp: false
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: interface
name: nic2
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: interface
name: nic3
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageMgmtIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -135,8 +132,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure multiple interfaces
for the cinder storage role.
Software Config to drive os-net-config to configure multiple interfaces for the cinder storage role.
parameters:
ControlPlaneIp:
default: ''
@ -65,7 +62,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,55 +76,54 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: interface
name: nic2
use_dhcp: false
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: interface
name: nic3
use_dhcp: false
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: interface
name: nic4
use_dhcp: false
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: interface
name: nic2
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: interface
name: nic3
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: interface
name: nic4
use_dhcp: false
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -142,8 +138,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure multiple interfaces
for the compute role.
Software Config to drive os-net-config to configure multiple interfaces for the compute role.
parameters:
ControlPlaneIp:
default: ''
@ -65,7 +62,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,58 +76,56 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: interface
name: nic2
use_dhcp: false
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: interface
name: nic4
use_dhcp: false
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: ovs_bridge
name: br-tenant
use_dhcp: false
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: interface
name: nic2
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: interface
name: nic4
use_dhcp: false
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
- type: ovs_bridge
name: br-tenant
use_dhcp: false
addresses:
- ip_netmask:
get_param: TenantIpSubnet
members:
- type: interface
name: nic5
use_dhcp: false
primary: true
@ -148,8 +143,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,11 +1,7 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
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.
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: ''
@ -67,7 +63,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
default: 10.0.0.1
description: default route for the external network
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -81,84 +77,80 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
# IPv4 Default Route
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: interface
name: nic2
use_dhcp: false
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: interface
name: nic3
use_dhcp: false
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: interface
name: nic4
use_dhcp: false
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: ovs_bridge
name: br-tenant
use_dhcp: false
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
members:
-
type: interface
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: interface
name: nic2
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: interface
name: nic3
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: interface
name: nic4
use_dhcp: false
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
- type: ovs_bridge
name: br-tenant
use_dhcp: false
addresses:
- ip_netmask:
get_param: TenantIpSubnet
members:
- type: interface
name: nic5
use_dhcp: false
primary: true
-
type: ovs_bridge
name: {get_input: bridge_name}
dns_servers: {get_param: DnsServers}
use_dhcp: false
addresses:
-
ip_netmask: {get_param: ExternalIpSubnet}
routes:
-
default: true
next_hop: {get_param: ExternalInterfaceDefaultRoute}
members:
-
type: interface
- type: ovs_bridge
name: bridge_name
dns_servers:
get_param: DnsServers
use_dhcp: false
addresses:
- ip_netmask:
get_param: ExternalIpSubnet
routes:
- default: true
next_hop:
get_param: ExternalInterfaceDefaultRoute
members:
- type: interface
name: nic6
primary: true
# Uncomment when including environments/network-management.yaml
@ -176,8 +168,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure multiple interfaces
for the controller role.
Software Config to drive os-net-config to configure multiple interfaces for the controller role.
parameters:
ControlPlaneIp:
default: ''
@ -65,7 +62,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
default: 10.0.0.1
description: default route for the external network
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,80 +76,76 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
type: interface
name: nic2
use_dhcp: false
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: interface
name: nic3
use_dhcp: false
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: interface
name: nic4
use_dhcp: false
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: ovs_bridge
name: br-tenant
use_dhcp: false
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- type: interface
name: nic2
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: interface
name: nic3
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: interface
name: nic4
use_dhcp: false
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
- type: ovs_bridge
name: br-tenant
use_dhcp: false
addresses:
- ip_netmask:
get_param: TenantIpSubnet
members:
- type: interface
name: nic5
use_dhcp: false
primary: true
-
type: ovs_bridge
name: {get_input: bridge_name}
dns_servers: {get_param: DnsServers}
use_dhcp: false
addresses:
-
ip_netmask: {get_param: ExternalIpSubnet}
routes:
-
default: true
next_hop: {get_param: ExternalInterfaceDefaultRoute}
members:
-
type: interface
- type: ovs_bridge
name: bridge_name
dns_servers:
get_param: DnsServers
use_dhcp: false
addresses:
- ip_netmask:
get_param: ExternalIpSubnet
routes:
- default: true
next_hop:
get_param: ExternalInterfaceDefaultRoute
members:
- type: interface
name: nic6
primary: true
# Uncomment when including environments/network-management.yaml
@ -170,8 +163,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure multiple interfaces
for the swift storage role.
Software Config to drive os-net-config to configure multiple interfaces for the swift storage role.
parameters:
ControlPlaneIp:
default: ''
@ -65,7 +62,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,55 +76,54 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: interface
name: nic1
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: interface
name: nic1
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
-
type: interface
name: nic2
use_dhcp: false
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: interface
name: nic3
use_dhcp: false
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: interface
name: nic4
use_dhcp: false
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
- type: interface
name: nic2
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: interface
name: nic3
use_dhcp: false
addresses:
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: interface
name: nic4
use_dhcp: false
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -142,8 +138,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure VLANs for the
ceph storage role.
Software Config to drive os-net-config to configure VLANs for the ceph storage role.
parameters:
ControlPlaneIp:
default: ''
@ -65,7 +62,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,54 +76,55 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: linux_bridge
name: br-storage
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: linux_bridge
name: br-storage
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: nic1
# force the MAC address of the bridge to this interface
primary: true
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
device: br-storage
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageMgmtNetworkVlanID}
device: br-storage
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
device: br-storage
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: StorageMgmtNetworkVlanID
device: br-storage
addresses:
- ip_netmask:
get_param: StorageMgmtIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -141,8 +139,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure VLANs for the
cinder storage role.
Software Config to drive os-net-config to configure VLANs for the cinder storage role.
parameters:
ControlPlaneIp:
default: ''
@ -65,7 +62,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,61 +76,62 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: linux_bridge
name: br-storage
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: linux_bridge
name: br-storage
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: nic1
# force the MAC address of the bridge to this interface
primary: true
-
type: vlan
vlan_id: {get_param: InternalApiNetworkVlanID}
device: br-storage
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
device: br-storage
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageMgmtNetworkVlanID}
device: br-storage
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
device: br-storage
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
device: br-storage
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: StorageMgmtNetworkVlanID
device: br-storage
addresses:
- ip_netmask:
get_param: StorageMgmtIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -148,8 +146,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure VLANs for the
compute role.
Software Config to drive os-net-config to configure VLANs for the compute role.
parameters:
ControlPlaneIp:
default: ''
@ -65,7 +62,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,68 +76,69 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: linux_bridge
name: {get_input: bridge_name}
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: linux_bridge
name: bridge_name
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
name: {get_input: interface_name}
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: interface_name
# force the MAC address of the bridge to this interface
primary: true
-
type: vlan
vlan_id: {get_param: InternalApiNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: TenantNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: TenantNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: TenantIpSubnet
# 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: vlan
# vlan_id: {get_param: ManagementNetworkVlanID}
# device: {get_input: bridge_name}
# device: bridge_name
# addresses:
# -
# ip_netmask: {get_param: ManagementIpSubnet}
@ -148,8 +146,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,11 +1,7 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
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.
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: ''
@ -63,7 +59,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
default: 10.0.0.1
description: default route for the external network
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -81,78 +77,79 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: linux_bridge
name: {get_input: bridge_name}
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: linux_bridge
name: bridge_name
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
name: {get_input: interface_name}
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: interface_name
primary: true
-
type: vlan
vlan_id: {get_param: ExternalNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: ExternalIpSubnet}
routes:
-
default: true
next_hop: {get_param: ExternalInterfaceDefaultRoute}
-
type: vlan
vlan_id: {get_param: InternalApiNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageMgmtNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: vlan
vlan_id: {get_param: TenantNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- type: vlan
vlan_id:
get_param: ExternalNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: ExternalIpSubnet
routes:
- default: true
next_hop:
get_param: ExternalInterfaceDefaultRoute
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: StorageMgmtNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: vlan
vlan_id:
get_param: TenantNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: TenantIpSubnet
# 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
@ -160,7 +157,7 @@ resources:
#-
# type: vlan
# vlan_id: {get_param: ManagementNetworkVlanID}
# device: {get_input: bridge_name}
# device: bridge_name
# addresses:
# -
# ip_netmask: {get_param: ManagementIpSubnet}
@ -168,8 +165,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure VLANs for the
controller role.
Software Config to drive os-net-config to configure VLANs for the controller role.
parameters:
ControlPlaneIp:
default: ''
@ -61,7 +58,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
default: 10.0.0.1
description: default route for the external network
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,78 +76,79 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: linux_bridge
name: {get_input: bridge_name}
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: linux_bridge
name: bridge_name
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
name: {get_input: interface_name}
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: interface_name
primary: true
-
type: vlan
vlan_id: {get_param: ExternalNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: ExternalIpSubnet}
routes:
-
default: true
next_hop: {get_param: ExternalInterfaceDefaultRoute}
-
type: vlan
vlan_id: {get_param: InternalApiNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageMgmtNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: vlan
vlan_id: {get_param: TenantNetworkVlanID}
device: {get_input: bridge_name}
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- type: vlan
vlan_id:
get_param: ExternalNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: ExternalIpSubnet
routes:
- default: true
next_hop:
get_param: ExternalInterfaceDefaultRoute
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: StorageMgmtNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: vlan
vlan_id:
get_param: TenantNetworkVlanID
device: bridge_name
addresses:
- ip_netmask:
get_param: TenantIpSubnet
# 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
@ -158,7 +156,7 @@ resources:
#-
# type: vlan
# vlan_id: {get_param: ManagementNetworkVlanID}
# device: {get_input: bridge_name}
# device: bridge_name
# addresses:
# -
# ip_netmask: {get_param: ManagementIpSubnet}
@ -166,8 +164,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure VLANs for the
swift storage role.
Software Config to drive os-net-config to configure VLANs for the swift storage role.
parameters:
ControlPlaneIp:
default: ''
@ -65,7 +62,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,61 +76,62 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: linux_bridge
name: br-storage
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: linux_bridge
name: br-storage
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: nic1
# force the MAC address of the bridge to this interface
primary: true
-
type: vlan
vlan_id: {get_param: InternalApiNetworkVlanID}
device: br-storage
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
device: br-storage
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageMgmtNetworkVlanID}
device: br-storage
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
device: br-storage
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
device: br-storage
addresses:
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: StorageMgmtNetworkVlanID
device: br-storage
addresses:
- ip_netmask:
get_param: StorageMgmtIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -148,8 +146,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure VLANs for the
ceph storage role.
Software Config to drive os-net-config to configure VLANs for the ceph storage role.
parameters:
ControlPlaneIp:
default: ''
@ -53,7 +50,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -67,52 +64,53 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: ovs_bridge
name: br-storage
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: br-storage
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: nic1
# force the MAC address of the bridge to this interface
primary: true
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageMgmtNetworkVlanID}
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- ip_netmask:
get_param: StorageMgmtIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -126,8 +124,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure VLANs for the
cinder storage role.
Software Config to drive os-net-config to configure VLANs for the cinder storage role.
parameters:
ControlPlaneIp:
default: ''
@ -57,7 +54,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -71,58 +68,59 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: ovs_bridge
name: br-storage
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: br-storage
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: nic1
# force the MAC address of the bridge to this interface
primary: true
-
type: vlan
vlan_id: {get_param: InternalApiNetworkVlanID}
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageMgmtNetworkVlanID}
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- ip_netmask:
get_param: StorageMgmtIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -136,8 +134,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure VLANs for the
compute role.
Software Config to drive os-net-config to configure VLANs for the compute role.
parameters:
ControlPlaneIp:
default: ''
@ -57,7 +54,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -71,58 +68,59 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: ovs_bridge
name: {get_input: bridge_name}
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: bridge_name
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: nic1
# force the MAC address of the bridge to this interface
primary: true
-
type: vlan
vlan_id: {get_param: InternalApiNetworkVlanID}
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: TenantNetworkVlanID}
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: TenantNetworkVlanID
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- ip_netmask:
get_param: TenantIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -136,8 +134,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure VLANs for the
controller role. No external IP is configured.
Software Config to drive os-net-config to configure VLANs for the controller role. No external IP is configured.
parameters:
ControlPlaneIp:
default: ''
@ -61,7 +58,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
default: 10.0.0.1
description: default route for the external network
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,64 +76,65 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: ovs_bridge
name: {get_input: bridge_name}
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: bridge_name
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: nic1
# force the MAC address of the bridge to this interface
primary: true
-
type: vlan
vlan_id: {get_param: InternalApiNetworkVlanID}
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageMgmtNetworkVlanID}
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: vlan
vlan_id: {get_param: TenantNetworkVlanID}
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: vlan
vlan_id:
get_param: TenantNetworkVlanID
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- ip_netmask:
get_param: TenantIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -150,8 +148,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,11 +1,7 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
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.
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: ''
@ -67,7 +63,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
default: 10.0.0.1
description: default route for the external network
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -81,73 +77,74 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: ovs_bridge
name: {get_input: bridge_name}
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: bridge_name
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: nic1
primary: true
-
type: vlan
vlan_id: {get_param: ExternalNetworkVlanID}
- type: vlan
vlan_id:
get_param: ExternalNetworkVlanID
addresses:
-
ip_netmask: {get_param: ExternalIpSubnet}
- ip_netmask:
get_param: ExternalIpSubnet
routes:
-
default: true
next_hop: {get_param: ExternalInterfaceDefaultRoute}
-
type: vlan
vlan_id: {get_param: InternalApiNetworkVlanID}
- default: true
next_hop:
get_param: ExternalInterfaceDefaultRoute
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageMgmtNetworkVlanID}
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: vlan
vlan_id: {get_param: TenantNetworkVlanID}
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: vlan
vlan_id:
get_param: TenantNetworkVlanID
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- ip_netmask:
get_param: TenantIpSubnet
# 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
@ -162,8 +159,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure VLANs for the
controller role.
Software Config to drive os-net-config to configure VLANs for the controller role.
parameters:
ControlPlaneIp:
default: ''
@ -61,7 +58,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute:
default: '10.0.0.1'
default: 10.0.0.1
description: default route for the external network
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -79,71 +76,72 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: ovs_bridge
name: {get_input: bridge_name}
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: bridge_name
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
members:
- type: interface
name: nic1
# force the MAC address of the bridge to this interface
primary: true
-
type: vlan
vlan_id: {get_param: ExternalNetworkVlanID}
- type: vlan
vlan_id:
get_param: ExternalNetworkVlanID
addresses:
-
ip_netmask: {get_param: ExternalIpSubnet}
- ip_netmask:
get_param: ExternalIpSubnet
routes:
-
default: true
next_hop: {get_param: ExternalInterfaceDefaultRoute}
-
type: vlan
vlan_id: {get_param: InternalApiNetworkVlanID}
- default: true
next_hop:
get_param: ExternalInterfaceDefaultRoute
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageMgmtNetworkVlanID}
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
-
type: vlan
vlan_id: {get_param: TenantNetworkVlanID}
- ip_netmask:
get_param: StorageMgmtIpSubnet
- type: vlan
vlan_id:
get_param: TenantNetworkVlanID
addresses:
-
ip_netmask: {get_param: TenantIpSubnet}
- ip_netmask:
get_param: TenantIpSubnet
# 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
@ -158,8 +156,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -1,9 +1,6 @@
heat_template_version: 2015-04-30
heat_template_version: '2016-10-14'
description: >
Software Config to drive os-net-config to configure VLANs for the
swift storage role.
Software Config to drive os-net-config to configure VLANs for the swift storage role.
parameters:
ControlPlaneIp:
default: ''
@ -57,7 +54,7 @@ parameters:
description: The default route of the control plane network.
type: string
ExternalInterfaceDefaultRoute: # Not used by default in this template
default: '10.0.0.1'
default: 10.0.0.1
description: The default route of the external network.
type: string
ManagementInterfaceDefaultRoute: # Commented out by default in this template
@ -71,58 +68,59 @@ parameters:
EC2MetadataIp: # Override this via parameter_defaults
description: The IP address of the EC2 metadata server.
type: string
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
type: OS::Heat::SoftwareConfig
properties:
group: os-apply-config
group: script
config:
os_net_config:
network_config:
-
type: ovs_bridge
name: br-storage
use_dhcp: false
dns_servers: {get_param: DnsServers}
addresses:
-
ip_netmask:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: br-storage
use_dhcp: false
dns_servers:
get_param: DnsServers
addresses:
- ip_netmask:
list_join:
- '/'
- - {get_param: ControlPlaneIp}
- {get_param: ControlPlaneSubnetCidr}
routes:
-
ip_netmask: 169.254.169.254/32
next_hop: {get_param: EC2MetadataIp}
-
default: true
next_hop: {get_param: ControlPlaneDefaultRoute}
members:
-
type: interface
- /
- - get_param: ControlPlaneIp
- get_param: ControlPlaneSubnetCidr
routes:
- ip_netmask: 169.254.169.254/32
next_hop:
get_param: EC2MetadataIp
- default: true
next_hop:
get_param: ControlPlaneDefaultRoute
members:
- type: interface
name: nic1
# force the MAC address of the bridge to this interface
primary: true
-
type: vlan
vlan_id: {get_param: InternalApiNetworkVlanID}
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
-
ip_netmask: {get_param: InternalApiIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageNetworkVlanID}
- ip_netmask:
get_param: InternalApiIpSubnet
- type: vlan
vlan_id:
get_param: StorageNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageIpSubnet}
-
type: vlan
vlan_id: {get_param: StorageMgmtNetworkVlanID}
- ip_netmask:
get_param: StorageIpSubnet
- type: vlan
vlan_id:
get_param: StorageMgmtNetworkVlanID
addresses:
-
ip_netmask: {get_param: StorageMgmtIpSubnet}
- ip_netmask:
get_param: StorageMgmtIpSubnet
# Uncomment when including environments/network-management.yaml
# If setting default route on the Management interface, comment
# out the default route on the Control Plane.
@ -136,8 +134,9 @@ resources:
# -
# default: true
# next_hop: {get_param: ManagementInterfaceDefaultRoute}
outputs:
OS::stack_id:
description: The OsNetConfigImpl resource.
value: {get_resource: OsNetConfigImpl}
value:
get_resource: OsNetConfigImpl

View File

@ -0,0 +1,136 @@
#!/bin/bash
# Note this script expects the following environment variables to be set
# normally these are provided by the calling SoftwareConfig resource, but
# they may also be set manually for testing
# $bridge_name : The bridge device name to apply
# $interface_name : The interface name to apply
#
# Also this token is replaced via a str_replace in the SoftwareConfig running
# the script - in future we may extend this to also work with a variable, e.g
# a deployment input via input_values
# $network_config : the json serialized os-net-config config to apply
#
set -ux
function get_metadata_ip() {
local METADATA_IP
# Look for a variety of Heat transports
# FIXME: Heat should provide a way to obtain this in a single place
for URL in os-collect-config.cfn.metadata_url os-collect-config.heat.auth_url os-collect-config.request.metadata_url os-collect-config.zaqar.auth_url; do
METADATA_IP=$(os-apply-config --key $URL --key-default '' --type raw 2>/dev/null | sed -e 's|http.*://\([^:]*\).*|\1|')
[ -n "$METADATA_IP" ] && break
done
echo $METADATA_IP
}
function is_local_ip() {
local IP_TO_CHECK=$1
if ip -o a | grep "inet6\? $IP_TO_CHECK/" &>/dev/null; then
return 0
else
return 1
fi
}
function ping_metadata_ip() {
local METADATA_IP=$(get_metadata_ip)
if [ -n "$METADATA_IP" ] && ! is_local_ip $METADATA_IP; then
echo -n "Trying to ping metadata IP ${METADATA_IP}..."
local COUNT=0
until ping -c 1 $METADATA_IP &> /dev/null; do
COUNT=$(( $COUNT + 1 ))
if [ $COUNT -eq 10 ]; then
echo "FAILURE"
echo "$METADATA_IP is not pingable." >&2
exit 1
fi
done
echo "SUCCESS"
else
echo "No metadata IP found. Skipping."
fi
}
function configure_safe_defaults() {
[[ $? == 0 ]] && return 0
cat > /etc/os-net-config/dhcp_all_interfaces.yaml <<EOF_CAT
# This file is an autogenerated safe defaults file for os-net-config
# which runs DHCP on all discovered interfaces to ensure connectivity
# back to the undercloud for updates
network_config:
EOF_CAT
for iface in $(ls /sys/class/net | grep -v ^lo$); do
local mac_addr_type="$(cat /sys/class/net/${iface}/addr_assign_type)"
if [ "$mac_addr_type" != "0" ]; then
echo "Device has generated MAC, skipping."
else
ip link set dev $iface up &>/dev/null
HAS_LINK="$(cat /sys/class/net/${iface}/carrier)"
TRIES=10
while [ "$HAS_LINK" == "0" -a $TRIES -gt 0 ]; do
HAS_LINK="$(cat /sys/class/net/${iface}/carrier)"
if [ "$HAS_LINK" == "1" ]; then
break
else
sleep 1
fi
TRIES=$(( TRIES - 1 ))
done
if [ "$HAS_LINK" == "1" ] ; then
cat >> /etc/os-net-config/dhcp_all_interfaces.yaml <<EOF_CAT
-
type: interface
name: $iface
use_dhcp: true
EOF_CAT
fi
fi
done
os-net-config -c /etc/os-net-config/dhcp_all_interfaces.yaml -v --detailed-exit-codes --cleanup
RETVAL=$?
if [[ $RETVAL == 2 ]]; then
ping_metadata_ip
elif [[ $RETVAL != 0 ]]; then
echo "ERROR: configuration of safe defaults failed."
fi
}
if [ -n '$network_config' ]; then
trap configure_safe_defaults EXIT
mkdir -p /etc/os-net-config
# Note these variables come from the calling heat SoftwareConfig
echo '$network_config' > /etc/os-net-config/config.json
sed -i "s/bridge_name/$bridge_name/" /etc/os-net-config/config.json
sed -i "s/interface_name/$interface_name/" /etc/os-net-config/config.json
os-net-config -c /etc/os-net-config/config.json -v --detailed-exit-codes
RETVAL=$?
if [[ $RETVAL == 2 ]]; then
ping_metadata_ip
#NOTE: dprince this udev rule can apparently leak DHCP processes?
# https://bugs.launchpad.net/tripleo/+bug/1538259
# until we discover the root cause we can simply disable the
# rule because networking has already been configured at this point
if [ -f /etc/udev/rules.d/99-dhcp-all-interfaces.rules ]; then
rm /etc/udev/rules.d/99-dhcp-all-interfaces.rules
fi
elif [[ $RETVAL != 0 ]]; then
echo "ERROR: os-net-config configuration failed." >&2
exit 1
fi
fi

219
tools/yaml-nic-config-2-script.py Executable file
View File

@ -0,0 +1,219 @@
#!/usr/bin/env python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import collections
import copy
import os
import sys
import traceback
import yaml
import six
import re
#convert comments into 'comments<num>: ...' YAML
def to_commented_yaml(filename):
out_str = ''
last_non_comment_spaces = ''
with open(filename, 'r') as f:
comment_count = 0
for line in f:
char_count = 0
spaces = ''
for char in line:
char_count += 1
if char == ' ':
spaces+=' '
next;
elif char == '#':
comment_count += 1
comment = line[char_count:-1]
out_str += "%scomment%i_%i: '%s'\n" % (last_non_comment_spaces, comment_count, len(spaces), comment)
break;
else:
last_non_comment_spaces = spaces
out_str += line
#inline comments check
m = re.match(".*:.*#(.*)", line)
if m:
comment_count += 1
out_str += "%s inline_comment%i: '%s'\n" % (last_non_comment_spaces, comment_count, m.group(1))
break;
with open(filename, 'w') as f:
f.write(out_str)
return out_str
#convert back to normal #commented YAML
def to_normal_yaml(filename):
with open(filename, 'r') as f:
data = f.read()
out_str = ''
next_line_break = False
for line in data.split('\n'):
m = re.match(" +comment[0-9]+_([0-9]+): '(.*)'.*", line) #normal comments
i = re.match(" +inline_comment[0-9]+: '(.*)'.*", line) #inline comments
if m:
if next_line_break:
out_str += '\n'
next_line_break = False
for x in range(0, int(m.group(1))):
out_str += " "
out_str += "#%s\n" % m.group(2)
elif i:
out_str += " #%s\n" % i.group(1)
next_line_break = False
else:
if next_line_break:
out_str += '\n'
out_str += line
next_line_break = True
if next_line_break:
out_str += '\n'
with open(filename, 'w') as f:
f.write(out_str)
return out_str
class description(six.text_type):
pass
# FIXME: Some of this duplicates code from build_endpoint_map.py, we should
# refactor to share the common code
class TemplateDumper(yaml.SafeDumper):
def represent_ordered_dict(self, data):
return self.represent_dict(data.items())
def description_presenter(self, data):
if '\n' in data:
style = '>'
else:
style = ''
return self.represent_scalar(
yaml.resolver.BaseResolver.DEFAULT_SCALAR_TAG, data, style=style)
# We load mappings into OrderedDict to preserve their order
class TemplateLoader(yaml.SafeLoader):
def construct_mapping(self, node):
self.flatten_mapping(node)
return collections.OrderedDict(self.construct_pairs(node))
TemplateDumper.add_representer(description,
TemplateDumper.description_presenter)
TemplateDumper.add_representer(collections.OrderedDict,
TemplateDumper.represent_ordered_dict)
TemplateLoader.add_constructor(yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,
TemplateLoader.construct_mapping)
def write_template(template, filename=None):
with open(filename, 'w') as f:
yaml.dump(template, f, TemplateDumper, width=120, default_flow_style=False)
def exit_usage():
print('Usage %s <yaml file>' % sys.argv[0])
sys.exit(1)
def convert(filename):
print('Converting %s' % filename)
try:
tpl = yaml.load(open(filename).read(), Loader=TemplateLoader)
except Exception:
print(traceback.format_exc())
return 0
# Check which path we need for run-os-net-config.sh because we have
# nic config templates in the top-level and network/config
script_paths = ['network/scripts/run-os-net-config.sh',
'../../scripts/run-os-net-config.sh']
script_path = None
for p in script_paths:
check_path = os.path.join(os.path.dirname(filename), p)
if os.path.isfile(check_path):
print("Found %s, using %s" % (check_path, p))
script_path = p
if script_path is None:
print("Error couldn't find run-os-net-config.sh relative to filename")
exit_usage()
for r in six.iteritems(tpl.get('resources', {})):
if (r[1].get('type') == 'OS::Heat::StructuredConfig' and
r[1].get('properties', {}).get('group') == 'os-apply-config' and
r[1].get('properties', {}).get('config', {}).get('os_net_config')):
#print("match %s" % r[0])
new_r = collections.OrderedDict()
new_r['type'] = 'OS::Heat::SoftwareConfig'
new_r['properties'] = collections.OrderedDict()
new_r['properties']['group'] = 'script'
old_net_config = r[1].get(
'properties', {}).get('config', {}).get('os_net_config')
new_config = {'str_replace': collections.OrderedDict()}
new_config['str_replace']['template'] = {'get_file': script_path}
new_config['str_replace']['params'] = {'$network_config': old_net_config}
new_r['properties']['config'] = new_config
tpl['resources'][r[0]] = new_r
else:
print("No match %s" % r[0])
return 0
# Preserve typical HOT template key ordering
od_result = collections.OrderedDict()
# Need to bump the HOT version so str_replace supports serializing to json
od_result['heat_template_version'] = "2016-10-14"
if tpl.get('description'):
od_result['description'] = description(tpl['description'])
od_result['parameters'] = tpl['parameters']
od_result['resources'] = tpl['resources']
od_result['outputs'] = tpl['outputs']
#print('Result:')
#print('%s' % yaml.dump(od_result, Dumper=TemplateDumper, width=120, default_flow_style=False))
#print('---')
#replace = raw_input(
#"Replace file %s? Answer y/n" % filename).lower() == 'y'
#if replace:
#print("Replace %s" % filename)
write_template(od_result, filename)
#else:
# print("NOT replacing %s" % filename)
# return 0
return 1
if len(sys.argv) < 2:
exit_usage()
path_args = sys.argv[1:]
exit_val = 0
num_converted = 0
for base_path in path_args:
if os.path.isfile(base_path) and base_path.endswith('.yaml'):
to_commented_yaml(base_path)
num_converted += convert(base_path)
to_normal_yaml(base_path)
else:
print('Unexpected argument %s' % base_path)
exit_usage()
if num_converted == 0:
exit_val = 1
sys.exit(exit_val)