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 resources: BlockStorageAccessPolicy: type: OS::Heat::AccessPolicy properties: AllowedResources: - BlockStorage0 BlockStorageUser: type: AWS::IAM::User properties: Policies: [ { get_resource: BlockStorageAccessPolicy } ] BlockStorageKey: type: AWS::IAM::AccessKey properties: UserName: get_resource: BlockStorageUser BlockStorage0CompletionCondition: type: AWS::CloudFormation::WaitCondition depends_on: controller0Config properties: Handle: {get_resource: BlockStorage0CompletionHandle} Count: '1' Timeout: '1800' BlockStorage0CompletionHandle: type: AWS::CloudFormation::WaitConditionHandle BlockStorage0: type: OS::Nova::Server properties: image: {get_param: BlockStorageImage} flavor: {get_param: OvercloudBlockStorageFlavor} key_name: {get_param: KeyName} metadata: completion-handle: get_resource: BlockStorage0CompletionHandle os-collect-config: cfn: access_key_id: get_resource: BlockStorageKey secret_access_key: get_attr: [ BlockStorageKey, SecretAccessKey ] stack_name: {get_param: 'AWS::StackName'} keystone: host: {get_attr: [controller0, networks, ctlplane, 0]} cinder: db: {"Fn::Join": ['', ['mysql://cinder:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} , '/cinder']]} volume_size_mb: '5000' service-password: get_param: CinderPassword include_nfs_backend: 'true' nfs_shares: - {"Fn::Join": ['', [{get_attr: [controller0, networks, ctlplane, 0]} , ':/mnt/state/var/lib/nfs_share']]} admin-password: {get_param: AdminPassword} rabbit: host: {get_attr: [controller0, networks, ctlplane, 0]} username: {get_param: RabbitUserName} password: {get_param: RabbitPassword} interfaces: control: {get_param: NeutronPublicInterface}