aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2014-10-23 15:17:49 -0400
committerDan Prince <dprince@redhat.com>2014-12-19 21:24:56 -0500
commit9df1991a80724f3179475cb9d561bfadb749822e (patch)
treed57a88ef94033f4e974afcb7925390d61f9003fd
parent741df33386b7fd78b0b95e6a9399dd53afc99f62 (diff)
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
-rw-r--r--compute.yaml13
-rw-r--r--net-config-bond.yaml44
-rw-r--r--net-config-bridge.yaml37
-rw-r--r--net-config-noop.yaml18
-rw-r--r--overcloud-resource-registry.yaml1
5 files changed, 113 insertions, 0 deletions
diff --git a/compute.yaml b/compute.yaml
index ae02fef5..145b61c3 100644
--- a/compute.yaml
+++ b/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
diff --git a/net-config-bond.yaml b/net-config-bond.yaml
new file mode 100644
index 00000000..3518dbae
--- /dev/null
+++ b/net-config-bond.yaml
@@ -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}
diff --git a/net-config-bridge.yaml b/net-config-bridge.yaml
new file mode 100644
index 00000000..d1faa5df
--- /dev/null
+++ b/net-config-bridge.yaml
@@ -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}
diff --git a/net-config-noop.yaml b/net-config-noop.yaml
new file mode 100644
index 00000000..a3b1d1af
--- /dev/null
+++ b/net-config-noop.yaml
@@ -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}
diff --git a/overcloud-resource-registry.yaml b/overcloud-resource-registry.yaml
index 4ac404ee..476758b0 100644
--- a/overcloud-resource-registry.yaml
+++ b/overcloud-resource-registry.yaml
@@ -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