Merge "Add ComputeHCI role and related validations"
[apex-tripleo-heat-templates.git] / puppet / services / ceilometer-base.yaml
1 heat_template_version: pike
2
3 description: >
4   OpenStack Ceilometer service configured with Puppet
5
6 parameters:
7   ServiceData:
8     default: {}
9     description: Dictionary packing service data
10     type: json
11   ServiceNetMap:
12     default: {}
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.
16     type: json
17   DefaultPasswords:
18     default: {}
19     type: json
20   RoleName:
21     default: ''
22     description: Role name on which the service is applied
23     type: string
24   RoleParameters:
25     default: {}
26     description: Parameters specific to the role
27     type: json
28   EndpointMap:
29     default: {}
30     description: Mapping of service endpoint -> protocol. Typically set
31                  via parameter_defaults in the resource registry.
32     type: json
33   CeilometerMeteringSecret:
34     description: Secret shared by the ceilometer services.
35     type: string
36     hidden: true
37   CeilometerPassword:
38     description: The password for the ceilometer service account.
39     type: string
40     hidden: true
41   CeilometerWorkers:
42     default: 0
43     description: Number of workers for Ceilometer service.
44     type: number
45   ManageEventPipeline:
46     default: false
47     description: Whether to manage event_pipeline.yaml.
48     type: boolean
49   EventPipelinePublishers:
50     default: ['gnocchi://']
51     description: >
52         A list of publishers to put in event_pipeline.yaml. When the
53         collector is used, override this with notifier:// publisher.
54         Set ManageEventPipeline to true for override to take effect.
55     type: comma_delimited_list
56   ManagePipeline:
57     default: false
58     description: Whether to manage pipeline.yaml.
59     type: boolean
60   PipelinePublishers:
61     default: ['gnocchi://']
62     description: >
63         A list of publishers to put in pipeline.yaml. When the
64         collector is used, override this with notifier:// publisher.
65         Set ManagePipeline to true for override to take effect.
66     type: comma_delimited_list
67   Debug:
68     default: ''
69     description: Set to True to enable debugging on all services.
70     type: string
71   CeilometerDebug:
72     default: ''
73     description: Set to True to enable debugging Ceilometer services.
74     type: string
75   KeystoneRegion:
76     type: string
77     default: 'regionOne'
78     description: Keystone region for endpoint
79   RabbitPassword:
80     description: The password for RabbitMQ
81     type: string
82     hidden: true
83   RabbitUserName:
84     default: guest
85     description: The username for RabbitMQ
86     type: string
87   RabbitClientUseSSL:
88     default: false
89     description: >
90         Rabbit client subscriber parameter to specify
91         an SSL connection to the RabbitMQ host.
92     type: string
93   RabbitClientPort:
94     default: 5672
95     description: Set rabbit subscriber port, change this if using SSL
96     type: number
97   CeilometerApiEndpoint:
98     default: false
99     description: Whether to create or skip API endpoint. Set this to
100         false, if you choose to disable Ceilometer API service.
101     type: boolean
102   SnmpdReadonlyUserName:
103     default: ro_snmp_user
104     description: The user name for SNMPd with readonly rights running on all Overcloud nodes
105     type: string
106   SnmpdReadonlyUserPassword:
107     description: The user password for SNMPd with readonly rights running on all Overcloud nodes
108     type: string
109     hidden: true
110   NotificationDriver:
111     type: string
112     default: 'messagingv2'
113     description: Driver or drivers to handle sending notifications.
114     constraints:
115       - allowed_values: [ 'messagingv2', 'noop' ]
116
117 conditions:
118   service_debug_unset: {equals : [{get_param: CeilometerDebug}, '']}
119
120 outputs:
121   role_data:
122     description: Role data for the Ceilometer role.
123     value:
124       service_name: ceilometer_base
125       config_settings:
126         ceilometer::debug:
127           if:
128           - service_debug_unset
129           - {get_param: Debug }
130           - {get_param: CeilometerDebug }
131         ceilometer::keystone::authtoken::project_name: 'service'
132         ceilometer::keystone::authtoken::user_domain_name: 'Default'
133         ceilometer::keystone::authtoken::project_domain_name: 'Default'
134         ceilometer::keystone::authtoken::password: {get_param: CeilometerPassword}
135         ceilometer::keystone::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix] }
136         ceilometer::keystone::authtoken::auth_url: { get_param: [EndpointMap, KeystoneInternal, uri_no_suffix] }
137         ceilometer::agent::auth::auth_password: {get_param: CeilometerPassword}
138         ceilometer::agent::auth::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix] }
139         ceilometer::agent::notification::manage_event_pipeline: {get_param: ManageEventPipeline}
140         ceilometer::agent::notification::event_pipeline_publishers: {get_param: EventPipelinePublishers}
141         ceilometer::agent::notification::manage_pipeline: {get_param: ManagePipeline}
142         ceilometer::agent::notification::pipeline_publishers: {get_param: PipelinePublishers}
143         ceilometer::agent::auth::auth_region: {get_param: KeystoneRegion}
144         ceilometer::agent::auth::auth_tenant_name: 'service'
145         ceilometer::agent::auth::auth_user_domain_name: 'Default'
146         ceilometer::agent::auth::auth_project_domain_name: 'Default'
147         ceilometer::agent::auth::auth_endpoint_type: 'internalURL'
148         ceilometer::dispatcher::gnocchi::url: {get_param: [EndpointMap, GnocchiInternal, uri]}
149         ceilometer::dispatcher::gnocchi::filter_project: 'service'
150         ceilometer::dispatcher::gnocchi::archive_policy: 'low'
151         ceilometer::dispatcher::gnocchi::resources_definition_file: 'gnocchi_resources.yaml'
152         ceilometer::notification_driver: {get_param: NotificationDriver}
153         ceilometer::rabbit_userid: {get_param: RabbitUserName}
154         ceilometer::rabbit_password: {get_param: RabbitPassword}
155         ceilometer::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
156         ceilometer::rabbit_port: {get_param: RabbitClientPort}
157         ceilometer::rabbit_heartbeat_timeout_threshold: 60
158         ceilometer::telemetry_secret: {get_param: CeilometerMeteringSecret}
159         ceilometer::snmpd_readonly_username: {get_param: SnmpdReadonlyUserName}
160         ceilometer::snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
161       service_config_settings:
162         keystone:
163           ceilometer_auth_enabled: true
164           ceilometer::keystone::auth::public_url: {get_param: [EndpointMap, CeilometerPublic, uri]}
165           ceilometer::keystone::auth::internal_url: {get_param: [EndpointMap, CeilometerInternal, uri]}
166           ceilometer::keystone::auth::admin_url: {get_param: [EndpointMap, CeilometerAdmin, uri]}
167           ceilometer::keystone::auth::password: {get_param: CeilometerPassword}
168           ceilometer::keystone::auth::region: {get_param: KeystoneRegion}
169           ceilometer::keystone::auth::tenant: 'service'
170           ceilometer::keystone::auth::configure_endpoint: {get_param: CeilometerApiEndpoint}
171         mysql:
172           ceilometer::db::mysql::password: {get_param: CeilometerPassword}
173           ceilometer::db::mysql::user: ceilometer
174           ceilometer::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
175           ceilometer::db::mysql::dbname: ceilometer
176           ceilometer::db::mysql::allowed_hosts:
177             - '%'
178             - "%{hiera('mysql_bind_host')}"