Add quotes around the cinder_iscsi_ip_address value
[apex-tripleo-heat-templates.git] / puppet / cinder-storage.yaml
index 0bec3e9..b569480 100644 (file)
@@ -9,7 +9,7 @@ parameters:
     description: Whether to enable or not the Iscsi backend for Cinder
     type: boolean
   CinderISCSIHelper:
-    default: tgtadm
+    default: lioadm
     description: The iSCSI helper to use with cinder.
     type: string
   CinderLVMLoopDeviceSize:
@@ -38,6 +38,9 @@ parameters:
     description: |
       Role specific additional hiera configuration to inject into the cluster.
     type: json
+  BlockStorageIPs:
+    default: {}
+    type: json
   Flavor:
     description: Flavor for block storage nodes to request when deploying.
     type: string
@@ -48,7 +51,6 @@ parameters:
     description: Name of an existing Nova key pair to enable SSH access to the instances
     type: string
   RabbitPassword:
-    default: 'guest'
     type: string
     hidden: true
   RabbitUserName:
@@ -89,6 +91,10 @@ parameters:
   Hostname:
     type: string
     default: '' # Defaults to Heat created hostname
+  HostnameMap:
+    type: json
+    default: {}
+    description: Optional mapping to override hostnames
   ServiceNetMap:
     default: {}
     description: Mapping of service_name -> network name. Typically set
@@ -106,7 +112,7 @@ parameters:
   GlanceApiVirtualIP:
     type: string
     default: ''
-  MysqlVirtualIP:
+  MysqlVirtualIPUri:
     type: string
     default: ''
   NetworkDeploymentActions:
@@ -137,6 +143,9 @@ parameters:
     type: json
     description: Optional scheduler hints to pass to nova
     default: {}
+  NodeIndex:
+    type: number
+    default: 0
 
 
 resources:
@@ -151,7 +160,10 @@ resources:
         - network: ctlplane
       user_data_format: SOFTWARE_CONFIG
       user_data: {get_resource: UserData}
-      name: {get_param: Hostname}
+      name:
+        str_replace:
+            template: {get_param: Hostname}
+            params: {get_param: HostnameMap}
       software_config_transport: {get_param: SoftwareConfigTransport}
       metadata: {get_param: ServerMetadata}
       scheduler_hints: {get_param: SchedulerHints}
@@ -180,31 +192,43 @@ resources:
     type: OS::TripleO::BlockStorage::Ports::ExternalPort
     properties:
       ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: BlockStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   InternalApiPort:
     type: OS::TripleO::BlockStorage::Ports::InternalApiPort
     properties:
       ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: BlockStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   StoragePort:
     type: OS::TripleO::BlockStorage::Ports::StoragePort
     properties:
       ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: BlockStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   StorageMgmtPort:
     type: OS::TripleO::BlockStorage::Ports::StorageMgmtPort
     properties:
       ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: BlockStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   TenantPort:
     type: OS::TripleO::BlockStorage::Ports::TenantPort
     properties:
       ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: BlockStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   ManagementPort:
     type: OS::TripleO::BlockStorage::Ports::ManagementPort
     properties:
       ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: BlockStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   NetworkConfig:
     type: OS::TripleO::BlockStorage::Net::SoftwareConfig
@@ -222,11 +246,17 @@ resources:
     properties:
       ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
       ExternalIp: {get_attr: [ExternalPort, ip_address]}
+      ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
       InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
+      InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
       StorageIp: {get_attr: [StoragePort, ip_address]}
+      StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
       StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
+      StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
       TenantIp: {get_attr: [TenantPort, ip_address]}
+      TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
       ManagementIp: {get_attr: [ManagementPort, ip_address]}
+      ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
 
   NetworkDeployment:
     type: OS::TripleO::SoftwareDeployment
@@ -245,7 +275,7 @@ resources:
       config: {get_resource: BlockStorageConfig}
       input_values:
         debug: {get_param: Debug}
-        cinder_dsn: {list_join: ['', ['mysql+pymysql://cinder:', {get_param: CinderPassword}, '@', {get_param: MysqlVirtualIP} , '/cinder']]}
+        cinder_dsn: {list_join: ['', ['mysql+pymysql://cinder:', {get_param: CinderPassword}, '@', {get_param: MysqlVirtualIPUri} , '/cinder']]}
         snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
         snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
         cinder_lvm_loop_device_size:
@@ -255,7 +285,11 @@ resources:
               size: {get_param: CinderLVMLoopDeviceSize}
         cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
         cinder_iscsi_helper: {get_param: CinderISCSIHelper}
-        cinder_iscsi_ip_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CinderIscsiNetwork]}]}
+        cinder_iscsi_ip_address:
+          str_replace:
+            template: "'IP'"
+            params:
+              IP: {get_attr: [NetIpMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderIscsiNetwork]}]}
         glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
         rabbit_username: {get_param: RabbitUserName}
         rabbit_password: {get_param: RabbitPassword}
@@ -343,11 +377,54 @@ outputs:
   hosts_entry:
     value:
       str_replace:
-        template: "IP HOST.DOMAIN HOST"
+        template: |
+          PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
+          EXTERNALIP EXTERNALHOST
+          INTERNAL_APIIP INTERNAL_APIHOST
+          STORAGEIP STORAGEHOST
+          STORAGE_MGMTIP STORAGE_MGMTHOST
+          TENANTIP TENANTHOST
+          MANAGEMENTIP MANAGEMENTHOST
         params:
-          IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]}
+          PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]}
           DOMAIN: {get_param: CloudDomain}
-          HOST: {get_attr: [BlockStorage, name]}
+          PRIMARYHOST: {get_attr: [BlockStorage, name]}
+          EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
+          EXTERNALHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [BlockStorage, name]}
+              - external
+          INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
+          INTERNAL_APIHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [BlockStorage, name]}
+              - internalapi
+          STORAGEIP: {get_attr: [StoragePort, ip_address]}
+          STORAGEHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [BlockStorage, name]}
+              - storage
+          STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
+          STORAGE_MGMTHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [BlockStorage, name]}
+              - storagemgmt
+          TENANTIP: {get_attr: [TenantPort, ip_address]}
+          TENANTHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [BlockStorage, name]}
+              - tenant
+          MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
+          MANAGEMENTHOST:
+            list_join:
+            - '-'
+            - - {get_attr: [BlockStorage, name]}
+              - management
   nova_server_resource:
     description: Heat resource handle for the block storage server
     value: