heat_template_version: 2013-05-23 description: 'Common Block Storage Configuration' parameters: BlockStorageImage: type: string default: overcloud-cinder-volume OvercloudBlockStorageFlavor: description: Flavor for block storage nodes to request when deploying. type: string 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 properties: image: {get_param: BlockStorageImage} 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_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: group: os-apply-config config: admin-password: {get_param: AdminPassword} keystone: host: {get_input: controller_virtual_ip} 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_virtual_ip} username: {get_param: RabbitUserName} password: {get_param: RabbitPassword} 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}