Make Swift replica count configurable.
[apex-tripleo-heat-templates.git] / block-storage.yaml
index c437aa6..761de52 100644 (file)
-HeatTemplateFormatVersion: '2012-12-12'
-Description: 'Common Block Storage Configuration'
-Parameters:
+heat_template_version: 2014-10-16
+description: 'Common Block Storage Configuration'
+parameters:
   BlockStorageImage:
-    Type: String
-    Default: overcloud-cinder-volume
+    type: string
+    default: overcloud-cinder-volume
   OvercloudBlockStorageFlavor:
-    Default: baremetal
-    Description: Flavor for block storage nodes to request when deploying.
-    Type: String
+    default: baremetal
+    description: Flavor for block storage nodes to request when deploying.
+    type: string
   NeutronNetworkType:
-    Type: String
-    Default: 'gre'
+    type: string
+    default: 'gre'
   NeutronEnableTunnelling:
-    Type: String
-    Default: True
-Resources:
-  BlockStorageAccessPolicy:
-    Type: OS::Heat::AccessPolicy
-    Properties:
-      AllowedResources:
-      - BlockStorage0
-      - BlockStorage0Config
-  BlockStorageUser:
-    Type: AWS::IAM::User
-    Properties:
-      Policies: [ { Ref: BlockStorageAccessPolicy } ]
-  BlockStorage0Key:
-    Type: AWS::IAM::AccessKey
-    Properties:
-      UserName:
-        Ref: BlockStorageUser
-  BlockStorage0CompletionCondition:
-    Type: AWS::CloudFormation::WaitCondition
-    DependsOn: controller0Config
-    Properties:
-      Handle: {Ref: BlockStorage0CompletionHandle}
-      Count: '1'
-      Timeout: '1800'
-  BlockStorage0CompletionHandle:
-    Type: AWS::CloudFormation::WaitConditionHandle
+    type: string
+    default: True
+resources:
   BlockStorage0:
-    Type: OS::Nova::Server
-    Properties:
+    type: OS::Nova::Server
+    properties:
       image:
-        {Ref: BlockStorageImage}
-      flavor: {Ref: OvercloudBlockStorageFlavor}
-      key_name: {Ref: KeyName}
-    Metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: BlockStorage0Key
-          secret_access_key:
-            Fn::GetAtt: [ BlockStorage0Key, SecretAccessKey ]
-          stack_name: {Ref: 'AWS::StackName'}
-          path: BlockStorage0Config.Metadata
-      OpenStack::ImageBuilder::Elements: [ cinder ]
-  BlockStorage0Config:
-    Type: AWS::AutoScaling::LaunchConfiguration
-    Properties:
-      InstanceType: '0'
-      ImageId: '0'
-    Metadata:
-      completion-handle:
-        Ref: BlockStorage0CompletionHandle
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: BlockStorage0Key
-          secret_access_key:
-            Fn::GetAtt: [ BlockStorage0Key, SecretAccessKey ]
-          stack_name: {Ref: 'AWS::StackName'}
-          path: BlockStorage0Config.Metadata
-      admin-password: {Ref: AdminPassword}
-      keystone:
-        host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
-      cinder:
-        db: {"Fn::Join": ['', ['mysql://cinder:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] } , '/cinder']]}
-        volume_size_mb: '5000'
-        service-password:
-          Ref: CinderPassword
-        iscsi-helper:
-          Ref: CinderISCSIHelper
-      admin-password: {Ref: AdminPassword}
-      rabbit:
-        host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
-        username: {Ref: RabbitUserName}
-        password: {Ref: RabbitPassword}
-      interfaces:
-        control: {Ref: NeutronPublicInterface}
-      neutron:
-        ovs:
-          local_ip:
-            Fn::Select:
-              - 0
-              - Fn::Select:
-                - ctlplane
-                - Fn::GetAtt:
-                  - BlockStorage0
-                  - networks
-          tenant_network_type: {Ref: NeutronNetworkType}
-          enable_tunneling: {Ref: NeutronEnableTunnelling}
-        service-password:
-          Ref: NeutronPassword
+        {get_param: BlockStorageImage}
+      flavor: {get_param: OvercloudBlockStorageFlavor}
+      key_name: {get_param: KeyName}
+      user_data_format: SOFTWARE_CONFIG
+  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]}
+      signal_transport: NO_SIGNAL
+  BlockStorageConfig:
+    type: OS::Heat::StructuredConfig
+    properties:
+      group: os-apply-config
+      config:
+        admin-password: {get_param: AdminPassword}
+        keystone:
+          host: {get_input: controller_host}
+        cinder:
+          db: {get_input: cinder_dsn}
+          volume_size_mb:
+            get_param: CinderLVMLoopDeviceSize
+          service-password:
+            get_param: CinderPassword
+          iscsi-helper:
+            get_param: CinderISCSIHelper
+        rabbit:
+          host: {get_input: controller_host}
+          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