Compute: drive NW configuration via software conf
This example extends the compute software configuration so that heat metadata is used to model the os-net-config YAML (ultimately JSON) directly. The existing os-net-config element already supports this format. Configuring the physical network layer in this manner would supplant the ever growing list of Heat parameters that we have and is something that could be automatically generated via tuskar. The default is to use net-config-noop.yaml which will pass no config metadata into the os-net-config element which will essentially disable it in favor of using parameters w/ init-neutron-ovs. Change-Id: I30f325b1751caaef5624537e63ee27c2e418d5c8
This commit is contained in:
parent
741df33386
commit
9df1991a80
13
compute.yaml
13
compute.yaml
@ -246,6 +246,19 @@ resources:
|
||||
- network: ctlplane
|
||||
user_data_format: SOFTWARE_CONFIG
|
||||
|
||||
NetworkConfig:
|
||||
type: OS::TripleO::Net::SoftwareConfig
|
||||
|
||||
NetworkDeployment:
|
||||
type: OS::TripleO::SoftwareDeployment
|
||||
properties:
|
||||
signal_transport: NO_SIGNAL
|
||||
config: {get_attr: [NetworkConfig, config_id]}
|
||||
server: {get_resource: NovaCompute}
|
||||
input_values:
|
||||
bridge_name: {get_param: NeutronPhysicalBridge}
|
||||
interface_name: {get_param: NeutronPublicInterface}
|
||||
|
||||
NovaComputeConfig:
|
||||
type: OS::TripleO::Compute::SoftwareConfig
|
||||
|
||||
|
44
net-config-bond.yaml
Normal file
44
net-config-bond.yaml
Normal file
@ -0,0 +1,44 @@
|
||||
heat_template_version: 2014-10-16
|
||||
|
||||
description: >
|
||||
Software Config to drive os-net-config with 2 bonded nics on a bridge.
|
||||
|
||||
resources:
|
||||
OsNetConfigImpl:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
os_net_config:
|
||||
network_config:
|
||||
-
|
||||
type: ovs_bridge
|
||||
name: {get_input: bridge_name}
|
||||
use_dhcp: true
|
||||
# Can't do this yet: https://bugs.launchpad.net/heat/+bug/1344284
|
||||
#ovs_extra:
|
||||
# - list_join:
|
||||
# - ' '
|
||||
# - - br-set-external-id
|
||||
# - {get_input: bridge_name}
|
||||
# - bridge-id
|
||||
# - {get_input: bridge_name}
|
||||
members:
|
||||
-
|
||||
type: ovs_bond
|
||||
name: bond1
|
||||
use_dhcp: true
|
||||
members:
|
||||
# os-net-config translates nic1 => em1 (for example)
|
||||
-
|
||||
type: interface
|
||||
name: nic1
|
||||
-
|
||||
type: interface
|
||||
name: nic2
|
||||
|
||||
outputs:
|
||||
config_id:
|
||||
description: The ID of the OsNetConfigImpl resource.
|
||||
value:
|
||||
{get_resource: OsNetConfigImpl}
|
37
net-config-bridge.yaml
Normal file
37
net-config-bridge.yaml
Normal file
@ -0,0 +1,37 @@
|
||||
heat_template_version: 2014-10-16
|
||||
|
||||
description: >
|
||||
Software Config to drive os-net-config for a simple bridge.
|
||||
|
||||
resources:
|
||||
OsNetConfigImpl:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
os_net_config:
|
||||
network_config:
|
||||
-
|
||||
type: ovs_bridge
|
||||
name: {get_input: bridge_name}
|
||||
use_dhcp: true
|
||||
# Can't do this yet: https://bugs.launchpad.net/heat/+bug/1344284
|
||||
#ovs_extra:
|
||||
# - list_join:
|
||||
# - ' '
|
||||
# - - br-set-external-id
|
||||
# - {get_input: bridge_name}
|
||||
# - bridge-id
|
||||
# - {get_input: bridge_name}
|
||||
members:
|
||||
-
|
||||
type: interface
|
||||
name: {get_input: interface_name}
|
||||
# force the MAC address of the bridge to this interface
|
||||
primary: true
|
||||
|
||||
outputs:
|
||||
config_id:
|
||||
description: The ID of the OsNetConfigImpl resource.
|
||||
value:
|
||||
{get_resource: OsNetConfigImpl}
|
18
net-config-noop.yaml
Normal file
18
net-config-noop.yaml
Normal file
@ -0,0 +1,18 @@
|
||||
heat_template_version: 2014-10-16
|
||||
|
||||
description: >
|
||||
Software Config to no-op for os-net-config. Using this will allow you
|
||||
to use the parameter driven (init-neutron-ovs) configuration instead.
|
||||
|
||||
resources:
|
||||
OsNetConfigImpl:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
|
||||
outputs:
|
||||
config_id:
|
||||
description: The ID of the OsNetConfigImpl resource.
|
||||
value:
|
||||
{get_resource: OsNetConfigImpl}
|
@ -3,5 +3,6 @@ resource_registry:
|
||||
OS::TripleO::Compute: compute.yaml
|
||||
OS::TripleO::Compute::SoftwareConfig: compute-config.yaml
|
||||
OS::TripleO::SoftwareDeployment: OS::Heat::StructuredDeployment
|
||||
OS::TripleO::Net::SoftwareConfig: net-config-noop.yaml
|
||||
OS::TripleO::Controller: controller.yaml
|
||||
OS::TripleO::ObjectStorage: swift-storage.yaml
|
||||
|
Loading…
Reference in New Issue
Block a user