Merge "Add networking-vpp ML2 mechanism driver support"
[apex-tripleo-heat-templates.git] / puppet / services / nova-base.yaml
1 heat_template_version: pike
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   KeystoneRegion:
22     type: string
23     default: 'regionOne'
24     description: Keystone region for endpoint
25   NovaPassword:
26     description: The password for the nova service and db account, used by nova-api.
27     type: string
28     hidden: true
29   NeutronPassword:
30     description: The password for the neutron service and db account, used by neutron agents.
31     type: string
32     hidden: true
33   NovaOVSBridge:
34     default: 'br-int'
35     description: Name of integration bridge used by Open vSwitch
36     type: string
37   RabbitPassword:
38     description: The password for RabbitMQ
39     type: string
40     hidden: true
41   RabbitUserName:
42     default: guest
43     description: The username for RabbitMQ
44     type: string
45   RabbitClientUseSSL:
46     default: false
47     description: >
48         Rabbit client subscriber parameter to specify
49         an SSL connection to the RabbitMQ host.
50     type: string
51   RabbitClientPort:
52     default: 5672
53     description: Set rabbit subscriber port, change this if using SSL
54     type: number
55   DatabaseSyncTimeout:
56     default: 300
57     description: DB Sync Timeout default
58     type: number
59   Debug:
60     type: string
61     default: ''
62     description: Set to True to enable debugging on all services.
63   EnableConfigPurge:
64     type: boolean
65     default: false
66     description: >
67         Remove configuration that is not generated by TripleO. Used to avoid
68         configuration remnants after upgrades.
69   NovaIPv6:
70     default: false
71     description: Enable IPv6 features in Nova
72     type: boolean
73   UpgradeLevelNovaCompute:
74     type: string
75     description: Nova Compute upgrade level
76     default: ''
77   NovaCronArchiveDeleteRowsMinute:
78     type: string
79     description: >
80         Cron to move deleted instances to another table - Minute
81     default: '1'
82   NovaCronArchiveDeleteRowsHour:
83     type: string
84     description: >
85         Cron to move deleted instances to another table - Hour
86     default: '0'
87   NovaCronArchiveDeleteRowsMonthday:
88     type: string
89     description: >
90         Cron to move deleted instances to another table - Month Day
91     default: '*'
92   NovaCronArchiveDeleteRowsMonth:
93     type: string
94     description: >
95         Cron to move deleted instances to another table - Month
96     default: '*'
97   NovaCronArchiveDeleteRowsWeekday:
98     type: string
99     description: >
100         Cron to move deleted instances to another table - Week Day
101     default: '*'
102   NovaCronArchiveDeleteRowsMaxRows:
103     type: string
104     description: >
105         Cron to move deleted instances to another table - Max Rows
106     default: '100'
107   NovaCronArchiveDeleteRowsUser:
108     type: string
109     description: >
110         Cron to move deleted instances to another table - User
111     default: 'nova'
112   NovaCronArchiveDeleteRowsDestination:
113     type: string
114     description: >
115         Cron to move deleted instances to another table - Log destination
116     default: '/var/log/nova/nova-rowsflush.log'
117   NovaCronArchiveDeleteRowsUntilComplete:
118     type: boolean
119     description: >
120         Cron to move deleted instances to another table - Until complete
121     default: false
122   NovaPlacementAPIInterface:
123     type: string
124     description: >
125         Endpoint interface to be used for the placement API.
126     default: 'internal'
127
128 conditions:
129
130   compute_upgrade_level_empty: {equals : [{get_param: UpgradeLevelNovaCompute}, '']}
131
132 outputs:
133   role_data:
134     description: Role data for the Nova base service.
135     value:
136       service_name: nova_base
137       config_settings:
138         map_merge:
139         - nova::rabbit_password: {get_param: RabbitPassword}
140           nova::rabbit_userid: {get_param: RabbitUserName}
141           nova::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
142           nova::rabbit_port: {get_param: RabbitClientPort}
143           nova::placement::project_name: 'service'
144           nova::placement::password: {get_param: NovaPassword}
145           nova::placement::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
146           nova::placement::os_region_name: {get_param: KeystoneRegion}
147           nova::placement::os_interface: {get_param: NovaPlacementAPIInterface}
148           nova::database_connection:
149             make_url:
150               scheme: {get_param: [EndpointMap, MysqlInternal, protocol]}
151               username: nova
152               password: {get_param: NovaPassword}
153               host: {get_param: [EndpointMap, MysqlInternal, host]}
154               path: /nova
155               query:
156                 read_default_file: /etc/my.cnf.d/tripleo.cnf
157                 read_default_group: tripleo
158           nova::cell0_database_connection:
159             make_url:
160               scheme: {get_param: [EndpointMap, MysqlInternal, protocol]}
161               username: nova
162               password: {get_param: NovaPassword}
163               host: {get_param: [EndpointMap, MysqlInternal, host]}
164               path: /nova_cell0
165               query:
166                 read_default_file: /etc/my.cnf.d/tripleo.cnf
167                 read_default_group: tripleo
168           nova::api_database_connection:
169             make_url:
170               scheme: {get_param: [EndpointMap, MysqlInternal, protocol]}
171               username: nova_api
172               password: {get_param: NovaPassword}
173               host: {get_param: [EndpointMap, MysqlInternal, host]}
174               path: /nova_api
175               query:
176                 read_default_file: /etc/my.cnf.d/tripleo.cnf
177                 read_default_group: tripleo
178           nova::placement_database_connection:
179             make_url:
180               scheme: {get_param: [EndpointMap, MysqlInternal, protocol]}
181               username: nova_placement
182               password: {get_param: NovaPassword}
183               host: {get_param: [EndpointMap, MysqlInternal, host]}
184               path: /nova_placement
185               query:
186                 read_default_file: /etc/my.cnf.d/tripleo.cnf
187                 read_default_group: tripleo
188           nova::debug: {get_param: Debug}
189           nova::purge_config: {get_param: EnableConfigPurge}
190           nova::network::neutron::neutron_project_name: 'service'
191           nova::network::neutron::neutron_username: 'neutron'
192           nova::network::neutron::neutron_region_name: {get_param: KeystoneRegion}
193           nova::network::neutron::dhcp_domain: ''
194           nova::network::neutron::neutron_password: {get_param: NeutronPassword}
195           nova::network::neutron::neutron_url: {get_param: [EndpointMap, NeutronInternal, uri]}
196           nova::network::neutron::neutron_auth_url: {get_param: [EndpointMap, KeystoneV3Admin, uri]}
197           nova::rabbit_heartbeat_timeout_threshold: 60
198           nova::cinder_catalog_info: 'volumev2:cinderv2:internalURL'
199           nova::host: '%{::fqdn}'
200           nova::notify_on_state_change: 'vm_and_task_state'
201           nova::notification_driver: messagingv2
202           nova::network::neutron::neutron_auth_type: 'v3password'
203           nova::db::database_db_max_retries: -1
204           nova::db::database_max_retries: -1
205           nova::db::sync::db_sync_timeout: {get_param: DatabaseSyncTimeout}
206           nova::db::sync_api::db_sync_timeout: {get_param: DatabaseSyncTimeout}
207           nova::glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
208           nova::use_ipv6: {get_param: NovaIPv6}
209           nova::network::neutron::neutron_ovs_bridge: {get_param: NovaOVSBridge}
210           nova::cron::archive_deleted_rows::minute: {get_param: NovaCronArchiveDeleteRowsMinute}
211           nova::cron::archive_deleted_rows::hour: {get_param: NovaCronArchiveDeleteRowsHour}
212           nova::cron::archive_deleted_rows::monthday: {get_param: NovaCronArchiveDeleteRowsMonthday}
213           nova::cron::archive_deleted_rows::month: {get_param: NovaCronArchiveDeleteRowsMonth}
214           nova::cron::archive_deleted_rows::weekday: {get_param: NovaCronArchiveDeleteRowsWeekday}
215           nova::cron::archive_deleted_rows::max_rows: {get_param: NovaCronArchiveDeleteRowsMaxRows}
216           nova::cron::archive_deleted_rows::user: {get_param: NovaCronArchiveDeleteRowsUser}
217           nova::cron::archive_deleted_rows::destination: {get_param: NovaCronArchiveDeleteRowsDestination}
218           nova::cron::archive_deleted_rows::until_complete: {get_param: NovaCronArchiveDeleteRowsUntilComplete}
219         -
220           if:
221           - compute_upgrade_level_empty
222           - {}
223           - nova::upgrade_level_compute: {get_param: UpgradeLevelNovaCompute}
224       service_config_settings:
225         mysql:
226           # NOTE(aschultz): this should be configurable if/when we support more
227           # complex cell v2 configurations. For now, this is the default cell
228           # created for the cell v2 configuration
229           nova::db::mysql_api::setup_cell0: true
230           nova::rabbit_password: {get_param: RabbitPassword}
231           nova::rabbit_userid: {get_param: RabbitUserName}
232           nova::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
233           nova::rabbit_port: {get_param: RabbitClientPort}