Add SwiftMinPartHours parameter
[apex-tripleo-heat-templates.git] / nova-compute-instance.yaml
1 heat_template_version: 2013-05-23
2 description: 'Nova Compute'
3 parameters:
4   AdminPassword:
5     default: unset
6     description: The password for the keystone admin account, used for monitoring, querying neutron etc.
7     type: string
8     hidden: true
9   ExtraConfig:
10     default: {}
11     description: |
12       Additional configuration to inject into the cluster. The JSON should have
13       the following structure:
14         {"FILEKEY":
15           {"config":
16             [{"section": "SECTIONNAME",
17               "values":
18                 [{"option": "OPTIONNAME",
19                   "value": "VALUENAME"
20                  }
21                 ]
22              }
23             ]
24           }
25         }
26       For instance:
27         {"nova":
28           {"config":
29             [{"section": "default",
30               "values":
31                 [{"option": "force_config_drive",
32                   "value": "always"
33                  }
34                 ]
35              },
36              {"section": "cells",
37               "values":
38                 [{"option": "driver",
39                   "value": "nova.cells.rpc_driver.CellsRPCDriver"
40                  }
41                 ]
42              }
43             ]
44           }
45         }
46     type: json
47   NovaComputeExtraConfig:
48     default: {}
49     description: |
50       NovaCompute specific configuration to inject into the cluster. Same
51       structure as ExtraConfig.
52     type: json
53   KeyName:
54     description: Name of an existing EC2 KeyPair to enable SSH access to the instances
55     type: string
56     default: default
57   OvercloudComputeFlavor:
58     description: Use this flavor
59     type: string
60     default: baremetal
61   ImageUpdatePolicy:
62     default: 'REBUILD_PRESERVE_EPHEMERAL'
63     description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
64     type: string
65   NovaImage:
66     type: string
67     default: overcloud-compute
68   NtpServer:
69     type: string
70     default: ''
71   KeystoneHost:
72     type: string
73   NeutronFlatNetworks:
74     type: string
75     default: ''
76     description: If set, flat networks to configure in neutron plugins.
77   NeutronHost:
78     type: string
79   NeutronPhysicalBridge:
80     default: ''
81     description: An OVS bridge to create for accessing external networks.
82     type: string
83   NeutronPublicInterface:
84     default: ''
85     description: A port to add to the NeutronPhysicalBridge.
86     type: string
87   RabbitHost:
88     type: string
89   RabbitUserName:
90     type: string
91   RabbitPassword:
92     type: string
93     hidden: true
94   CeilometerComputeAgent:
95     description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
96     type: string
97     default: ''
98     constraints:
99     - allowed_values: ['', Present]
100   CeilometerMeteringSecret:
101     default: unset
102     description: Secret shared by the ceilometer services.
103     type: string
104     hidden: true
105   CeilometerPassword:
106     default: unset
107     description: The password for the ceilometer service account.
108     type: string
109     hidden: true
110   SnmpdReadonlyUserName:
111     default: ro_snmp_user
112     description: The user name for SNMPd with readonly rights running on all Overcloud nodes
113     type: string
114   SnmpdReadonlyUserPassword:
115     default: unset
116     description: The user password for SNMPd with readonly rights running on all Overcloud nodes
117     type: string
118     hidden: true
119   NovaComputeDriver:
120     type: string
121     default: libvirt.LibvirtDriver
122   NovaComputeLibvirtType:
123     type: string
124     default: ''
125   NovaApiHost:
126     type: string
127   NovaPassword:
128     default: unset
129     description: The password for the nova service account, used by nova-api.
130     type: string
131     hidden: true
132   GlanceHost:
133     type: string
134   GlancePort:
135     default: 9292
136     description: Glance port.
137     type: string
138   GlanceProtocol:
139     default: http
140     description: Protocol to use when connecting to glance, set to https for SSL.
141     type: string
142   CeilometerDSN:
143     type: string
144   NovaDSN:
145     type: string
146   NovaPublicIP:
147     type: string
148   NeutronDSN:
149     type: string
150   NeutronBridgeMappings:
151     type: string
152   NeutronNetworkVLANRanges:
153     type: string
154   NeutronNetworkType:
155     type: string
156   NeutronEnableTunnelling:
157     type: string
158   AllNodesConfig:
159     type: string
160     description: OS::Heat::Config to use for all nodes deployment
161   LiveUpdateUserName:
162     type: string
163     description: The live-update username for the undercloud Glance API.
164     default: ''
165   LiveUpdateTenantName:
166     type: string
167     description: The live-update tenant name for the undercloud Glance API.
168     default: ''
169   LiveUpdateHost:
170     type: string
171     description: The IP address for the undercloud Glance API.
172     default: ''
173   LiveUpdatePassword:
174     type: string
175     default: ''
176     description: The live-update password for the undercloud Glance API.
177     hidden: true
178   LiveUpdateComputeImage:
179     type: string
180     description: The image ID for live-updates to the overcloud compute nodes.
181     default: ''
182   DefaultSignalTransport:
183     default: CFN_SIGNAL
184     description: Transport to use for software-config signals.
185     type: string
186     constraints:
187       - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ]
188 resources:
189   NovaCompute0:
190     type: OS::Nova::Server
191     properties:
192       image:
193         {get_param: NovaImage}
194       image_update_policy:
195         get_param: ImageUpdatePolicy
196       flavor: {get_param: OvercloudComputeFlavor}
197       key_name: {get_param: KeyName}
198       networks:
199         - network: ctlplane
200       user_data_format: SOFTWARE_CONFIG
201   NovaCompute0Deployment:
202     depends_on: [controller0AllNodesDeployment]
203     type: OS::Heat::StructuredDeployment
204     properties:
205       signal_transport: NO_SIGNAL
206       config: {get_resource: NovaComputeConfig}
207       server: {get_resource: NovaCompute0}
208       input_values:
209         nova_compute_driver: {get_param: NovaComputeDriver}
210         nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
211         nova_dsn: {get_param: NovaDSN}
212         nova_public_ip: {get_param: NovaPublicIP}
213         nova_api_host: {get_param: NovaApiHost}
214         nova_password: {get_param: NovaPassword}
215         ceilometer_dsn: {get_param: CeilometerDSN}
216         ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
217         ceilometer_password: {get_param: CeilometerPassword}
218         ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
219         snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
220         snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
221         glance_host: {get_param: GlanceHost}
222         glance_port: {get_param: GlancePort}
223         glance_protocol: {get_param: GlanceProtocol}
224         keystone_host: {get_param: KeystoneHost}
225         neutron_flat_networks: {get_param: NeutronFlatNetworks}
226         neutron_host: {get_param: NeutronHost}
227         neutron_dsn: {get_param: NeutronDSN}
228         neutron_local_ip: {get_attr: [NovaCompute0, networks, ctlplane, 0]}
229         neutron_tenant_network_type: {get_param: NeutronNetworkType}
230         neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
231         neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
232         neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
233         neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
234         neutron_public_interface: {get_param: NeutronPublicInterface}
235         neutron_password: {get_param: NeutronPassword}
236         admin_password: {get_param: AdminPassword}
237         rabbit_host: {get_param: RabbitHost}
238         rabbit_username: {get_param: RabbitUserName}
239         rabbit_password: {get_param: RabbitPassword}
240         live_update_host: {get_param: LiveUpdateHost}
241         live_update_username: {get_param: LiveUpdateUserName}
242         live_update_password: {get_param: LiveUpdatePassword}
243         live_update_tenant_name: {get_param: LiveUpdateTenantName}
244         nova_image: {get_param: NovaImage}
245         live_update_image_id: {get_param: LiveUpdateComputeImage}
246         ntp_server: {get_param: NtpServer}
247   NovaCompute0AllNodesDeployment:
248     depends_on: [NovaCompute0Passthrough]
249     type: OS::Heat::StructuredDeployment
250     properties:
251       signal_transport: {get_param: DefaultSignalTransport}
252       config: {get_param: AllNodesConfig}
253       server: {get_resource: NovaCompute0}
254   NovaCompute0Passthrough:
255     depends_on: [NovaCompute0Deployment]
256     type: OS::Heat::StructuredDeployment
257     properties:
258       config: {get_resource: NovaComputePassthrough}
259       server: {get_resource: NovaCompute0}
260       signal_transport: NO_SIGNAL
261       input_values:
262         passthrough_config: {get_param: ExtraConfig}
263   NovaCompute0PassthroughSpecific:
264     depends_on: [NovaCompute0Passthrough]
265     type: OS::Heat::StructuredDeployment
266     properties:
267       config: {get_resource: NovaComputePassthroughSpecific}
268       server: {get_resource: NovaCompute0}
269       signal_transport: NO_SIGNAL
270       input_values:
271         passthrough_config_specific: {get_param: NovaComputeExtraConfig}