Update the template_version alias for all the templates to pike.
[apex-tripleo-heat-templates.git] / network / config / bond-with-vlans / compute.yaml
index 19c011e..448d4e2 100644 (file)
@@ -1,9 +1,6 @@
-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
-  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,9 +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.
+
+        '
   ExternalNetworkVlanID:
     default: 10
     description: Vlan ID for the external network traffic.
@@ -70,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
@@ -84,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.
@@ -163,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
+