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
33 SnmpdReadonlyUserName:
35 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
37 SnmpdReadonlyUserPassword:
38 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
45 Setting to a previously unused value during stack-update will trigger
46 package update on all nodes
49 default: '' # Defaults to Heat created hostname
53 description: Optional mapping to override hostnames
56 description: Mapping of service_name -> network name. Typically set
57 via parameter_defaults in the resource registry.
59 NetworkDeploymentActions:
60 type: comma_delimited_list
62 Heat action when to apply network configuration changes
64 SoftwareConfigTransport:
65 default: POLL_SERVER_CFN
67 How the server should receive the metadata required for software configuration.
70 - allowed_values: [POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE]
74 The DNS domain used for the hosts. This should match the dhcp_domain
75 configured in the Undercloud neutron. Defaults to localdomain.
79 Extra properties or metadata passed to Nova for the created nodes in
80 the overcloud. It's accessible via the Nova metadata API.
82 BlockStorageSchedulerHints:
84 description: Optional scheduler hints to pass to nova
89 ServiceConfigSettings:
93 type: comma_delimited_list
97 description: Command which will be run whenever configuration data changes
98 default: os-refresh-config --timeout 14400
102 type: OS::TripleO::Server
105 command: {get_param: ConfigCommand}
108 {get_param: BlockStorageImage}
109 flavor: {get_param: OvercloudBlockStorageFlavor}
110 key_name: {get_param: KeyName}
113 user_data_format: SOFTWARE_CONFIG
114 user_data: {get_resource: UserData}
117 template: {get_param: Hostname}
118 params: {get_param: HostnameMap}
119 software_config_transport: {get_param: SoftwareConfigTransport}
120 metadata: {get_param: ServerMetadata}
121 scheduler_hints: {get_param: BlockStorageSchedulerHints}
123 # Combine the NodeAdminUserData and NodeUserData mime archives
125 type: OS::Heat::MultipartMime
128 - config: {get_resource: NodeAdminUserData}
130 - config: {get_resource: NodeUserData}
133 # Creates the "heat-admin" user if configured via the environment
134 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
136 type: OS::TripleO::NodeAdminUserData
138 # For optional operator additional userdata
139 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
141 type: OS::TripleO::NodeUserData
144 type: OS::TripleO::BlockStorage::Ports::ExternalPort
146 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
147 IPPool: {get_param: BlockStorageIPs}
148 NodeIndex: {get_param: NodeIndex}
151 type: OS::TripleO::BlockStorage::Ports::InternalApiPort
153 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
154 IPPool: {get_param: BlockStorageIPs}
155 NodeIndex: {get_param: NodeIndex}
158 type: OS::TripleO::BlockStorage::Ports::StoragePort
160 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
161 IPPool: {get_param: BlockStorageIPs}
162 NodeIndex: {get_param: NodeIndex}
165 type: OS::TripleO::BlockStorage::Ports::StorageMgmtPort
167 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
168 IPPool: {get_param: BlockStorageIPs}
169 NodeIndex: {get_param: NodeIndex}
172 type: OS::TripleO::BlockStorage::Ports::TenantPort
174 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
175 IPPool: {get_param: BlockStorageIPs}
176 NodeIndex: {get_param: NodeIndex}
179 type: OS::TripleO::BlockStorage::Ports::ManagementPort
181 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
182 IPPool: {get_param: BlockStorageIPs}
183 NodeIndex: {get_param: NodeIndex}
186 type: OS::TripleO::BlockStorage::Net::SoftwareConfig
188 ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
189 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
190 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
191 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
192 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
193 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
194 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
197 type: OS::TripleO::Network::Ports::NetIpMap
199 ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
200 ExternalIp: {get_attr: [ExternalPort, ip_address]}
201 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
202 ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
203 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
204 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
205 InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
206 StorageIp: {get_attr: [StoragePort, ip_address]}
207 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
208 StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
209 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
210 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
211 StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
212 TenantIp: {get_attr: [TenantPort, ip_address]}
213 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
214 TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
215 ManagementIp: {get_attr: [ManagementPort, ip_address]}
216 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
217 ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
220 type: OS::TripleO::SoftwareDeployment
222 name: NetworkDeployment
223 config: {get_resource: NetworkConfig}
224 server: {get_resource: BlockStorage}
225 actions: {get_param: NetworkDeploymentActions}
227 BlockStorageDeployment:
228 type: OS::Heat::StructuredDeployment
229 depends_on: NetworkDeployment
231 name: BlockStorageDeployment
232 server: {get_resource: BlockStorage}
233 config: {get_resource: BlockStorageConfig}
235 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
236 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
237 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
239 # Map heat metadata into hiera datafiles
241 type: OS::Heat::StructuredConfig
243 group: os-apply-config
248 - heat_config_%{::deploy_config_name}
254 - all_nodes # provided by allNodesConfig
256 merge_behavior: deeper
260 service_names: {get_param: ServiceNames}
264 - {get_param: ServiceConfigSettings}
265 - values: {get_attr: [NetIpMap, net_ip_map]}
267 mapped_data: {get_param: BlockStorageExtraConfig}
269 mapped_data: {get_param: ExtraConfig}
272 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
273 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
274 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
276 # Resource for site-specific injection of root certificate
278 depends_on: BlockStorageDeployment
279 type: OS::TripleO::NodeTLSCAData
281 server: {get_resource: BlockStorage}
283 # Hook for site-specific additional pre-deployment config,
284 # applying to all nodes, e.g node registration/unregistration
286 depends_on: NodeTLSCAData
287 type: OS::TripleO::NodeExtraConfig
289 server: {get_resource: BlockStorage}
292 type: OS::TripleO::Tasks::PackageUpdate
295 type: OS::Heat::SoftwareDeployment
297 name: UpdateDeployment
298 config: {get_resource: UpdateConfig}
299 server: {get_resource: BlockStorage}
302 get_param: UpdateIdentifier
306 description: IP address of the server in the ctlplane network
307 value: {get_attr: [BlockStorage, networks, ctlplane, 0]}
309 description: Hostname of the server
310 value: {get_attr: [BlockStorage, name]}
315 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
316 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
317 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
318 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
319 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
320 TENANTIP TENANTHOST.DOMAIN TENANTHOST
321 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
323 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]}
324 DOMAIN: {get_param: CloudDomain}
325 PRIMARYHOST: {get_attr: [BlockStorage, name]}
326 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
330 - - {get_attr: [BlockStorage, name]}
332 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
336 - - {get_attr: [BlockStorage, name]}
338 STORAGEIP: {get_attr: [StoragePort, ip_address]}
342 - - {get_attr: [BlockStorage, name]}
344 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
348 - - {get_attr: [BlockStorage, name]}
350 TENANTIP: {get_attr: [TenantPort, ip_address]}
354 - - {get_attr: [BlockStorage, name]}
356 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
360 - - {get_attr: [BlockStorage, name]}
362 nova_server_resource:
363 description: Heat resource handle for the block storage server
365 {get_resource: BlockStorage}
367 description: IP address of the server in the external network
368 value: {get_attr: [ExternalPort, ip_address]}
369 internal_api_ip_address:
370 description: IP address of the server in the internal_api network
371 value: {get_attr: [InternalApiPort, ip_address]}
373 description: IP address of the server in the storage network
374 value: {get_attr: [StoragePort, ip_address]}
375 storage_mgmt_ip_address:
376 description: IP address of the server in the storage_mgmt network
377 value: {get_attr: [StorageMgmtPort, ip_address]}
379 description: IP address of the server in the tenant network
380 value: {get_attr: [TenantPort, ip_address]}
381 management_ip_address:
382 description: IP address of the server in the management network
383 value: {get_attr: [ManagementPort, ip_address]}