1 heat_template_version: 2016-10-14
2 description: 'OpenStack ceph storage node configured by Puppet'
4 OvercloudCephStorageFlavor:
5 description: Flavor for the Ceph Storage node.
9 - custom_constraint: nova.flavor
12 default: overcloud-full
14 - custom_constraint: glance.image
16 default: 'REBUILD_PRESERVE_EPHEMERAL'
17 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
20 description: Name of an existing Nova key pair to enable SSH access to the instances
24 - custom_constraint: nova.keypair
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.
39 Setting to a previously unused value during stack-update will trigger
40 package update on all nodes
43 default: '' # Defaults to Heat created hostname
47 description: Optional mapping to override hostnames
51 Additional hiera configuration to inject into the cluster. Note
52 that CephStorageExtraConfig takes precedence over ExtraConfig.
54 CephStorageExtraConfig:
57 Role specific additional hiera configuration to inject into the cluster.
62 NetworkDeploymentActions:
63 type: comma_delimited_list
65 Heat action when to apply network configuration changes
67 SoftwareConfigTransport:
68 default: POLL_SERVER_CFN
70 How the server should receive the metadata required for software configuration.
73 - allowed_values: [POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE]
77 The DNS domain used for the hosts. This should match the dhcp_domain
78 configured in the Undercloud neutron. Defaults to localdomain.
82 Extra properties or metadata passed to Nova for the created nodes in
83 the overcloud. It's accessible via the Nova metadata API.
85 CephStorageSchedulerHints:
87 description: Optional scheduler hints to pass to nova
92 ServiceConfigSettings:
96 type: comma_delimited_list
98 MonitoringSubscriptions:
99 type: comma_delimited_list
103 description: Command which will be run whenever configuration data changes
104 default: os-refresh-config --timeout 14400
108 type: OS::TripleO::Server
111 command: {get_param: ConfigCommand}
113 image: {get_param: CephStorageImage}
114 image_update_policy: {get_param: ImageUpdatePolicy}
115 flavor: {get_param: OvercloudCephStorageFlavor}
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: CephStorageSchedulerHints}
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::CephStorage::Ports::ExternalPort
152 ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
153 IPPool: {get_param: CephStorageIPs}
154 NodeIndex: {get_param: NodeIndex}
157 type: OS::TripleO::CephStorage::Ports::InternalApiPort
159 ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
160 IPPool: {get_param: CephStorageIPs}
161 NodeIndex: {get_param: NodeIndex}
164 type: OS::TripleO::CephStorage::Ports::StoragePort
166 ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
167 IPPool: {get_param: CephStorageIPs}
168 NodeIndex: {get_param: NodeIndex}
171 type: OS::TripleO::CephStorage::Ports::StorageMgmtPort
173 ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
174 IPPool: {get_param: CephStorageIPs}
175 NodeIndex: {get_param: NodeIndex}
178 type: OS::TripleO::CephStorage::Ports::TenantPort
180 ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
181 IPPool: {get_param: CephStorageIPs}
182 NodeIndex: {get_param: NodeIndex}
185 type: OS::TripleO::CephStorage::Ports::ManagementPort
187 ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
188 IPPool: {get_param: CephStorageIPs}
189 NodeIndex: {get_param: NodeIndex}
192 type: OS::TripleO::CephStorage::Net::SoftwareConfig
194 ControlPlaneIp: {get_attr: [CephStorage, 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: [CephStorage, 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: CephStorage}
231 actions: {get_param: NetworkDeploymentActions}
233 CephStorageDeployment:
234 type: OS::Heat::StructuredDeployment
235 depends_on: NetworkDeployment
237 name: CephStorageDeployment
238 config: {get_resource: CephStorageConfig}
239 server: {get_resource: CephStorage}
241 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
244 type: OS::Heat::StructuredConfig
246 group: os-apply-config
251 - heat_config_%{::deploy_config_name}
256 - bootstrap_node # provided by allNodesConfig
257 - all_nodes # provided by allNodesConfig
258 - vip_data # provided by allNodesConfig
260 merge_behavior: deeper
264 service_names: {get_param: ServiceNames}
265 sensu::subscriptions: {get_param: MonitoringSubscriptions}
269 - {get_param: ServiceConfigSettings}
270 - values: {get_attr: [NetIpMap, net_ip_map]}
272 mapped_data: {get_param: CephStorageExtraConfig}
274 mapped_data: {get_param: ExtraConfig}
277 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
279 # Resource for site-specific injection of root certificate
281 depends_on: CephStorageDeployment
282 type: OS::TripleO::NodeTLSCAData
284 server: {get_resource: CephStorage}
286 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
287 CephStorageExtraConfigPre:
288 depends_on: CephStorageDeployment
289 type: OS::TripleO::CephStorageExtraConfigPre
291 server: {get_resource: CephStorage}
293 # Hook for site-specific additional pre-deployment config,
294 # applying to all nodes, e.g node registration/unregistration
296 depends_on: [CephStorageExtraConfigPre, NodeTLSCAData]
297 type: OS::TripleO::NodeExtraConfig
299 server: {get_resource: CephStorage}
302 type: OS::TripleO::Tasks::PackageUpdate
305 type: OS::Heat::SoftwareDeployment
307 config: {get_resource: UpdateConfig}
308 server: {get_resource: CephStorage}
311 get_param: UpdateIdentifier
315 description: IP address of the server in the ctlplane network
316 value: {get_attr: [CephStorage, networks, ctlplane, 0]}
318 description: Hostname of the server
319 value: {get_attr: [CephStorage, name]}
321 description: Mapping of network names to hostnames
326 - - {get_attr: [CephStorage, name]}
328 - {get_param: CloudDomain}
332 - - {get_attr: [CephStorage, name]}
334 - {get_param: CloudDomain}
338 - - {get_attr: [CephStorage, name]}
340 - {get_param: CloudDomain}
344 - - {get_attr: [CephStorage, name]}
346 - {get_param: CloudDomain}
350 - - {get_attr: [CephStorage, name]}
352 - {get_param: CloudDomain}
356 - - {get_attr: [CephStorage, name]}
358 - {get_param: CloudDomain}
362 - - {get_attr: [CephStorage, name]}
364 - {get_param: CloudDomain}
369 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
370 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
371 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
372 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
373 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
374 TENANTIP TENANTHOST.DOMAIN TENANTHOST
375 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
376 CTLPLANEIP CTLPLANEHOST.DOMAIN CTLPLANEHOST
378 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephStorageHostnameResolveNetwork]}]}
379 DOMAIN: {get_param: CloudDomain}
380 PRIMARYHOST: {get_attr: [CephStorage, name]}
381 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
385 - - {get_attr: [CephStorage, name]}
387 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
391 - - {get_attr: [CephStorage, name]}
393 STORAGEIP: {get_attr: [StoragePort, ip_address]}
397 - - {get_attr: [CephStorage, name]}
399 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
403 - - {get_attr: [CephStorage, name]}
405 TENANTIP: {get_attr: [TenantPort, ip_address]}
409 - - {get_attr: [CephStorage, name]}
411 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
415 - - {get_attr: [CephStorage, name]}
417 CTLPLANEIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
421 - - {get_attr: [CephStorage, name]}
423 nova_server_resource:
424 description: Heat resource handle for the ceph storage server
426 {get_resource: CephStorage}
428 description: IP address of the server in the external network
429 value: {get_attr: [ExternalPort, ip_address]}
430 internal_api_ip_address:
431 description: IP address of the server in the internal_api network
432 value: {get_attr: [InternalApiPort, ip_address]}
434 description: IP address of the server in the storage network
435 value: {get_attr: [StoragePort, ip_address]}
436 storage_mgmt_ip_address:
437 description: IP address of the server in the storage_mgmt network
438 value: {get_attr: [StorageMgmtPort, ip_address]}
440 description: IP address of the server in the tenant network
441 value: {get_attr: [TenantPort, ip_address]}
442 management_ip_address:
443 description: IP address of the server in the management network
444 value: {get_attr: [ManagementPort, ip_address]}