Ability to enable/disable debug mode per OpenStack service
[apex-tripleo-heat-templates.git] / puppet / services / heat-base.yaml
1 heat_template_version: pike
2
3 description: >
4   Openstack Heat base service. Shared for all Heat services.
5
6 parameters:
7   Debug:
8     default: ''
9     description: Set to True to enable debugging on all services.
10     type: string
11   HeatDebug:
12     default: ''
13     description: Set to True to enable debugging Heat services.
14     type: string
15   RabbitPassword:
16     description: The password for RabbitMQ
17     type: string
18     hidden: true
19   RabbitUserName:
20     default: guest
21     description: The username for RabbitMQ
22     type: string
23   RabbitClientUseSSL:
24     default: false
25     description: >
26         Rabbit client subscriber parameter to specify
27         an SSL connection to the RabbitMQ host.
28     type: string
29   RabbitClientPort:
30     default: 5672
31     description: Set rabbit subscriber port, change this if using SSL
32     type: number
33   ServiceNetMap:
34     default: {}
35     description: Mapping of service_name -> network name. Typically set
36                  via parameter_defaults in the resource registry.  This
37                  mapping overrides those in ServiceNetMapDefaults.
38     type: json
39   HeatPassword:
40     description: The password for the Heat service and db account, used by the Heat services.
41     type: string
42     hidden: true
43   DefaultPasswords:
44     default: {}
45     type: json
46   RoleName:
47     default: ''
48     description: Role name on which the service is applied
49     type: string
50   RoleParameters:
51     default: {}
52     description: Parameters specific to the role
53     type: json
54   EndpointMap:
55     default: {}
56     description: Mapping of service endpoint -> protocol. Typically set
57                  via parameter_defaults in the resource registry.
58     type: json
59   HeatCronPurgeDeletedEnsure:
60     type: string
61     description: >
62         Cron to purge db entries marked as deleted and older than $age - Ensure
63     default: 'present'
64   HeatCronPurgeDeletedMinute:
65     type: string
66     description: >
67         Cron to purge db entries marked as deleted and older than $age - Minute
68     default: '1'
69   HeatCronPurgeDeletedHour:
70     type: string
71     description: >
72         Cron to purge db entries marked as deleted and older than $age - Hour
73     default: '0'
74   HeatCronPurgeDeletedMonthday:
75     type: string
76     description: >
77         Cron to purge db entries marked as deleted and older than $age - Month Day
78     default: '*'
79   HeatCronPurgeDeletedMonth:
80     type: string
81     description: >
82         Cron to purge db entries marked as deleted and older than $age - Month
83     default: '*'
84   HeatCronPurgeDeletedWeekday:
85     type: string
86     description: >
87         Cron to purge db entries marked as deleted and older than $age - Week Day
88     default: '*'
89   HeatCronPurgeDeletedMaxDelay:
90     type: string
91     description: >
92         Cron to purge db entries marked as deleted and older than $age - Max Delay
93     default: '3600'
94   HeatCronPurgeDeletedUser:
95     type: string
96     description: >
97         Cron to purge db entries marked as deleted and older than $age - User
98     default: 'heat'
99   HeatCronPurgeDeletedAge:
100     type: string
101     description: >
102         Cron to purge db entries marked as deleted and older than $age - Age
103     default: '30'
104   HeatCronPurgeDeletedAgeType:
105     type: string
106     description: >
107         Cron to purge db entries marked as deleted and older than $age - Age type
108     default: 'days'
109   HeatCronPurgeDeletedDestination:
110     type: string
111     description: >
112         Cron to purge db entries marked as deleted and older than $age - Log destination
113     default: '/dev/null'
114   HeatMaxJsonBodySize:
115     default: 1048576
116     description: Maximum raw byte size of the Heat API JSON request body.
117     type: number
118
119 conditions:
120   service_debug_unset: {equals : [{get_param: HeatDebug}, '']}
121
122 outputs:
123   role_data:
124     description: Shared role data for the Heat services.
125     value:
126       service_name: heat_base
127       config_settings:
128         heat::rabbit_userid: {get_param: RabbitUserName}
129         heat::rabbit_password: {get_param: RabbitPassword}
130         heat::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
131         heat::rabbit_port: {get_param: RabbitClientPort}
132         heat::debug:
133           if:
134           - service_debug_unset
135           - {get_param: Debug }
136           - {get_param: HeatDebug }
137         heat::enable_proxy_headers_parsing: true
138         heat::rpc_response_timeout: 600
139         # We need this because the default heat policy.json no longer works on TripleO
140         # https://git.openstack.org/cgit/openstack/heat/commit/?id=ac86702172ddf01f5bdc3f3cd99d2e32ad9b7024
141         heat::policy::policies:
142           context_is_admin:
143             key: 'context_is_admin'
144             value: 'role:admin'
145         heat::rabbit_heartbeat_timeout_threshold: 60
146         heat::keystone::authtoken::project_name: 'service'
147         heat::keystone::authtoken::user_domain_name: 'Default'
148         heat::keystone::authtoken::project_domain_name: 'Default'
149         heat::keystone::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix] }
150         heat::keystone::authtoken::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix] }
151         heat::keystone::authtoken::password: {get_param: HeatPassword}
152         heat::keystone::domain::domain_name: 'heat_stack'
153         heat::keystone::domain::domain_admin: 'heat_stack_domain_admin'
154         heat::keystone::domain::domain_admin_email: 'heat_stack_domain_admin@localhost'
155         heat::db::database_db_max_retries: -1
156         heat::db::database_max_retries: -1
157         heat::yaql_memory_quota: 100000
158         heat::yaql_limit_iterators: 1000
159         heat::cron::purge_deleted::ensure: {get_param: HeatCronPurgeDeletedEnsure}
160         heat::cron::purge_deleted::minute: {get_param: HeatCronPurgeDeletedMinute}
161         heat::cron::purge_deleted::hour: {get_param: HeatCronPurgeDeletedHour}
162         heat::cron::purge_deleted::monthday: {get_param: HeatCronPurgeDeletedMonthday}
163         heat::cron::purge_deleted::month: {get_param: HeatCronPurgeDeletedMonth}
164         heat::cron::purge_deleted::weekday: {get_param: HeatCronPurgeDeletedWeekday}
165         heat::cron::purge_deleted::maxdelay: {get_param: HeatCronPurgeDeletedMaxDelay}
166         heat::cron::purge_deleted::user: {get_param: HeatCronPurgeDeletedUser}
167         heat::cron::purge_deleted::age: {get_param: HeatCronPurgeDeletedAge}
168         heat::cron::purge_deleted::age_type: {get_param: HeatCronPurgeDeletedAgeType}
169         heat::cron::purge_deleted::destination: {get_param: HeatCronPurgeDeletedDestination}
170         heat::max_json_body_size: {get_param: HeatMaxJsonBodySize}
171       service_config_settings:
172         keystone:
173           tripleo::profile::base::keystone::heat_admin_domain: 'heat_stack'
174           tripleo::profile::base::keystone::heat_admin_user: 'heat_stack_domain_admin'
175           tripleo::profile::base::keystone::heat_admin_email: 'heat_stack_domain_admin@localhost'