47028610b2f6c0a1f16484cc34beda8bf5d38a0c
[apex-tripleo-heat-templates.git] / puppet / services / ceph-base.yaml
1 heat_template_version: 2016-04-08
2
3 description: >
4   Ceph base service. Shared by all Ceph services.
5
6 parameters:
7   CephAdminKey:
8     description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
9     type: string
10     hidden: true
11   CephClientKey:
12     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.
13     type: string
14     hidden: true
15   CephClientUserName:
16     default: openstack
17     type: string
18   CephClusterFSID:
19     type: string
20     description: The Ceph cluster FSID. Must be a UUID.
21   CephIPv6:
22     default: False
23     type: boolean
24   CinderRbdPoolName:
25     default: volumes
26     type: string
27   CinderBackupRbdPoolName:
28     default: backups
29     type: string
30   GlanceRbdPoolName:
31     default: images
32     type: string
33   GnocchiRbdPoolName:
34     default: metrics
35     type: string
36   NovaRbdPoolName:
37     default: vms
38     type: string
39   # DEPRECATED options for compatibility with overcloud.yaml
40   # This should be removed and manipulation of the ControllerServices list
41   # used instead, but we need client support for that first
42   ControllerEnableCephStorage:
43     default: false
44     description: Whether to deploy Ceph Storage (OSD) on the Controller
45     type: boolean
46
47 parameter_groups:
48 - label: deprecated
49   description: Do not use deprecated params, they will be removed.
50   parameters:
51   - ControllerEnableCephStorage
52
53 outputs:
54   role_data:
55     description: Role data for the Ceph base service.
56     value:
57       service_name: ceph_base
58       config_settings:
59         tripleo::profile::base::ceph::ceph_ipv6: {get_param: CephIPv6}
60         tripleo::profile::base::ceph::enable_ceph_storage: {get_param: ControllerEnableCephStorage}
61         ceph::profile::params::osd_pool_default_min_size: 1
62         ceph::profile::params::osds: {/srv/data: {}}
63         ceph::profile::params::manage_repo: false
64         ceph::profile::params::authentication_type: cephx
65         ceph::profile::params::fsid: {get_param: CephClusterFSID}
66         ceph::profile::params::client_keys:
67           str_replace:
68             template: "{
69               client.admin: {
70                 secret: 'ADMIN_KEY',
71                 mode: '0600',
72                 cap_mon: 'allow *',
73                 cap_osd: 'allow *',
74                 cap_mds: 'allow *'
75               },
76               client.bootstrap-osd: {
77                 secret: 'ADMIN_KEY',
78                 keyring_path: '/var/lib/ceph/bootstrap-osd/ceph.keyring',
79                 cap_mon: 'allow profile bootstrap-osd'
80               },
81               client.CLIENT_USER: {
82                 secret: 'CLIENT_KEY',
83                 mode: '0644',
84                 cap_mon: 'allow r',
85                 cap_osd: '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'
86               }
87             }"
88             params:
89               CLIENT_USER: {get_param: CephClientUserName}
90               CLIENT_KEY: {get_param: CephClientKey}
91               ADMIN_KEY: {get_param: CephAdminKey}
92               NOVA_POOL: {get_param: NovaRbdPoolName}
93               CINDER_POOL: {get_param: CinderRbdPoolName}
94               CINDERBACKUP_POOL: {get_param: CinderBackupRbdPoolName}
95               GLANCE_POOL: {get_param: GlanceRbdPoolName}
96               GNOCCHI_POOL: {get_param: GnocchiRbdPoolName}