description: The user password for SNMPd with readonly rights running on all Overcloud nodes
type: string
hidden: true
-
+ CephClusterFSID:
+ default: ''
+ type: string
+ description: The Ceph cluster FSID.
+ CephMonKey:
+ default: ''
+ description: The Ceph monitors key.
+ type: string
+ CephAdminKey:
+ default: ''
+ description: The Ceph admin client key.
+ type: string
# Controller-specific params
AdminToken:
default: overcloud-swift-storage
type: string
+# Ceph storage specific parameters
+ CephStorageCount:
+ type: number
+ default: 0
+ CephStorageImage:
+ default: overcloud-ceph-storage
+ type: string
+ OvercloudCephStorageFlavor:
+ default: baremetal
+ description: Flavor for Ceph storage nodes to request when deploying.
+ type: string
+
resources:
Controller:
resource_def:
type: OS::TripleO::BlockStorage
properties:
- AdminPassword: {get_param: AdminPassword}
Image: {get_param: BlockStorageImage}
CinderISCSIHelper: {get_param: CinderISCSIHelper}
CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
- CinderPassword: {get_param: CinderPassword}
VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
KeyName: {get_param: KeyName}
Flavor: {get_param: OvercloudBlockStorageFlavor}
RabbitPassword: {get_param: RabbitPassword}
RabbitUserName: {get_param: RabbitUserName}
+ NtpServer: {get_param: NtpServer}
ObjectStorage:
type: OS::Heat::ResourceGroup
PartPower: {get_param: SwiftPartPower}
Image: {get_param: SwiftStorageImage}
Replicas: { get_param: SwiftReplicas}
+ NtpServer: {get_param: NtpServer}
+ CephStorage:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: {get_param: CephStorageCount}
+ resource_def:
+ type: OS::TripleO::CephStorage
+ properties:
+ Image: {get_param: CephStorageImage}
+ KeyName: {get_param: KeyName}
+ Flavor: {get_param: OvercloudCephStorageFlavor}
+ CephClusterFSID: {get_param: CephClusterFSID}
+ CephMonKey: {get_param: CephMonKey}
+ CephAdminKey: {get_param: CephAdminKey}
+ CephMonitors: {get_attr: [Controller, corosync_node]}
allNodesConfig:
- type: OS::Heat::StructuredConfig
+ type: OS::TripleO::AllNodes::SoftwareConfig
properties:
- config:
- completion-signal: {get_input: deploy_signal_id}
- hosts:
- list_join:
- - "\n"
- - - list_join:
- - "\n"
- - {get_attr: [Compute, hosts_entry]}
- - list_join:
- - "\n"
- - {get_attr: [Controller, hosts_entry]}
- - list_join:
- - "\n"
- - {get_attr: [BlockStorage, hosts_entry]}
- - list_join:
- - "\n"
- - {get_attr: [ObjectStorage, hosts_entry]}
- rabbit:
- nodes:
- list_join:
- - ','
- - {get_attr: [Controller, hostname]}
- sysctl:
- net.ipv4.tcp_keepalive_time: 5
- net.ipv4.tcp_keepalive_probes: 5
- net.ipv4.tcp_keepalive_intvl: 1
+ compute_hosts: {get_attr: [Compute, hosts_entry]}
+ controller_hosts: {get_attr: [Controller, hosts_entry]}
+ block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
+ object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
+ ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
+ controller_names: {get_attr: [Controller, hostname]}
MysqlRootPassword:
type: OS::Heat::RandomString
replacement_policy: AUTO
ControllerBootstrapNodeConfig:
- type: OS::Heat::StructuredConfig
+ type: OS::TripleO::BootstrapNode::SoftwareConfig
properties:
- group: os-apply-config
- config:
- bootstrap_host:
- bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
+ bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
ControllerBootstrapNodeDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: ControllerBootstrapNodeConfig}
+ config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
servers: {get_attr: [Controller, attributes, nova_server_resource]}
signal_transport: NO_SIGNAL
ControllerSwiftDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: SwiftDevicesAndProxyConfig}
+ config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
servers: {get_attr: [Controller, attributes, nova_server_resource]}
signal_transport: NO_SIGNAL
ObjectStorageSwiftDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: SwiftDevicesAndProxyConfig}
+ config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
signal_transport: NO_SIGNAL
SwiftDevicesAndProxyConfig:
- type: OS::Heat::StructuredConfig
+ type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
properties:
- group: os-apply-config
- config:
- swift:
- devices:
- list_join:
- - ", "
- - - list_join:
- - ", "
- - {get_attr: [Controller, swift_device]}
- - list_join:
- - ", "
- - {get_attr: [ObjectStorage, swift_device]}
- proxy-memcache:
- list_join:
- - ","
- - {get_attr: [Controller, swift_proxy_memcache]}
+ controller_swift_devices: {get_attr: [Controller, swift_device]}
+ object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
+ controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
ControllerClusterConfig:
type: OS::Heat::StructuredConfig
ControllerAllNodesDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: allNodesConfig}
+ config: {get_attr: [allNodesConfig, config_id]}
servers: {get_attr: [Controller, attributes, nova_server_resource]}
ComputeAllNodesDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: allNodesConfig}
+ config: {get_attr: [allNodesConfig, config_id]}
+ servers: {get_attr: [Compute, attributes, nova_server_resource]}
+
+ BlockStorageAllNodesDeployment:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ config: {get_attr: [allNodesConfig, config_id]}
+ servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
+
+ ObjectStorageAllNodesDeployment:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ config: {get_attr: [allNodesConfig, config_id]}
+ servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
+
+ # Nested stack deployment runs after all other controller deployments
+ ControllerNodesPostDeployment:
+ type: OS::TripleO::ControllerPostDeployment
+ depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment]
+ properties:
+ servers: {get_attr: [Controller, attributes, nova_server_resource]}
+
+ ComputeNodesPostDeployment:
+ type: OS::TripleO::ComputePostDeployment
+ depends_on: ComputeAllNodesDeployment
+ properties:
servers: {get_attr: [Compute, attributes, nova_server_resource]}
+ ObjectStorageNodesPostDeployment:
+ type: OS::TripleO::ObjectStoragePostDeployment
+ depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
+ properties:
+ servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
+
+ BlockStorageNodesPostDeployment:
+ type: OS::TripleO::BlockStoragePostDeployment
+ depends_on: BlockStorageAllNodesDeployment
+ properties:
+ servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
outputs:
KeystoneURL: