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: Flavor}
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 cinder_iscsi_ip_address:
246 template: "NETWORK_uri"
248 NETWORK: {get_param: [ServiceNetMap, CinderIscsiNetwork]}
249 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
251 # Map heat metadata into hiera datafiles
253 type: OS::Heat::StructuredConfig
255 group: os-apply-config
260 - heat_config_%{::deploy_config_name}
266 - all_nodes # provided by allNodesConfig
268 merge_behavior: deeper
272 service_names: {get_param: ServiceNames}
276 - {get_param: ServiceConfigSettings}
277 - values: {get_attr: [NetIpMap, net_ip_map]}
279 mapped_data: {get_param: BlockStorageExtraConfig}
281 mapped_data: {get_param: ExtraConfig}
285 tripleo::profile::base::cinder::volume::iscsi::cinder_iscsi_ip_address: {get_input: cinder_iscsi_ip_address}
286 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
287 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
288 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
290 # Resource for site-specific injection of root certificate
292 depends_on: BlockStorageDeployment
293 type: OS::TripleO::NodeTLSCAData
295 server: {get_resource: BlockStorage}
297 # Hook for site-specific additional pre-deployment config,
298 # applying to all nodes, e.g node registration/unregistration
300 depends_on: NodeTLSCAData
301 type: OS::TripleO::NodeExtraConfig
303 server: {get_resource: BlockStorage}
306 type: OS::TripleO::Tasks::PackageUpdate
309 type: OS::Heat::SoftwareDeployment
311 name: UpdateDeployment
312 config: {get_resource: UpdateConfig}
313 server: {get_resource: BlockStorage}
316 get_param: UpdateIdentifier
320 description: IP address of the server in the ctlplane network
321 value: {get_attr: [BlockStorage, networks, ctlplane, 0]}
323 description: Hostname of the server
324 value: {get_attr: [BlockStorage, name]}
329 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
330 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
331 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
332 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
333 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
334 TENANTIP TENANTHOST.DOMAIN TENANTHOST
335 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
337 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]}
338 DOMAIN: {get_param: CloudDomain}
339 PRIMARYHOST: {get_attr: [BlockStorage, name]}
340 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
344 - - {get_attr: [BlockStorage, name]}
346 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
350 - - {get_attr: [BlockStorage, name]}
352 STORAGEIP: {get_attr: [StoragePort, ip_address]}
356 - - {get_attr: [BlockStorage, name]}
358 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
362 - - {get_attr: [BlockStorage, name]}
364 TENANTIP: {get_attr: [TenantPort, ip_address]}
368 - - {get_attr: [BlockStorage, name]}
370 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
374 - - {get_attr: [BlockStorage, name]}
376 nova_server_resource:
377 description: Heat resource handle for the block storage server
379 {get_resource: BlockStorage}
381 description: IP address of the server in the external network
382 value: {get_attr: [ExternalPort, ip_address]}
383 internal_api_ip_address:
384 description: IP address of the server in the internal_api network
385 value: {get_attr: [InternalApiPort, ip_address]}
387 description: IP address of the server in the storage network
388 value: {get_attr: [StoragePort, ip_address]}
389 storage_mgmt_ip_address:
390 description: IP address of the server in the storage_mgmt network
391 value: {get_attr: [StorageMgmtPort, ip_address]}
393 description: IP address of the server in the tenant network
394 value: {get_attr: [TenantPort, ip_address]}
395 management_ip_address:
396 description: IP address of the server in the management network
397 value: {get_attr: [ManagementPort, ip_address]}