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