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