Create short lived ssh key for enable-ssh-admin.sh
[apex-tripleo-heat-templates.git] / net-config-bond.yaml
index b624563..8a97c85 100644 (file)
@@ -1,9 +1,17 @@
-heat_template_version: 2015-04-30
-
+heat_template_version: pike
 description: >
   Software Config to drive os-net-config with 2 bonded nics on a bridge.
-
 parameters:
+  BondInterfaceOvsOptions:
+    default: ''
+    description: The ovs_options or bonding_options string for the bond
+      interface. Set things like lacp=active and/or bond_mode=balance-slb
+      for OVS bonds or like mode=4 for Linux bonds using this option.
+    type: string
+    constraints:
+    - 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
@@ -14,7 +22,7 @@ parameters:
     type: string
   InternalApiIpSubnet:
     default: ''
-    description: IP address/subnet on the internal API network
+    description: IP address/subnet on the internal_api network
     type: string
   StorageIpSubnet:
     default: ''
@@ -22,7 +30,7 @@ parameters:
     type: string
   StorageMgmtIpSubnet:
     default: ''
-    description: IP address/subnet on the storage mgmt network
+    description: IP address/subnet on the storage_mgmt network
     type: string
   TenantIpSubnet:
     default: ''
@@ -32,42 +40,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
-              # 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
+        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
                   members:
-                    # os-net-config translates nic1 => em1 (for example)
-                    -
-                      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
+