BlockStorageImage:
Type: String
Default: overcloud-cinder-volume
- KeystoneHost:
+ OvercloudBlockStorageFlavor:
+ Default: baremetal
+ Description: Flavor for block storage nodes to request when deploying.
Type: String
- Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
- MySQLHost:
+ NeutronNetworkType:
Type: String
- Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
- RabbitHost:
+ Default: 'gre'
+ NeutronEnableTunnelling:
Type: String
- Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
- RabbitPassword:
- Type: String
- Default: "guest"
- NoEcho: true
+ Default: True
Resources:
- BlockStorageAccessPolicy:
- Type: OS::Heat::AccessPolicy
- Properties:
- AllowedResources:
- - BlockStorage0
- BlockStorageUser:
- Type: AWS::IAM::User
- Properties:
- Policies: [ { Ref: BlockStorageAccessPolicy } ]
- BlockStorageKey:
- Type: AWS::IAM::AccessKey
- Properties:
- UserName:
- Ref: BlockStorageUser
BlockStorage0:
Type: OS::Nova::Server
Properties:
image:
{Ref: BlockStorageImage}
- flavor: {Ref: Flavor}
+ flavor: {Ref: OvercloudBlockStorageFlavor}
key_name: {Ref: KeyName}
- InstanceType: '0'
- ImageId: '0'
- Metadata:
- os-collect-config:
- cfn:
- access_key_id:
- Ref: BlockStorageKey
- secret_access_key:
- Fn::GetAtt: [ BlockStorageKey, SecretAccessKey ]
- stack_name: {Ref: 'AWS::StackName'}
- OpenStack::ImageBuilder::Elements: [ cinder ]
- keystone:
- host: {Ref: KeystoneHost}
- cinder:
- db: {"Fn::Join": ['', ['mysql://cinder:unset@', {Ref: MySQLHost}, '/cinder']]}
- volume_size_mb: '5000'
- service-password:
- Ref: CinderPassword
- volume: 'true'
- admin-password: {Ref: AdminPassword}
- rabbit:
- host: {Ref: RabbitHost}
- password: {Ref: RabbitPassword}
- interfaces:
- control: {Ref: NeutronPublicInterface}
\ No newline at end of file
+ BlockStorage0Deployment:
+ Type: OS::Heat::StructuredDeployment
+ Properties:
+ server: {Ref: BlockStorage0}
+ config: {Ref: 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]}]]]}
+ BlockStorageConfig:
+ Type: OS::Heat::StructuredConfig
+ Properties:
+ group: os-apply-config
+ config:
+ admin-password: {Ref: AdminPassword}
+ 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
+ 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