1 heat_template_version: 2016-10-14
2 description: 'OpenStack swift storage node configured by Puppet'
4 OvercloudSwiftStorageFlavor:
5 description: Flavor for Swift storage nodes to request when deploying.
9 - custom_constraint: nova.flavor
11 default: overcloud-full
14 - custom_constraint: glance.image
17 description: Name of an existing Nova key pair to enable SSH access to the instances
23 Setting to a previously unused value during stack-update will trigger
24 package update on all nodes
27 description: Mapping of service_name -> network name. Typically set
28 via parameter_defaults in the resource registry.
32 description: Mapping of service endpoint -> protocol. Typically set
33 via parameter_defaults in the resource registry.
37 default: '' # Defaults to Heat created hostname
41 description: Optional mapping to override hostnames
45 Additional hiera configuration to inject into the cluster. Note
46 that ObjectStorageExtraConfig takes precedence over ExtraConfig.
48 ObjectStorageExtraConfig:
51 Role specific additional hiera configuration to inject into the cluster.
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]
69 default: 'localdomain'
72 The DNS domain used for the hosts. This should match the dhcp_domain
73 configured in the Undercloud neutron. Defaults to localdomain.
74 SwiftStorageServerMetadata:
77 Extra properties or metadata passed to Nova for the created nodes in
78 the overcloud. It's accessible via the Nova metadata API. This option is
79 role-specific and is merged with the values given to the ServerMetadata
85 Extra properties or metadata passed to Nova for the created nodes in
86 the overcloud. It's accessible via the Nova metadata API. This applies to
87 all roles and is merged with a role-specific metadata parameter.
89 ObjectStorageSchedulerHints:
91 description: Optional scheduler hints to pass to nova
96 ServiceConfigSettings:
100 type: comma_delimited_list
102 MonitoringSubscriptions:
103 type: comma_delimited_list
107 description: Command which will be run whenever configuration data changes
108 default: os-refresh-config --timeout 14400
113 type: OS::Nova::Server
116 command: {get_param: ConfigCommand}
118 image: {get_param: SwiftStorageImage}
119 flavor: {get_param: OvercloudSwiftStorageFlavor}
120 key_name: {get_param: KeyName}
123 user_data_format: SOFTWARE_CONFIG
124 user_data: {get_resource: UserData}
127 template: {get_param: Hostname}
128 params: {get_param: HostnameMap}
129 software_config_transport: {get_param: SoftwareConfigTransport}
132 - {get_param: ServerMetadata}
133 - {get_param: SwiftStorageServerMetadata}
134 scheduler_hints: {get_param: ObjectStorageSchedulerHints}
136 # Combine the NodeAdminUserData and NodeUserData mime archives
138 type: OS::Heat::MultipartMime
141 - config: {get_resource: NodeAdminUserData}
143 - config: {get_resource: NodeUserData}
146 # Creates the "heat-admin" user if configured via the environment
147 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
149 type: OS::TripleO::NodeAdminUserData
151 # For optional operator additional userdata
152 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
154 type: OS::TripleO::NodeUserData
157 type: OS::TripleO::SwiftStorage::Ports::ExternalPort
159 ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
160 IPPool: {get_param: SwiftStorageIPs}
161 NodeIndex: {get_param: NodeIndex}
164 type: OS::TripleO::SwiftStorage::Ports::InternalApiPort
166 ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
167 IPPool: {get_param: SwiftStorageIPs}
168 NodeIndex: {get_param: NodeIndex}
171 type: OS::TripleO::SwiftStorage::Ports::StoragePort
173 ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
174 IPPool: {get_param: SwiftStorageIPs}
175 NodeIndex: {get_param: NodeIndex}
178 type: OS::TripleO::SwiftStorage::Ports::StorageMgmtPort
180 ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
181 IPPool: {get_param: SwiftStorageIPs}
182 NodeIndex: {get_param: NodeIndex}
185 type: OS::TripleO::SwiftStorage::Ports::TenantPort
187 ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
188 IPPool: {get_param: SwiftStorageIPs}
189 NodeIndex: {get_param: NodeIndex}
192 type: OS::TripleO::SwiftStorage::Ports::ManagementPort
194 ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
195 IPPool: {get_param: SwiftStorageIPs}
196 NodeIndex: {get_param: NodeIndex}
199 type: OS::TripleO::ObjectStorage::Net::SoftwareConfig
201 ControlPlaneIp: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
202 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
203 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
204 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
205 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
206 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
207 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
210 type: OS::TripleO::Network::Ports::NetIpMap
212 ControlPlaneIp: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
213 ExternalIp: {get_attr: [ExternalPort, ip_address]}
214 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
215 ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
216 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
217 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
218 InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
219 StorageIp: {get_attr: [StoragePort, ip_address]}
220 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
221 StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
222 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
223 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
224 StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
225 TenantIp: {get_attr: [TenantPort, ip_address]}
226 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
227 TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
228 ManagementIp: {get_attr: [ManagementPort, ip_address]}
229 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
230 ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
233 type: OS::Heat::Value
241 - - {get_attr: [SwiftStorage, name]}
243 - {get_param: CloudDomain}
247 - - {get_attr: [SwiftStorage, name]}
253 - - {get_attr: [SwiftStorage, name]}
255 - {get_param: CloudDomain}
259 - - {get_attr: [SwiftStorage, name]}
265 - - {get_attr: [SwiftStorage, name]}
267 - {get_param: CloudDomain}
271 - - {get_attr: [SwiftStorage, name]}
277 - - {get_attr: [SwiftStorage, name]}
279 - {get_param: CloudDomain}
283 - - {get_attr: [SwiftStorage, name]}
289 - - {get_attr: [SwiftStorage, name]}
291 - {get_param: CloudDomain}
295 - - {get_attr: [SwiftStorage, name]}
301 - - {get_attr: [SwiftStorage, name]}
303 - {get_param: CloudDomain}
307 - - {get_attr: [SwiftStorage, name]}
313 - - {get_attr: [SwiftStorage, name]}
315 - {get_param: CloudDomain}
319 - - {get_attr: [SwiftStorage, name]}
323 type: OS::TripleO::SoftwareDeployment
325 name: NetworkDeployment
326 config: {get_resource: NetworkConfig}
327 server: {get_resource: SwiftStorage}
328 actions: {get_param: NetworkDeploymentActions}
330 SwiftStorageHieraConfig:
331 type: OS::Heat::StructuredConfig
337 - heat_config_%{::deploy_config_name}
343 - bootstrap_node # provided by allNodesConfig
344 - all_nodes # provided by allNodesConfig
345 - vip_data # provided by allNodesConfig
347 merge_behavior: deeper
350 service_names: {get_param: ServiceNames}
351 sensu::subscriptions: {get_param: MonitoringSubscriptions}
354 - {get_param: ServiceConfigSettings}
355 - values: {get_attr: [NetIpMap, net_ip_map]}
356 object_extraconfig: {get_param: ObjectStorageExtraConfig}
357 extraconfig: {get_param: ExtraConfig}
359 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
360 fqdn_internal_api: {get_attr: [NetHostMap, value, internal_api, fqdn]}
361 fqdn_storage: {get_attr: [NetHostMap, value, storage, fqdn]}
362 fqdn_storage_mgmt: {get_attr: [NetHostMap, value, storage_mgmt, fqdn]}
363 fqdn_tenant: {get_attr: [NetHostMap, value, tenant, fqdn]}
364 fqdn_management: {get_attr: [NetHostMap, value, management, fqdn]}
365 fqdn_ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]}
367 SwiftStorageHieraDeploy:
368 type: OS::Heat::StructuredDeployment
369 depends_on: NetworkDeployment
371 name: SwiftStorageHieraDeploy
372 server: {get_resource: SwiftStorage}
373 config: {get_resource: SwiftStorageHieraConfig}
375 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
377 # Resource for site-specific injection of root certificate
379 depends_on: SwiftStorageHieraDeploy
380 type: OS::TripleO::NodeTLSCAData
382 server: {get_resource: SwiftStorage}
384 # Hook for site-specific additional pre-deployment config,
385 # applying to all nodes, e.g node registration/unregistration
387 depends_on: NodeTLSCAData
388 type: OS::TripleO::NodeExtraConfig
390 server: {get_resource: SwiftStorage}
393 type: OS::TripleO::Tasks::PackageUpdate
396 type: OS::Heat::SoftwareDeployment
398 config: {get_resource: UpdateConfig}
399 server: {get_resource: SwiftStorage}
402 get_param: UpdateIdentifier
406 description: IP address of the server in the ctlplane network
407 value: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
409 description: Hostname of the server
410 value: {get_attr: [SwiftStorage, name]}
412 description: Mapping of network names to hostnames
414 external: {get_attr: [NetHostMap, value, external, fqdn]}
415 internal_api: {get_attr: [NetHostMap, value, internal_api, fqdn]}
416 storage: {get_attr: [NetHostMap, value, storage, fqdn]}
417 storage_mgmt: {get_attr: [NetHostMap, value, storage_mgmt, fqdn]}
418 tenant: {get_attr: [NetHostMap, value, tenant, fqdn]}
419 management: {get_attr: [NetHostMap, value, management, fqdn]}
420 ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]}
425 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
426 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
427 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
428 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
429 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
430 TENANTIP TENANTHOST.DOMAIN TENANTHOST
431 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
432 CTLPLANEIP CTLPLANEHOST.DOMAIN CTLPLANEHOST
434 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ObjectStorageHostnameResolveNetwork]}]}
435 DOMAIN: {get_param: CloudDomain}
436 PRIMARYHOST: {get_attr: [SwiftStorage, name]}
437 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
438 EXTERNALHOST: {get_attr: [NetHostMap, value, external, short]}
439 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
440 INTERNAL_APIHOST: {get_attr: [NetHostMap, value, internal_api, short]}
441 STORAGEIP: {get_attr: [StoragePort, ip_address]}
442 STORAGEHOST: {get_attr: [NetHostMap, value, storage, short]}
443 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
444 STORAGE_MGMTHOST: {get_attr: [NetHostMap, value, storage_mgmt, short]}
445 TENANTIP: {get_attr: [TenantPort, ip_address]}
446 TENANTHOST: {get_attr: [NetHostMap, value, tenant, short]}
447 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
448 MANAGEMENTHOST: {get_attr: [NetHostMap, value, management, short]}
449 CTLPLANEIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
450 CTLPLANEHOST: {get_attr: [NetHostMap, value, ctlplane, short]}
451 nova_server_resource:
452 description: Heat resource handle for the swift storage server
454 {get_resource: SwiftStorage}
456 description: IP address of the server in the external network
457 value: {get_attr: [ExternalPort, ip_address]}
458 internal_api_ip_address:
459 description: IP address of the server in the internal_api network
460 value: {get_attr: [InternalApiPort, ip_address]}
462 description: IP address of the server in the storage network
463 value: {get_attr: [StoragePort, ip_address]}
464 storage_mgmt_ip_address:
465 description: IP address of the server in the storage_mgmt network
466 value: {get_attr: [StorageMgmtPort, ip_address]}
468 description: IP address of the server in the tenant network
469 value: {get_attr: [TenantPort, ip_address]}
470 management_ip_address:
471 description: IP address of the server in the management network
472 value: {get_attr: [ManagementPort, ip_address]}