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