-HeatTemplateFormatVersion: '2012-12-12'
-Description: 'Common Swift Storage Configuration'
-Parameters:
+heat_template_version: 2013-05-23
+description: 'Common Swift Storage Configuration'
+parameters:
SwiftStorageImage:
- Type: String
- Default: overcloud-swift-storage
+ type: string
+ default: overcloud-swift-storage
OvercloudSwiftStorageFlavor:
- Default: baremetal
- Description: Flavor for Swift storage nodes to request when deploying.
- Type: String
+ default: baremetal
+ description: Flavor for Swift storage nodes to request when deploying.
+ type: string
NeutronNetworkType:
- Type: String
- Default: 'gre'
+ type: string
+ default: 'gre'
NeutronEnableTunnelling:
- Type: String
- Default: True
-Resources:
- SwiftStorageAccessPolicy:
- Type: OS::Heat::AccessPolicy
- Properties:
- AllowedResources:
- - SwiftStorage0
- - SwiftStorage0Config
- SwiftStorageUser:
- Type: AWS::IAM::User
- Properties:
- Policies: [ { Ref: SwiftStorageAccessPolicy } ]
- SwiftStorage0Key:
- Type: AWS::IAM::AccessKey
- Properties:
- UserName:
- Ref: SwiftStorageUser
- SwiftStorage0CompletionCondition:
- Type: AWS::CloudFormation::WaitCondition
- DependsOn: notCompute0Config
- Properties:
- Handle: {Ref: SwiftStorage0CompletionHandle}
- Count: '1'
- Timeout: '1800'
- SwiftStorage0CompletionHandle:
- Type: AWS::CloudFormation::WaitConditionHandle
+ type: string
+ default: True
+resources:
SwiftStorage0:
- Type: OS::Nova::Server
- Properties:
- image:
- {Ref: SwiftStorageImage}
- flavor: {Ref: OvercloudSwiftStorageFlavor}
- key_name: {Ref: KeyName}
- Metadata:
- os-collect-config:
- cfn:
- access_key_id:
- Ref: SwiftStorage0Key
- secret_access_key:
- Fn::GetAtt: [ SwiftStorage0Key, SecretAccessKey ]
- stack_name: {Ref: 'AWS::StackName'}
- path: SwiftStorage0Config.Metadata
- OpenStack::ImageBuilder::Elements: [ swift ]
- SwiftStorage0Config:
- Type: AWS::AutoScaling::LaunchConfiguration
- Properties:
- InstanceType: '0'
- ImageId: '0'
- Metadata:
- completion-handle:
- Ref: SwiftStorage0CompletionHandle
- os-collect-config:
- cfn:
- access_key_id:
- Ref: SwiftStorage0Key
- secret_access_key:
- Fn::GetAtt: [ SwiftStorage0Key, SecretAccessKey ]
- stack_name: {Ref: 'AWS::StackName'}
- path: SwiftStorage0Config.Metadata
- admin-password: {Ref: AdminPassword}
- neutron:
- ovs:
- local_ip:
- Fn::Select:
- - 0
- - Fn::Select:
- - ctlplane
- - Fn::GetAtt:
- - SwiftStorage0
- - networks
- tenant_network_type: {Ref: NeutronNetworkType}
- enable_tunneling: {Ref: NeutronEnableTunnelling}
- service-password:
- Ref: NeutronPassword
- swift:
- devices:
+ type: OS::Nova::Server
+ properties:
+ image: {get_param: SwiftStorageImage}
+ flavor: {get_param: OvercloudSwiftStorageFlavor}
+ key_name: {get_param: KeyName}
+ user_data_format: SOFTWARE_CONFIG
+ SwiftKeystoneConfig:
+ type: OS::Heat::StructuredConfig
+ properties:
+ config:
+ keystone:
+ host: {get_input: keystone_host}
+ SwiftStorage0Keystone:
+ type: OS::Heat::StructuredDeployment
+ properties:
+ server: {get_resource: SwiftStorage0}
+ config: {get_resource: SwiftKeystoneConfig}
+ signal_transport: NO_SIGNAL
+ input_values:
+ keystone_host: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+ SwiftStorage0Deploy:
+ type: OS::Heat::StructuredDeployment
+ properties:
+ server: {get_resource: SwiftStorage0}
+ config: {get_resource: SwiftConfig}
+ signal_transport: NO_SIGNAL
+ input_values:
+ neutron_local_ip: {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
+ neutron_tenant_network_type: {get_param: NeutronNetworkType}
+ neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
+ swift_hash_suffix: {get_param: SwiftHashSuffix}
+ swift_password: {get_param: SwiftPassword}
+ swift_devices:
Fn::Join:
- ', '
- - - Fn::Join:
- - ''
- - - 'r1z1-'
- - Fn::Select:
- - 0
- - Fn::Select:
- - 'ctlplane'
- - Fn::GetAtt:
- - notCompute0
- - networks
- - ':%PORT%/d1'
- - Fn::Join:
- - ', '
- - Merge::Map:
- SwiftStorage0:
- Fn::Join:
- - ''
- - - 'r1z1-'
- - Fn::Select:
- - 0
- - Fn::Select:
- - 'ctlplane'
- - Fn::GetAtt:
- - SwiftStorage0
- - networks
- - ':%PORT%/d1'
- hash:
- Ref: SwiftHashSuffix
- part-power: 10
- replicas: 1
- service-password:
- Ref: SwiftPassword
+ - Merge::Map:
+ controller0:
+ Fn::Join:
+ - ''
+ - - 'r1z1-'
+ - {get_attr: [controller0, networks, ctlplane, 0]}
+ - ':%PORT%/d1'
+ SwiftStorage0:
+ Fn::Join:
+ - ''
+ - - 'r1z1-'
+ - {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
+ - ':%PORT%/d1'
+ swift_proxy_memcache:
+ Fn::Join:
+ - ','
+ - Merge::Map:
+ controller0:
+ Fn::Join:
+ - ', '
+ - - Fn::Join:
+ - ''
+ - - {get_attr: [controller0, networks, ctlplane, 0]}
+ - ':11211'