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: The Ceph cluster FSID. Must be a UUID.
49 description: default pg_num to use for the RBD pools
54 It can be used to override settings for one of the predefined pools, or to create
55 additional ones. Example:
68 CinderBackupRbdPoolName:
81 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.
88 description: default minimum replication for RBD copies
94 DockerCephDaemonImage:
97 default: 'ceph/daemon:tag-build-master-jewel-centos-7'
100 custom_registry_host:
102 data: {get_param: DockerCephDaemonImage}
103 expression: $.data.split('/')[0].matches('(\.|:)')
107 description: Role data for the Ceph base service.
109 service_name: ceph_base
117 service_workflow_tasks:
119 - name: ceph_base_ansible_workflow
120 workflow: { get_param: CephAnsibleWorkflowName }
122 ceph_ansible_extra_vars: {get_param: CephAnsibleExtraConfig}
123 ceph_ansible_playbook: {get_param: CephAnsiblePlaybook}
125 ceph_common_ansible_vars:
126 fsid: { get_param: CephClusterFSID }
128 ceph_docker_registry:
130 - custom_registry_host
132 expression: regex('(?:https?://)?(.*)/').split($.data)[1]
133 data: {str_split: [':', {get_param: DockerCephDaemonImage}, 0]}
137 - custom_registry_host
139 expression: regex('(?:https?://)?(.*)/').split($.data)[2]
140 data: {str_split: [':', {get_param: DockerCephDaemonImage}, 0]}
141 - {str_split: [':', {get_param: DockerCephDaemonImage}, 0]}
142 ceph_docker_image_tag: {str_split: [':', {get_param: DockerCephDaemonImage}, 1]}
143 containerized_deployment: true
144 public_network: {get_param: [ServiceData, net_cidr_map, {get_param: [ServiceNetMap, CephMonNetwork]}]}
145 cluster_network: {get_param: [ServiceData, net_cidr_map, {get_param: [ServiceNetMap, CephClusterNetwork]}]}
149 openstack_config: true
155 pg_num: {get_param: CephPoolDefaultPgNum}
159 - {get_param: CinderRbdPoolName}
160 - {get_param: CinderBackupRbdPoolName}
161 - {get_param: NovaRbdPoolName}
162 - {get_param: GlanceRbdPoolName}
163 - {get_param: GnocchiRbdPoolName}
167 pg_num: {get_param: CephPoolDefaultPgNum}
170 <%pool%>: {get_param: CephPools}
171 openstack_keys: &openstack_keys
176 - {get_param: CephClientUserName}
177 key: {get_param: CephClientKey}
181 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"
183 NOVA_POOL: {get_param: NovaRbdPoolName}
184 CINDER_POOL: {get_param: CinderRbdPoolName}
185 CINDERBACKUP_POOL: {get_param: CinderBackupRbdPoolName}
186 GLANCE_POOL: {get_param: GlanceRbdPoolName}
187 GNOCCHI_POOL: {get_param: GnocchiRbdPoolName}
193 keys: *openstack_keys
197 osd_pool_default_size: {get_param: CephPoolDefaultSize}
198 osd_pool_default_pg_num: {get_param: CephPoolDefaultPgNum}
199 ntp_service_enabled: false
203 - {get_param: CephIPv6}