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