1 heat_template_version: 2016-10-14
2 description: 'OpenStack cinder storage configured by Puppet'
5 default: overcloud-full
8 - custom_constraint: glance.image
12 Additional hiera configuration to inject into the cluster. Note
13 that BlockStorageExtraConfig takes precedence over ExtraConfig.
15 BlockStorageExtraConfig:
18 Role specific additional hiera configuration to inject into the cluster.
23 OvercloudBlockStorageFlavor:
24 description: Flavor for block storage nodes to request when deploying.
28 - custom_constraint: nova.flavor
31 description: Name of an existing Nova key pair to enable SSH access to the instances
37 Setting to a previously unused value during stack-update will trigger
38 package update on all nodes
41 default: '' # Defaults to Heat created hostname
45 description: Optional mapping to override hostnames
48 description: Mapping of service_name -> network name. Typically set
49 via parameter_defaults in the resource registry.
53 description: Mapping of service endpoint -> protocol. Typically set
54 via parameter_defaults in the resource registry.
56 NetworkDeploymentActions:
57 type: comma_delimited_list
59 Heat action when to apply network configuration changes
61 SoftwareConfigTransport:
62 default: POLL_SERVER_CFN
64 How the server should receive the metadata required for software configuration.
67 - allowed_values: [POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE]
71 The DNS domain used for the hosts. This should match the dhcp_domain
72 configured in the Undercloud neutron. Defaults to localdomain.
76 Extra properties or metadata passed to Nova for the created nodes in
77 the overcloud. It's accessible via the Nova metadata API.
79 BlockStorageSchedulerHints:
81 description: Optional scheduler hints to pass to nova
86 ServiceConfigSettings:
90 type: comma_delimited_list
92 MonitoringSubscriptions:
93 type: comma_delimited_list
97 description: Command which will be run whenever configuration data changes
98 default: os-refresh-config --timeout 14400
103 type: comma_delimited_list
108 type: OS::TripleO::Server
111 command: {get_param: ConfigCommand}
114 {get_param: BlockStorageImage}
115 flavor: {get_param: OvercloudBlockStorageFlavor}
116 key_name: {get_param: KeyName}
119 user_data_format: SOFTWARE_CONFIG
120 user_data: {get_resource: UserData}
123 template: {get_param: Hostname}
124 params: {get_param: HostnameMap}
125 software_config_transport: {get_param: SoftwareConfigTransport}
126 metadata: {get_param: ServerMetadata}
127 scheduler_hints: {get_param: BlockStorageSchedulerHints}
129 # Combine the NodeAdminUserData and NodeUserData mime archives
131 type: OS::Heat::MultipartMime
134 - config: {get_resource: NodeAdminUserData}
136 - config: {get_resource: NodeUserData}
139 # Creates the "heat-admin" user if configured via the environment
140 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
142 type: OS::TripleO::NodeAdminUserData
144 # For optional operator additional userdata
145 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
147 type: OS::TripleO::NodeUserData
150 type: OS::TripleO::BlockStorage::Ports::ExternalPort
152 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
153 IPPool: {get_param: BlockStorageIPs}
154 NodeIndex: {get_param: NodeIndex}
157 type: OS::TripleO::BlockStorage::Ports::InternalApiPort
159 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
160 IPPool: {get_param: BlockStorageIPs}
161 NodeIndex: {get_param: NodeIndex}
164 type: OS::TripleO::BlockStorage::Ports::StoragePort
166 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
167 IPPool: {get_param: BlockStorageIPs}
168 NodeIndex: {get_param: NodeIndex}
171 type: OS::TripleO::BlockStorage::Ports::StorageMgmtPort
173 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
174 IPPool: {get_param: BlockStorageIPs}
175 NodeIndex: {get_param: NodeIndex}
178 type: OS::TripleO::BlockStorage::Ports::TenantPort
180 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
181 IPPool: {get_param: BlockStorageIPs}
182 NodeIndex: {get_param: NodeIndex}
185 type: OS::TripleO::BlockStorage::Ports::ManagementPort
187 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
188 IPPool: {get_param: BlockStorageIPs}
189 NodeIndex: {get_param: NodeIndex}
192 type: OS::TripleO::BlockStorage::Net::SoftwareConfig
194 ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
195 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
196 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
197 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
198 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
199 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
200 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
203 type: OS::TripleO::Network::Ports::NetIpMap
205 ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
206 ExternalIp: {get_attr: [ExternalPort, ip_address]}
207 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
208 ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
209 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
210 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
211 InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
212 StorageIp: {get_attr: [StoragePort, ip_address]}
213 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
214 StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
215 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
216 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
217 StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
218 TenantIp: {get_attr: [TenantPort, ip_address]}
219 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
220 TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
221 ManagementIp: {get_attr: [ManagementPort, ip_address]}
222 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
223 ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
226 type: OS::TripleO::SoftwareDeployment
228 name: NetworkDeployment
229 config: {get_resource: NetworkConfig}
230 server: {get_resource: BlockStorage}
231 actions: {get_param: NetworkDeploymentActions}
233 BlockStorageDeployment:
234 type: OS::Heat::StructuredDeployment
235 depends_on: NetworkDeployment
237 name: BlockStorageDeployment
238 server: {get_resource: BlockStorage}
239 config: {get_resource: BlockStorageConfig}
241 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
243 # Map heat metadata into hiera datafiles
245 type: OS::Heat::StructuredConfig
247 group: os-apply-config
252 - heat_config_%{::deploy_config_name}
258 - bootstrap_node # provided by allNodesConfig
259 - all_nodes # provided by allNodesConfig
260 - vip_data # provided by allNodesConfig
262 merge_behavior: deeper
266 service_names: {get_param: ServiceNames}
267 sensu::subscriptions: {get_param: MonitoringSubscriptions}
271 - {get_param: ServiceConfigSettings}
272 - values: {get_attr: [NetIpMap, net_ip_map]}
274 mapped_data: {get_param: BlockStorageExtraConfig}
276 mapped_data: {get_param: ExtraConfig}
279 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
280 tripleo::profile::base::logging::fluentd::fluentd_sources: {get_param: LoggingSources}
281 tripleo::profile::base::logging::fluentd::fluentd_groups: {get_param: LoggingGroups}
283 # Resource for site-specific injection of root certificate
285 depends_on: BlockStorageDeployment
286 type: OS::TripleO::NodeTLSCAData
288 server: {get_resource: BlockStorage}
290 # Hook for site-specific additional pre-deployment config,
291 # applying to all nodes, e.g node registration/unregistration
293 depends_on: NodeTLSCAData
294 type: OS::TripleO::NodeExtraConfig
296 server: {get_resource: BlockStorage}
299 type: OS::TripleO::Tasks::PackageUpdate
302 type: OS::Heat::SoftwareDeployment
304 name: UpdateDeployment
305 config: {get_resource: UpdateConfig}
306 server: {get_resource: BlockStorage}
309 get_param: UpdateIdentifier
313 description: IP address of the server in the ctlplane network
314 value: {get_attr: [BlockStorage, networks, ctlplane, 0]}
316 description: Hostname of the server
317 value: {get_attr: [BlockStorage, name]}
319 description: Mapping of network names to hostnames
324 - - {get_attr: [BlockStorage, name]}
326 - {get_param: CloudDomain}
330 - - {get_attr: [BlockStorage, name]}
332 - {get_param: CloudDomain}
336 - - {get_attr: [BlockStorage, name]}
338 - {get_param: CloudDomain}
342 - - {get_attr: [BlockStorage, name]}
344 - {get_param: CloudDomain}
348 - - {get_attr: [BlockStorage, name]}
350 - {get_param: CloudDomain}
354 - - {get_attr: [BlockStorage, name]}
356 - {get_param: CloudDomain}
360 - - {get_attr: [BlockStorage, name]}
362 - {get_param: CloudDomain}
367 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
368 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
369 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
370 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
371 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
372 TENANTIP TENANTHOST.DOMAIN TENANTHOST
373 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
374 CTLPLANEIP CTLPLANEHOST.DOMAIN CTLPLANEHOST
376 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]}
377 DOMAIN: {get_param: CloudDomain}
378 PRIMARYHOST: {get_attr: [BlockStorage, name]}
379 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
383 - - {get_attr: [BlockStorage, name]}
385 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
389 - - {get_attr: [BlockStorage, name]}
391 STORAGEIP: {get_attr: [StoragePort, ip_address]}
395 - - {get_attr: [BlockStorage, name]}
397 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
401 - - {get_attr: [BlockStorage, name]}
403 TENANTIP: {get_attr: [TenantPort, ip_address]}
407 - - {get_attr: [BlockStorage, name]}
409 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
413 - - {get_attr: [BlockStorage, name]}
415 CTLPLANEIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
419 - - {get_attr: [BlockStorage, name]}
421 nova_server_resource:
422 description: Heat resource handle for the block storage server
424 {get_resource: BlockStorage}
426 description: IP address of the server in the external network
427 value: {get_attr: [ExternalPort, ip_address]}
428 internal_api_ip_address:
429 description: IP address of the server in the internal_api network
430 value: {get_attr: [InternalApiPort, ip_address]}
432 description: IP address of the server in the storage network
433 value: {get_attr: [StoragePort, ip_address]}
434 storage_mgmt_ip_address:
435 description: IP address of the server in the storage_mgmt network
436 value: {get_attr: [StorageMgmtPort, ip_address]}
438 description: IP address of the server in the tenant network
439 value: {get_attr: [TenantPort, ip_address]}
440 management_ip_address:
441 description: IP address of the server in the management network
442 value: {get_attr: [ManagementPort, ip_address]}