Merge "Adds etcd composable service"
[apex-tripleo-heat-templates.git] / puppet / services / nova-base.yaml
1 heat_template_version: ocata
2
3 description: >
4   OpenStack Nova base service. Shared for all Nova services.
5
6 parameters:
7   ServiceNetMap:
8     default: {}
9     description: Mapping of service_name -> network name. Typically set
10                  via parameter_defaults in the resource registry.  This
11                  mapping overrides those in ServiceNetMapDefaults.
12     type: json
13   DefaultPasswords:
14     default: {}
15     type: json
16   EndpointMap:
17     default: {}
18     description: Mapping of service endpoint -> protocol. Typically set
19                  via parameter_defaults in the resource registry.
20     type: json
21   NovaPassword:
22     description: The password for the nova service and db account, used by nova-api.
23     type: string
24     hidden: true
25   NeutronPassword:
26     description: The password for the neutron service and db account, used by neutron agents.
27     type: string
28     hidden: true
29   NovaOVSBridge:
30     default: 'br-int'
31     description: Name of integration bridge used by Open vSwitch
32     type: string
33   RabbitPassword:
34     description: The password for RabbitMQ
35     type: string
36     hidden: true
37   RabbitUserName:
38     default: guest
39     description: The username for RabbitMQ
40     type: string
41   RabbitClientUseSSL:
42     default: false
43     description: >
44         Rabbit client subscriber parameter to specify
45         an SSL connection to the RabbitMQ host.
46     type: string
47   RabbitClientPort:
48     default: 5672
49     description: Set rabbit subscriber port, change this if using SSL
50     type: number
51   Debug:
52     type: string
53     default: ''
54     description: Set to True to enable debugging on all services.
55   EnableConfigPurge:
56     type: boolean
57     default: true
58     description: >
59         Remove configuration that is not generated by TripleO. Setting
60         to false may result in configuration remnants after updates/upgrades.
61   NovaIPv6:
62     default: false
63     description: Enable IPv6 features in Nova
64     type: boolean
65   UpgradeLevelNovaCompute:
66     type: string
67     description: Nova Compute upgrade level
68     default: ''
69   NovaCronArchiveDeleteRowsMinute:
70     type: string
71     description: >
72         Cron to move deleted instances to another table - Minute
73     default: '1'
74   NovaCronArchiveDeleteRowsHour:
75     type: string
76     description: >
77         Cron to move deleted instances to another table - Hour
78     default: '0'
79   NovaCronArchiveDeleteRowsMonthday:
80     type: string
81     description: >
82         Cron to move deleted instances to another table - Month Day
83     default: '*'
84   NovaCronArchiveDeleteRowsMonth:
85     type: string
86     description: >
87         Cron to move deleted instances to another table - Month
88     default: '*'
89   NovaCronArchiveDeleteRowsWeekday:
90     type: string
91     description: >
92         Cron to move deleted instances to another table - Week Day
93     default: '*'
94   NovaCronArchiveDeleteRowsMaxRows:
95     type: string
96     description: >
97         Cron to move deleted instances to another table - Max Rows
98     default: '100'
99   NovaCronArchiveDeleteRowsUser:
100     type: string
101     description: >
102         Cron to move deleted instances to another table - User
103     default: 'nova'
104   NovaCronArchiveDeleteRowsDestination:
105     type: string
106     description: >
107         Cron to move deleted instances to another table - Log destination
108     default: '/var/log/nova/nova-rowsflush.log'
109   NovaCronArchiveDeleteRowsUntilComplete:
110     type: boolean
111     description: >
112         Cron to move deleted instances to another table - Until complete
113     default: false
114
115
116 conditions:
117
118   compute_upgrade_level_empty: {equals : [{get_param: UpgradeLevelNovaCompute}, '']}
119
120 outputs:
121   role_data:
122     description: Role data for the Nova base service.
123     value:
124       service_name: nova_base
125       config_settings:
126         map_merge:
127         - nova::rabbit_password: {get_param: RabbitPassword}
128           nova::rabbit_userid: {get_param: RabbitUserName}
129           nova::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
130           nova::rabbit_port: {get_param: RabbitClientPort}
131           nova::database_connection:
132             list_join:
133               - ''
134               - - {get_param: [EndpointMap, MysqlInternal, protocol]}
135                 - '://nova:'
136                 - {get_param: NovaPassword}
137                 - '@'
138                 - {get_param: [EndpointMap, MysqlInternal, host]}
139                 - '/nova'
140                 - '?bind_address='
141                 - "%{hiera('tripleo::profile::base::database::mysql::client_bind_address')}"
142           nova::api_database_connection:
143             list_join:
144               - ''
145               - - {get_param: [EndpointMap, MysqlInternal, protocol]}
146                 - '://nova_api:'
147                 - {get_param: NovaPassword}
148                 - '@'
149                 - {get_param: [EndpointMap, MysqlInternal, host]}
150                 - '/nova_api'
151                 - '?bind_address='
152                 - "%{hiera('tripleo::profile::base::database::mysql::client_bind_address')}"
153           nova::placement_database_connection:
154             list_join:
155               - ''
156               - - {get_param: [EndpointMap, MysqlInternal, protocol]}
157                 - '://nova_placement:'
158                 - {get_param: NovaPassword}
159                 - '@'
160                 - {get_param: [EndpointMap, MysqlInternal, host]}
161                 - '/nova_placement'
162                 - '?bind_address='
163                 - "%{hiera('tripleo::profile::base::database::mysql::client_bind_address')}"
164           nova::debug: {get_param: Debug}
165           nova::purge_config: {get_param: EnableConfigPurge}
166           nova::network::neutron::neutron_project_name: 'service'
167           nova::network::neutron::neutron_username: 'neutron'
168           nova::network::neutron::dhcp_domain: ''
169           nova::network::neutron::neutron_password: {get_param: NeutronPassword}
170           nova::network::neutron::neutron_url: {get_param: [EndpointMap, NeutronInternal, uri]}
171           nova::network::neutron::neutron_auth_url: {get_param: [EndpointMap, KeystoneV3Admin, uri]}
172           nova::rabbit_heartbeat_timeout_threshold: 60
173           nova::cinder_catalog_info: 'volumev2:cinderv2:internalURL'
174           nova::host: '%{::fqdn}'
175           nova::notify_on_state_change: 'vm_and_task_state'
176           nova::notification_driver: messagingv2
177           nova::network::neutron::neutron_auth_type: 'v3password'
178           nova::db::database_db_max_retries: -1
179           nova::db::database_max_retries: -1
180           nova::glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
181           nova::use_ipv6: {get_param: NovaIPv6}
182           nova::network::neutron::neutron_ovs_bridge: {get_param: NovaOVSBridge}
183           nova::cron::archive_deleted_rows::minute: {get_param: NovaCronArchiveDeleteRowsMinute}
184           nova::cron::archive_deleted_rows::hour: {get_param: NovaCronArchiveDeleteRowsHour}
185           nova::cron::archive_deleted_rows::monthday: {get_param: NovaCronArchiveDeleteRowsMonthday}
186           nova::cron::archive_deleted_rows::month: {get_param: NovaCronArchiveDeleteRowsMonth}
187           nova::cron::archive_deleted_rows::weekday: {get_param: NovaCronArchiveDeleteRowsWeekday}
188           nova::cron::archive_deleted_rows::max_rows: {get_param: NovaCronArchiveDeleteRowsMaxRows}
189           nova::cron::archive_deleted_rows::user: {get_param: NovaCronArchiveDeleteRowsUser}
190           nova::cron::archive_deleted_rows::destination: {get_param: NovaCronArchiveDeleteRowsDestination}
191           nova::cron::archive_deleted_rows::until_complete: {get_param: NovaCronArchiveDeleteRowsUntilComplete}
192         -
193           if:
194           - compute_upgrade_level_empty
195           - {}
196           - nova::upgrade_level_compute: {get_param: UpgradeLevelNovaCompute}
197       service_config_settings:
198         mysql:
199           nova::rabbit_password: {get_param: RabbitPassword}
200           nova::rabbit_userid: {get_param: RabbitUserName}
201           nova::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
202           nova::rabbit_port: {get_param: RabbitClientPort}