Add Ceph related templates needed to configure Cinder with Ceph
[apex-tripleo-heat-templates.git] / block-storage.yaml
index 761de52..c288044 100644 (file)
@@ -1,19 +1,20 @@
-heat_template_version: 2014-10-16
+heat_template_version: 2013-05-23
 description: 'Common Block Storage Configuration'
 parameters:
   BlockStorageImage:
     type: string
     default: overcloud-cinder-volume
   OvercloudBlockStorageFlavor:
-    default: baremetal
     description: Flavor for block storage nodes to request when deploying.
     type: string
-  NeutronNetworkType:
-    type: string
-    default: 'gre'
-  NeutronEnableTunnelling:
-    type: string
-    default: True
+    constraints:
+      - custom_constraint: nova.flavor
+  BlockStorageExtraConfig:
+    default: {}
+    description: |
+      Controller specific configuration to inject into the cluster. Same
+      structure as ExtraConfig.
+    type: json
 resources:
   BlockStorage0:
     type: OS::Nova::Server
@@ -23,16 +24,39 @@ resources:
       flavor: {get_param: OvercloudBlockStorageFlavor}
       key_name: {get_param: KeyName}
       user_data_format: SOFTWARE_CONFIG
+  BlockStorage0AllNodesDeployment:
+    depends_on: [BlockStorage0Deployment,BlockStorage0PassthroughSpecific]
+    type: OS::Heat::StructuredDeployment
+    properties:
+      signal_transport: {get_param: DefaultSignalTransport}
+      config: {get_resource: allNodesConfig}
+      server: {get_resource: BlockStorage0}
   BlockStorage0Deployment:
     type: OS::Heat::StructuredDeployment
     properties:
       server: {get_resource: BlockStorage0}
       config: {get_resource: BlockStorageConfig}
       input_values:
-        controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
-        cinder_dsn: {list_join: ['', ['mysql://cinder:unset@', {get_attr: [controller0, networks, ctlplane, 0]} , '/cinder']]}
-        neutron_local_ip: {get_attr: [BlockStorage0 , networks, ctlplane, 0]}
+        controller_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+        cinder_dsn: {"Fn::Join": ['', ['mysql://cinder:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} , '/cinder']]}
+      signal_transport: NO_SIGNAL
+  BlockStorage0Passthrough:
+    type: OS::Heat::StructuredDeployment
+    properties:
+      config: {get_resource: BlockStoragePassthrough}
+      server: {get_resource: BlockStorage0}
+      signal_transport: NO_SIGNAL
+      input_values:
+        passthrough_config: {get_param: ExtraConfig}
+  BlockStorage0PassthroughSpecific:
+    depends_on: [BlockStorage0Passthrough]
+    type: OS::Heat::StructuredDeployment
+    properties:
+      config: {get_resource: BlockStoragePassthroughSpecific}
+      server: {get_resource: BlockStorage0}
       signal_transport: NO_SIGNAL
+      input_values:
+        passthrough_config_specific: {get_param: BlockStorageExtraConfig}
   BlockStorageConfig:
     type: OS::Heat::StructuredConfig
     properties:
@@ -40,7 +64,7 @@ resources:
       config:
         admin-password: {get_param: AdminPassword}
         keystone:
-          host: {get_input: controller_host}
+          host: {get_input: controller_virtual_ip}
         cinder:
           db: {get_input: cinder_dsn}
           volume_size_mb:
@@ -50,15 +74,19 @@ resources:
           iscsi-helper:
             get_param: CinderISCSIHelper
         rabbit:
-          host: {get_input: controller_host}
+          host: {get_input: controller_virtual_ip}
           username: {get_param: RabbitUserName}
           password: {get_param: RabbitPassword}
-        interfaces:
-          control: {get_param: NeutronPublicInterface}
-        neutron:
-          ovs:
-            local_ip: {get_input: neutron_local_ip}
-            tenant_network_type: {get_param: NeutronNetworkType}
-            enable_tunneling: {get_param: NeutronEnableTunnelling}
-          service-password:
-            get_param: NeutronPassword
+        glance:
+          host: {get_input: controller_virtual_ip}
+          port: {get_param: GlancePort}
+  BlockStoragePassthrough:
+    type: OS::Heat::StructuredConfig
+    properties:
+      group: os-apply-config
+      config: {get_input: passthrough_config}
+  BlockStoragePassthroughSpecific:
+    type: OS::Heat::StructuredConfig
+    properties:
+      group: os-apply-config
+      config: {get_input: passthrough_config_specific}