Add Ceph related templates needed to configure Cinder with Ceph
The new ceph-source.yaml file provides the config settings needed by the elements which configure Ceph on controllers (monitors) and storage nodes (OSDs) as well as the Cinder backend which uses it. There is also a without-mergepy copy named ceph-storage.yaml Change-Id: I954861536c41b2a7e6cbd86a0f0b55004eed4c70
This commit is contained in:
parent
d5eee576cc
commit
874e07dee1
2
Makefile
2
Makefile
@ -19,7 +19,7 @@ $(VALIDATE):
|
|||||||
# - overcloud-vlan-port.yaml to activate the VLAN auto-assignment from Neutron
|
# - overcloud-vlan-port.yaml to activate the VLAN auto-assignment from Neutron
|
||||||
# - nfs-source.yaml to configure Cinder with NFS
|
# - nfs-source.yaml to configure Cinder with NFS
|
||||||
overcloud.yaml: overcloud-source.yaml block-storage.yaml swift-deploy.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml nova-compute-config.yaml $(overcloud_source_deps)
|
overcloud.yaml: overcloud-source.yaml block-storage.yaml swift-deploy.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml nova-compute-config.yaml $(overcloud_source_deps)
|
||||||
python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE:-'0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'0'} overcloud-source.yaml block-storage.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml swift-deploy.yaml nova-compute-config.yaml ${CONTROLEXTRA} > $@.tmp
|
python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE:-'0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'0'} --scale CephStorage=$${CEPHSTORAGESCALE:-'0'} overcloud-source.yaml block-storage.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml swift-deploy.yaml nova-compute-config.yaml ${CONTROLEXTRA} > $@.tmp
|
||||||
mv $@.tmp $@
|
mv $@.tmp $@
|
||||||
|
|
||||||
undercloud-vm.yaml: undercloud-source.yaml undercloud-vm-nova-config.yaml undercloud-vm-nova-deploy.yaml
|
undercloud-vm.yaml: undercloud-source.yaml undercloud-vm-nova-config.yaml undercloud-vm-nova-deploy.yaml
|
||||||
|
106
ceph-source.yaml
Normal file
106
ceph-source.yaml
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
heat_template_version: 2013-05-23
|
||||||
|
description: 'Common Ceph Storage Configuration'
|
||||||
|
parameters:
|
||||||
|
CephStorageImage:
|
||||||
|
type: string
|
||||||
|
default: overcloud-ceph-storage
|
||||||
|
OvercloudCephStorageFlavor:
|
||||||
|
default: baremetal
|
||||||
|
description: Flavor for Ceph storage nodes to request when deploying.
|
||||||
|
type: string
|
||||||
|
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
|
||||||
|
resources:
|
||||||
|
CephStorage0:
|
||||||
|
type: OS::Nova::Server
|
||||||
|
properties:
|
||||||
|
image:
|
||||||
|
{get_param: CephStorageImage}
|
||||||
|
flavor: {get_param: OvercloudCephStorageFlavor}
|
||||||
|
key_name: {get_param: KeyName}
|
||||||
|
user_data_format: SOFTWARE_CONFIG
|
||||||
|
CephStorage0AllNodesDeployment:
|
||||||
|
depends_on: [CephStorage0Deployment,controller0CephDeployment]
|
||||||
|
type: OS::Heat::StructuredDeployment
|
||||||
|
properties:
|
||||||
|
server: {get_resource: CephStorage0}
|
||||||
|
config: {get_resource: allNodesConfig}
|
||||||
|
signal_transport: {get_param: DefaultSignalTransport}
|
||||||
|
CephStorage0Deployment:
|
||||||
|
type: OS::Heat::StructuredDeployment
|
||||||
|
properties:
|
||||||
|
server: {get_resource: CephStorage0}
|
||||||
|
config: {get_resource: CephStorage0Config}
|
||||||
|
signal_transport: NO_SIGNAL
|
||||||
|
CephStorage0Config:
|
||||||
|
type: OS::Heat::StructuredConfig
|
||||||
|
properties:
|
||||||
|
group: os-apply-config
|
||||||
|
config:
|
||||||
|
ceph:
|
||||||
|
fsid: {get_param: CephClusterFSID}
|
||||||
|
keyrings:
|
||||||
|
admin:
|
||||||
|
key: {get_param: CephAdminKey}
|
||||||
|
mon_nodes:
|
||||||
|
Merge::Map:
|
||||||
|
controller0:
|
||||||
|
ip: {get_attr: [controller0, networks, ctlplane, 0]}
|
||||||
|
name: {get_attr: [controller0, name]}
|
||||||
|
controller0CephDeployment:
|
||||||
|
type: OS::Heat::StructuredDeployment
|
||||||
|
properties:
|
||||||
|
server: {get_resource: controller0}
|
||||||
|
config: {get_resource: controller0CephConfig}
|
||||||
|
signal_transport: NO_SIGNAL
|
||||||
|
controller0CephConfig:
|
||||||
|
type: OS::Heat::StructuredConfig
|
||||||
|
properties:
|
||||||
|
group: os-apply-config
|
||||||
|
config:
|
||||||
|
cinder:
|
||||||
|
include_ceph_backend: true
|
||||||
|
ceph:
|
||||||
|
fsid: {get_param: CephClusterFSID}
|
||||||
|
keyrings:
|
||||||
|
mon:
|
||||||
|
key: {get_param: CephMonKey}
|
||||||
|
admin:
|
||||||
|
key: {get_param: CephAdminKey}
|
||||||
|
mon_nodes:
|
||||||
|
Merge::Map:
|
||||||
|
controller0:
|
||||||
|
ip: {get_attr: [controller0, networks, ctlplane, 0]}
|
||||||
|
name: {get_attr: [controller0, name]}
|
||||||
|
NovaCompute0CephDeployment:
|
||||||
|
depends_on: [controller0CephDeployment]
|
||||||
|
type: OS::Heat::StructuredDeployment
|
||||||
|
properties:
|
||||||
|
server: {get_resource: NovaCompute0}
|
||||||
|
config: {get_resource: NovaCompute0CephConfig}
|
||||||
|
signal_transport: NO_SIGNAL
|
||||||
|
NovaCompute0CephConfig:
|
||||||
|
type: OS::Heat::StructuredConfig
|
||||||
|
properties:
|
||||||
|
group: os-apply-config
|
||||||
|
config:
|
||||||
|
ceph:
|
||||||
|
fsid: {get_param: CephClusterFSID}
|
||||||
|
keyrings:
|
||||||
|
admin:
|
||||||
|
key: {get_param: CephAdminKey}
|
||||||
|
mon_nodes:
|
||||||
|
Merge::Map:
|
||||||
|
controller0:
|
||||||
|
ip: {get_attr: [controller0, networks, ctlplane, 0]}
|
||||||
|
name: {get_attr: [controller0, name]}
|
2
ceph-storage-puppet.yaml
Normal file
2
ceph-storage-puppet.yaml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
heat_template_version: 2014-10-16
|
||||||
|
description: 'Common Ceph Storage Configuration by Puppet'
|
105
ceph-storage.yaml
Normal file
105
ceph-storage.yaml
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
heat_template_version: 2014-10-16
|
||||||
|
description: 'Common Ceph Storage Configuration'
|
||||||
|
parameters:
|
||||||
|
Image:
|
||||||
|
type: string
|
||||||
|
default: overcloud-ceph-storage
|
||||||
|
KeyName:
|
||||||
|
default: default
|
||||||
|
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
|
||||||
|
type: string
|
||||||
|
Flavor:
|
||||||
|
default: baremetal
|
||||||
|
description: Flavor for block storage nodes to request when deploying.
|
||||||
|
type: string
|
||||||
|
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
|
||||||
|
CephMonitors:
|
||||||
|
default: ''
|
||||||
|
description: The list of ip/names to use as Ceph monitors
|
||||||
|
type: string
|
||||||
|
resources:
|
||||||
|
CephStorage:
|
||||||
|
type: OS::Nova::Server
|
||||||
|
properties:
|
||||||
|
image:
|
||||||
|
{get_param: Image}
|
||||||
|
flavor: {get_param: OvercloudCephStorageFlavor}
|
||||||
|
key_name: {get_param: KeyName}
|
||||||
|
user_data_format: SOFTWARE_CONFIG
|
||||||
|
networks:
|
||||||
|
- network: ctlplane
|
||||||
|
CephStorageDeployment:
|
||||||
|
type: OS::Heat::StructuredDeployment
|
||||||
|
properties:
|
||||||
|
server: {get_resource: CephStorage}
|
||||||
|
config: {get_resource: CephStorageConfig}
|
||||||
|
signal_transport: NO_SIGNAL
|
||||||
|
CephStorageConfig:
|
||||||
|
type: OS::Heat::StructuredConfig
|
||||||
|
properties:
|
||||||
|
group: os-apply-config
|
||||||
|
config:
|
||||||
|
ceph:
|
||||||
|
fsid: {get_param: CephClusterFSID}
|
||||||
|
keyrings:
|
||||||
|
admin:
|
||||||
|
key: {get_param: CephAdminKey}
|
||||||
|
mon_nodes: {get_param: CephMonitors}
|
||||||
|
ControllerCephDeployment:
|
||||||
|
type: OS::Heat::StructuredDeployment
|
||||||
|
properties:
|
||||||
|
server: {get_resource: Controller}
|
||||||
|
config: {get_resource: ControllerCephConfig}
|
||||||
|
signal_transport: NO_SIGNAL
|
||||||
|
ControllerCephConfig:
|
||||||
|
type: OS::Heat::StructuredConfig
|
||||||
|
properties:
|
||||||
|
group: os-apply-config
|
||||||
|
config:
|
||||||
|
cinder:
|
||||||
|
include_ceph_backend: true
|
||||||
|
ceph:
|
||||||
|
fsid: {get_param: CephClusterFSID}
|
||||||
|
keyrings:
|
||||||
|
mon:
|
||||||
|
key: {get_param: CephMonKey}
|
||||||
|
admin:
|
||||||
|
key: {get_param: CephAdminKey}
|
||||||
|
mon_nodes: {get_param: CephMonitors}
|
||||||
|
NovaComputeCephDeployment:
|
||||||
|
depends_on: [ControllerCephDeployment]
|
||||||
|
type: OS::Heat::StructuredDeployment
|
||||||
|
properties:
|
||||||
|
server: {get_resource: NovaCompute}
|
||||||
|
config: {get_resource: NovaComputeCephConfig}
|
||||||
|
signal_transport: NO_SIGNAL
|
||||||
|
NovaComputeCephConfig:
|
||||||
|
type: OS::Heat::StructuredConfig
|
||||||
|
properties:
|
||||||
|
group: os-apply-config
|
||||||
|
config:
|
||||||
|
ceph:
|
||||||
|
fsid: {get_param: CephClusterFSID}
|
||||||
|
keyrings:
|
||||||
|
admin:
|
||||||
|
key: {get_param: CephAdminKey}
|
||||||
|
mon_nodes: {get_param: CephMonitors}
|
||||||
|
outputs:
|
||||||
|
hosts_entry:
|
||||||
|
value:
|
||||||
|
str_replace:
|
||||||
|
template: "IP HOST HOST.novalocal"
|
||||||
|
params:
|
||||||
|
IP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
||||||
|
HOST: {get_attr: [CephStorage, name]}
|
@ -5,6 +5,7 @@ resource_registry:
|
|||||||
OS::TripleO::Controller: controller-puppet.yaml
|
OS::TripleO::Controller: controller-puppet.yaml
|
||||||
OS::TripleO::ObjectStorage: swift-storage-puppet.yaml
|
OS::TripleO::ObjectStorage: swift-storage-puppet.yaml
|
||||||
OS::TripleO::Net::SoftwareConfig: net-config-bridge.yaml
|
OS::TripleO::Net::SoftwareConfig: net-config-bridge.yaml
|
||||||
|
OS::TripleO::CephStorage: ceph-storage-puppet.yaml
|
||||||
|
|
||||||
# NOTE(dprince): requires a new release of python-heatclient
|
# NOTE(dprince): requires a new release of python-heatclient
|
||||||
#default_parameters:
|
#default_parameters:
|
||||||
|
@ -5,3 +5,4 @@ resource_registry:
|
|||||||
OS::TripleO::Controller: controller.yaml
|
OS::TripleO::Controller: controller.yaml
|
||||||
OS::TripleO::ObjectStorage: swift-storage.yaml
|
OS::TripleO::ObjectStorage: swift-storage.yaml
|
||||||
OS::TripleO::Net::SoftwareConfig: net-config-noop.yaml
|
OS::TripleO::Net::SoftwareConfig: net-config-noop.yaml
|
||||||
|
OS::TripleO::CephStorage: ceph-storage.yaml
|
||||||
|
@ -194,7 +194,18 @@ parameters:
|
|||||||
description: The user password for SNMPd with readonly rights running on all Overcloud nodes
|
description: The user password for SNMPd with readonly rights running on all Overcloud nodes
|
||||||
type: string
|
type: string
|
||||||
hidden: true
|
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
|
# Controller-specific params
|
||||||
AdminToken:
|
AdminToken:
|
||||||
@ -468,6 +479,18 @@ parameters:
|
|||||||
default: overcloud-swift-storage
|
default: overcloud-swift-storage
|
||||||
type: string
|
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:
|
resources:
|
||||||
|
|
||||||
Controller:
|
Controller:
|
||||||
@ -630,6 +653,20 @@ resources:
|
|||||||
Replicas: { get_param: SwiftReplicas}
|
Replicas: { get_param: SwiftReplicas}
|
||||||
NtpServer: {get_param: NtpServer}
|
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:
|
allNodesConfig:
|
||||||
type: OS::Heat::StructuredConfig
|
type: OS::Heat::StructuredConfig
|
||||||
@ -651,6 +688,9 @@ resources:
|
|||||||
- list_join:
|
- list_join:
|
||||||
- "\n"
|
- "\n"
|
||||||
- {get_attr: [ObjectStorage, hosts_entry]}
|
- {get_attr: [ObjectStorage, hosts_entry]}
|
||||||
|
- list_join:
|
||||||
|
- "\n"
|
||||||
|
- {get_attr: [CephStorage, hosts_entry]}
|
||||||
rabbit:
|
rabbit:
|
||||||
nodes:
|
nodes:
|
||||||
list_join:
|
list_join:
|
||||||
|
Loading…
Reference in New Issue
Block a user