1 heat_template_version: pike
4 Ceph base service. Shared by all Ceph services.
9 description: Dictionary packing service data
13 description: Mapping of service_name -> network name. Typically set
14 via parameter_defaults in the resource registry. This
15 mapping overrides those in ServiceNetMapDefaults.
22 description: Role name on which the service is applied
26 description: Parameters specific to the role
30 description: Mapping of service endpoint -> protocol. Typically set
31 via parameter_defaults in the resource registry.
33 CephAnsibleWorkflowName:
35 description: Name of the Mistral workflow to execute
36 default: tripleo.storage.v1.ceph-install
39 description: Path to the ceph-ansible playbook to execute
40 default: /usr/share/ceph-ansible/site-docker.yml.sample
41 CephAnsibleExtraConfig:
43 description: Extra vars for the ceph-ansible playbook
47 description: List of ceph-ansible tags to skip
48 default: 'package-install,with_pkg'
51 description: The Ceph cluster FSID. Must be a UUID.
53 description: default pg_num to use for the RBD pools
58 It can be used to override settings for one of the predefined pools, or to create
59 additional ones. Example:
72 CinderBackupRbdPoolName:
85 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
92 description: default minimum replication for RBD copies
95 ManilaCephFSNativeCephFSAuthId:
100 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key.
106 DockerCephDaemonImage:
109 default: 'ceph/daemon:tag-build-master-jewel-centos-7'
112 custom_registry_host:
114 data: {get_param: DockerCephDaemonImage}
115 expression: $.data.split('/')[0].matches('(\.|:)')
119 type: OS::Heat::Value
125 - custom_registry_host
127 expression: let(location => $.data.rightSplit(':', 1)[0]) -> regex('(?:https?://)?(.*)/').split($location)[1]
128 data: {get_param: DockerCephDaemonImage}
132 - custom_registry_host
134 expression: let(location => $.data.rightSplit(':', 1)[0]) -> regex('(?:https?://)?(.*)/').split($location)[2]
135 data: {get_param: DockerCephDaemonImage}
137 expression: $.data.rightSplit(':', 1)[0]
138 data: {get_param: DockerCephDaemonImage}
141 expression: $.data.rightSplit(':', 1)[1]
142 data: {get_param: DockerCephDaemonImage}
146 description: Role data for the Ceph base service.
148 service_name: ceph_base
156 service_workflow_tasks:
158 - name: ceph_base_ansible_workflow
159 workflow: { get_param: CephAnsibleWorkflowName }
161 ansible_skip_tags: {get_param: CephAnsibleSkipTags}
162 ceph_ansible_extra_vars: {get_param: CephAnsibleExtraConfig}
163 ceph_ansible_playbook: {get_param: CephAnsiblePlaybook}
165 ceph_common_ansible_vars:
167 fsid: { get_param: CephClusterFSID }
169 ceph_docker_registry: {get_attr: [DockerImageUrlParts, value, host]}
170 ceph_docker_image: {get_attr: [DockerImageUrlParts, value, image]}
171 ceph_docker_image_tag: {get_attr: [DockerImageUrlParts, value, image_tag]}
172 containerized_deployment: true
173 public_network: {get_param: [ServiceData, net_cidr_map, {get_param: [ServiceNetMap, CephMonNetwork]}]}
174 monitor_address_block: {get_param: [ServiceData, net_cidr_map, {get_param: [ServiceNetMap, CephMonNetwork]}]}
175 cluster_network: {get_param: [ServiceData, net_cidr_map, {get_param: [ServiceNetMap, CephClusterNetwork]}]}
179 openstack_config: true
185 pg_num: {get_param: CephPoolDefaultPgNum}
189 - {get_param: CinderRbdPoolName}
190 - {get_param: CinderBackupRbdPoolName}
191 - {get_param: NovaRbdPoolName}
192 - {get_param: GlanceRbdPoolName}
193 - {get_param: GnocchiRbdPoolName}
197 pg_num: {get_param: CephPoolDefaultPgNum}
200 <%pool%>: {get_param: CephPools}
201 openstack_keys: &openstack_keys
206 - {get_param: CephClientUserName}
207 key: {get_param: CephClientKey}
211 template: "allow class-read object_prefix rbd_children, allow rwx pool=CINDER_POOL, allow rwx pool=CINDERBACKUP_POOL, allow rwx pool=NOVA_POOL, allow rwx pool=GLANCE_POOL, allow rwx pool=GNOCCHI_POOL"
213 NOVA_POOL: {get_param: NovaRbdPoolName}
214 CINDER_POOL: {get_param: CinderRbdPoolName}
215 CINDERBACKUP_POOL: {get_param: CinderBackupRbdPoolName}
216 GLANCE_POOL: {get_param: GlanceRbdPoolName}
217 GNOCCHI_POOL: {get_param: GnocchiRbdPoolName}
223 - {get_param: ManilaCephFSNativeCephFSAuthId}
224 key: {get_param: CephManilaClientKey}
225 mon_cap: "allow r, allow command auth del, allow command auth caps, allow command auth get, allow command auth get-or-create"
229 keys: *openstack_keys
233 osd_pool_default_size: {get_param: CephPoolDefaultSize}
234 osd_pool_default_pg_num: {get_param: CephPoolDefaultPgNum}
235 ntp_service_enabled: false
239 - {get_param: CephIPv6}