99cdabc403
To deploy Ceph on IPv6, we need to enable ms_bind_ipv6 in addition to passing the list of MON IPs in brackets. Change-Id: I3644b8fc06458e68574afa5573f07442f0a09190
102 lines
3.6 KiB
YAML
102 lines
3.6 KiB
YAML
heat_template_version: 2015-04-30
|
|
description: 'Configure parameters for an external Ceph cluster via Puppet.'
|
|
|
|
parameters:
|
|
ceph_storage_count:
|
|
default: 0
|
|
type: number
|
|
description: Number of Ceph storage nodes. Used to enable/disable managed Ceph installation.
|
|
ceph_external_mon_ips:
|
|
default: ''
|
|
type: string
|
|
description: List of external Ceph Mon host IPs.
|
|
ceph_client_key:
|
|
default: ''
|
|
type: string
|
|
description: Ceph key used to create the 'openstack' user keyring.
|
|
ceph_fsid:
|
|
default: ''
|
|
type: string
|
|
# The following parameters are unused for external Ceph clusters and
|
|
# are here and exist for compatibility
|
|
ceph_admin_key:
|
|
default: ''
|
|
type: string
|
|
ceph_mon_key:
|
|
default: ''
|
|
type: string
|
|
ceph_mon_names:
|
|
type: comma_delimited_list
|
|
ceph_mon_ips:
|
|
type: comma_delimited_list
|
|
NovaRbdPoolName:
|
|
default: vms
|
|
type: string
|
|
CinderRbdPoolName:
|
|
default: volumes
|
|
type: string
|
|
GlanceRbdPoolName:
|
|
default: images
|
|
type: string
|
|
CephClientUserName:
|
|
default: openstack
|
|
type: string
|
|
CephIPv6:
|
|
default: False
|
|
type: boolean
|
|
|
|
resources:
|
|
CephClusterConfigImpl:
|
|
type: OS::Heat::StructuredConfig
|
|
properties:
|
|
group: os-apply-config
|
|
config:
|
|
hiera:
|
|
datafiles:
|
|
ceph_cluster:
|
|
mapped_data:
|
|
ceph_storage_count: {get_param: ceph_storage_count}
|
|
enable_external_ceph: true
|
|
ceph_ipv6: {get_param: CephIPv6}
|
|
ceph_mon_host: {get_param: ceph_external_mon_ips}
|
|
ceph_mon_host_v6: {get_param: ceph_external_mon_ips}
|
|
ceph::profile::params::fsid: {get_param: ceph_fsid}
|
|
ceph::profile::params::client_keys:
|
|
str_replace:
|
|
template: "{
|
|
client.CLIENT_USER: {
|
|
secret: 'CLIENT_KEY',
|
|
mode: '0644',
|
|
cap_mon: 'allow r',
|
|
cap_osd: 'allow class-read object_prefix rbd_children, allow rwx pool=CINDER_POOL, allow rwx pool=NOVA_POOL, allow rwx pool=GLANCE_POOL'
|
|
}
|
|
}"
|
|
params:
|
|
CLIENT_USER: {get_param: CephClientUserName}
|
|
CLIENT_KEY: {get_param: ceph_client_key}
|
|
NOVA_POOL: {get_param: NovaRbdPoolName}
|
|
CINDER_POOL: {get_param: CinderRbdPoolName}
|
|
GLANCE_POOL: {get_param: GlanceRbdPoolName}
|
|
ceph::profile::params::ms_bind_ipv6: {get_param: CephIPv6}
|
|
nova::compute::rbd::libvirt_images_rbd_pool: {get_param: NovaRbdPoolName}
|
|
cinder_rbd_pool_name: {get_param: CinderRbdPoolName}
|
|
glance::backend::rbd::rbd_store_pool: {get_param: GlanceRbdPoolName}
|
|
nova::compute::rbd::libvirt_rbd_user: {get_param: CephClientUserName}
|
|
glance::backend::rbd::rbd_store_user: {get_param: CephClientUserName}
|
|
nova::compute::rbd::rbd_keyring:
|
|
list_join:
|
|
- '.'
|
|
- - 'client'
|
|
- {get_param: CephClientUserName}
|
|
ceph_client_user_name: {get_param: CephClientUserName}
|
|
ceph_pools:
|
|
- {get_param: CinderRbdPoolName}
|
|
- {get_param: NovaRbdPoolName}
|
|
- {get_param: GlanceRbdPoolName}
|
|
|
|
outputs:
|
|
config_id:
|
|
description: The ID of the CephClusterConfigImpl resource.
|
|
value:
|
|
{get_resource: CephClusterConfigImpl}
|