Merge "Containerize HAProxy for the non-ha case"
[apex-tripleo-heat-templates.git] / network / ports / net_ip_map.yaml
index fcf2eee..75818bf 100644 (file)
@@ -1,4 +1,4 @@
-heat_template_version: 2015-04-30
+heat_template_version: pike
 
 parameters:
   ControlPlaneIp:
@@ -69,35 +69,136 @@ parameters:
     type: string
     description: IP address with brackets in case of IPv6
 
+  InternalApiNetName:
+    default: internal_api
+    description: The name of the internal API network.
+    type: string
+  ExternalNetName:
+    default: external
+    description: The name of the external network.
+    type: string
+  ManagementNetName:
+    default: management
+    description: The name of the management network.
+    type: string
+  StorageNetName:
+    default: storage
+    description: The name of the storage network.
+    type: string
+  StorageMgmtNetName:
+    default: storage_mgmt
+    description: The name of the Storage management network.
+    type: string
+  TenantNetName:
+    default: tenant
+    description: The name of the tenant network.
+    type: string
+
+resources:
+
+  NetIpMapValue:
+    type: OS::Heat::Value
+    properties:
+      type: json
+      value:
+        map_replace:
+          - ctlplane: {get_param: ControlPlaneIp}
+            external: {get_param: ExternalIp}
+            internal_api: {get_param: InternalApiIp}
+            storage: {get_param: StorageIp}
+            storage_mgmt: {get_param: StorageMgmtIp}
+            tenant: {get_param: TenantIp}
+            management: {get_param: ManagementIp}
+            ctlplane_subnet:
+              list_join:
+                - ''
+                - - {get_param: ControlPlaneIp}
+                  - '/'
+                  - {get_param: ControlPlaneSubnetCidr}
+            external_subnet: {get_param: ExternalIpSubnet}
+            internal_api_subnet: {get_param: InternalApiIpSubnet}
+            storage_subnet: {get_param: StorageIpSubnet}
+            storage_mgmt_subnet: {get_param: StorageMgmtIpSubnet}
+            tenant_subnet: {get_param: TenantIpSubnet}
+            management_subnet: {get_param: ManagementIpSubnet}
+            ctlplane_uri: {get_param: ControlPlaneIp}
+            external_uri: {get_param: ExternalIpUri}
+            internal_api_uri: {get_param: InternalApiIpUri}
+            storage_uri: {get_param: StorageIpUri}
+            storage_mgmt_uri: {get_param: StorageMgmtIpUri}
+            tenant_uri: {get_param: TenantIpUri}
+            management_uri: {get_param: ManagementIpUri}
+          - keys:
+              external: {get_param: ExternalNetName}
+              internal_api: {get_param: InternalApiNetName}
+              storage: {get_param: StorageNetName}
+              storage_mgmt: {get_param: StorageMgmtNetName}
+              tenant: {get_param: TenantNetName}
+              management: {get_param: ManagementNetName}
+              external_subnet:
+                str_replace:
+                  template: NAME_subnet
+                  params:
+                    NAME: {get_param: ExternalNetName}
+              internal_api_subnet:
+                str_replace:
+                  template: NAME_subnet
+                  params:
+                    NAME: {get_param: InternalApiNetName}
+              storage_subnet:
+                str_replace:
+                  template: NAME_subnet
+                  params:
+                    NAME: {get_param: StorageNetName}
+              storage_mgmt_subnet:
+                str_replace:
+                  template: NAME_subnet
+                  params:
+                    NAME: {get_param: StorageMgmtNetName}
+              tenant_subnet:
+                str_replace:
+                  template: NAME_subnet
+                  params:
+                    NAME: {get_param: TenantNetName}
+              management_subnet:
+                str_replace:
+                  template: NAME_subnet
+                  params:
+                    NAME: {get_param: ManagementNetName}
+              external_uri:
+                str_replace:
+                  template: NAME_uri
+                  params:
+                    NAME: {get_param: ExternalNetName}
+              internal_api_uri:
+                str_replace:
+                  template: NAME_uri
+                  params:
+                    NAME: {get_param: InternalApiNetName}
+              storage_uri:
+                str_replace:
+                  template: NAME_uri
+                  params:
+                    NAME: {get_param: StorageNetName}
+              storage_mgmt_uri:
+                str_replace:
+                  template: NAME_uri
+                  params:
+                    NAME: {get_param: StorageMgmtNetName}
+              tenant_uri:
+                str_replace:
+                  template: NAME_uri
+                  params:
+                    NAME: {get_param: TenantNetName}
+              management_uri:
+                str_replace:
+                  template: NAME_uri
+                  params:
+                    NAME: {get_param: ManagementNetName}
+
 outputs:
   net_ip_map:
     description: >
       A Hash containing a mapping of network names to assigned IPs
       for a specific machine.
-    value:
-      ctlplane: {get_param: ControlPlaneIp}
-      external: {get_param: ExternalIp}
-      internal_api: {get_param: InternalApiIp}
-      storage: {get_param: StorageIp}
-      storage_mgmt: {get_param: StorageMgmtIp}
-      tenant: {get_param: TenantIp}
-      management: {get_param: ManagementIp}
-      ctlplane_subnet:
-        list_join:
-          - ''
-          - - {get_param: ControlPlaneIp}
-            - '/'
-            - {get_param: ControlPlaneSubnetCidr}
-      external_subnet: {get_param: ExternalIpSubnet}
-      internal_api_subnet: {get_param: InternalApiIpSubnet}
-      storage_subnet: {get_param: StorageIpSubnet}
-      storage_mgmt_subnet: {get_param: StorageMgmtIpSubnet}
-      tenant_subnet: {get_param: TenantIpSubnet}
-      management_subnet: {get_param: ManagementIpSubnet}
-      ctlplane_uri: {get_param: ControlPlaneIp}
-      external_uri: {get_param: ExternalIpUri}
-      internal_api_uri: {get_param: InternalApiIpUri}
-      storage_uri: {get_param: StorageIpUri}
-      storage_mgmt_uri: {get_param: StorageMgmtIpUri}
-      tenant_uri: {get_param: TenantIpUri}
-      management_uri: {get_param: ManagementIpUri}
+    value: {get_attr: [NetIpMapValue, value]}