-HeatTemplateFormatVersion: '2012-12-12'
-Description: 'Common Block Storage Configuration'
-Parameters:
+heat_template_version: 2013-05-23
+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
- NeutronNetworkType:
- Type: String
- Default: 'gre'
- NeutronEnableTunnelling:
- Type: String
- Default: True
-Resources:
+ 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:
+ type: OS::Nova::Server
+ properties:
image:
- {Ref: BlockStorageImage}
- flavor: {Ref: OvercloudBlockStorageFlavor}
- key_name: {Ref: KeyName}
+ {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: {Ref: BlockStorage0}
- config: {Ref: BlockStorageConfig}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ server: {get_resource: BlockStorage0}
+ config: {get_resource: BlockStorageConfig}
input_values:
- controller_host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
- cinder_dsn: {"Fn::Join": ['', ['mysql://cinder:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] } , '/cinder']]}
- neutron_local_ip: {"Fn::Select": [0, "Fn::Select": [ctlplane, [{"Fn::GetAtt": [BlockStorage0 , networks]}]]]}
+ 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:
+ type: OS::Heat::StructuredConfig
+ properties:
group: os-apply-config
config:
- admin-password: {Ref: AdminPassword}
+ 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:
- Ref: CinderLVMLoopDeviceSize
+ get_param: CinderLVMLoopDeviceSize
service-password:
- Ref: CinderPassword
+ get_param: CinderPassword
iscsi-helper:
- Ref: CinderISCSIHelper
- admin-password: {Ref: AdminPassword}
+ get_param: CinderISCSIHelper
rabbit:
- host: {get_input: controller_host}
- username: {Ref: RabbitUserName}
- password: {Ref: RabbitPassword}
- interfaces:
- control: {Ref: NeutronPublicInterface}
- neutron:
- ovs:
- local_ip: {get_input: neutron_local_ip}
- tenant_network_type: {Ref: NeutronNetworkType}
- enable_tunneling: {Ref: NeutronEnableTunnelling}
- service-password:
- Ref: NeutronPassword
- config:
- keystone:
- host: {get_input: controller_host}
- cinder:
- db: {get_input: cinder_dsn}
- volume_size_mb:
- Ref: CinderLVMLoopDeviceSize
- service-password:
- Ref: CinderPassword
- iscsi-helper:
- Ref: CinderISCSIHelper
- admin-password: {Ref: AdminPassword}
- rabbit:
- host: {get_input: controller_host}
- username: {Ref: RabbitUserName}
- password: {Ref: RabbitPassword}
- interfaces:
- control: {Ref: NeutronPublicInterface}
- neutron:
- ovs:
- local_ip: { get_input: neutron_local_ip }
- tenant_network_type: {Ref: NeutronNetworkType}
- enable_tunneling: {Ref: NeutronEnableTunnelling}
- service-password:
- Ref: NeutronPassword
+ 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}