1 heat_template_version: 2015-04-30
2 description: 'OpenStack cinder storage configured by Puppet'
5 default: overcloud-cinder-volume
7 CinderEnableIscsiBackend:
9 description: Whether to enable or not the Iscsi backend for Cinder
13 description: The iSCSI helper to use with cinder.
15 CinderLVMLoopDeviceSize:
17 description: The size of the loopback file used by the cinder LVM driver.
21 description: The password for the cinder service and db account, used by cinder-api.
26 description: Set to True to enable debugging on all services.
28 VirtualIP: # deprecated. Use per service VIPs instead.
34 Additional hiera configuration to inject into the cluster. Note
35 that BlockStorageExtraConfig takes precedence over ExtraConfig.
37 BlockStorageExtraConfig:
40 Role specific additional hiera configuration to inject into the cluster.
43 description: Flavor for block storage nodes to request when deploying.
46 - custom_constraint: nova.flavor
49 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
61 Rabbit client subscriber parameter to specify
62 an SSL connection to the RabbitMQ host.
66 description: Set rabbit subscriber port, change this if using SSL
68 SnmpdReadonlyUserName:
70 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
72 SnmpdReadonlyUserPassword:
74 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
79 description: Comma-separated list of ntp servers
80 type: comma_delimited_list
83 description: Set to true to enable package installation via Puppet
89 Setting to a previously unused value during stack-update will trigger
90 package update on all nodes
93 default: '' # Defaults to Heat created hostname
96 description: Mapping of service_name -> network name. Typically set
97 via parameter_defaults in the resource registry.
101 description: Mapping of service endpoint -> protocol. Typically set
102 via parameter_defaults in the resource registry.
110 NetworkDeploymentActions:
111 type: comma_delimited_list
113 Heat action when to apply network configuration changes
115 SoftwareConfigTransport:
116 default: POLL_SERVER_CFN
118 How the server should receive the metadata required for software configuration.
121 - allowed_values: [POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE]
126 The DNS domain used for the hosts. This should match the dhcp_domain
127 configured in the Undercloud neutron. Defaults to localdomain.
131 Extra properties or metadata passed to Nova for the created nodes in
132 the overcloud. It's accessible via the Nova metadata API.
138 type: OS::Nova::Server
142 flavor: {get_param: Flavor}
143 key_name: {get_param: KeyName}
146 user_data_format: SOFTWARE_CONFIG
147 user_data: {get_resource: UserData}
148 name: {get_param: Hostname}
149 software_config_transport: {get_param: SoftwareConfigTransport}
150 metadata: {get_param: ServerMetadata}
152 # Combine the NodeAdminUserData and NodeUserData mime archives
154 type: OS::Heat::MultipartMime
157 - config: {get_resource: NodeAdminUserData}
159 - config: {get_resource: NodeUserData}
162 # Creates the "heat-admin" user if configured via the environment
163 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
165 type: OS::TripleO::NodeAdminUserData
167 # For optional operator additional userdata
168 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
170 type: OS::TripleO::NodeUserData
173 type: OS::TripleO::BlockStorage::Ports::InternalApiPort
175 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
178 type: OS::TripleO::BlockStorage::Ports::StoragePort
180 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
183 type: OS::TripleO::BlockStorage::Ports::StorageMgmtPort
185 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
188 type: OS::TripleO::BlockStorage::Net::SoftwareConfig
190 ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
191 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
192 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
193 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
196 type: OS::TripleO::Network::Ports::NetIpMap
198 ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
199 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
200 StorageIp: {get_attr: [StoragePort, ip_address]}
201 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
204 type: OS::TripleO::SoftwareDeployment
206 config: {get_resource: NetworkConfig}
207 server: {get_resource: BlockStorage}
208 actions: {get_param: NetworkDeploymentActions}
210 BlockStorageDeployment:
211 type: OS::Heat::StructuredDeployment
212 depends_on: NetworkDeployment
214 server: {get_resource: BlockStorage}
215 config: {get_resource: BlockStorageConfig}
217 debug: {get_param: Debug}
218 cinder_dsn: {list_join: ['', ['mysql://cinder:', {get_param: CinderPassword}, '@', {get_param: MysqlVirtualIP} , '/cinder']]}
219 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
220 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
221 cinder_lvm_loop_device_size:
225 size: {get_param: CinderLVMLoopDeviceSize}
226 cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
227 cinder_iscsi_helper: {get_param: CinderISCSIHelper}
228 cinder_iscsi_ip_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CinderIscsiNetwork]}]}
229 glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
230 rabbit_username: {get_param: RabbitUserName}
231 rabbit_password: {get_param: RabbitPassword}
232 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
233 rabbit_client_port: {get_param: RabbitClientPort}
234 ntp_servers: {get_param: NtpServer}
235 enable_package_install: {get_param: EnablePackageInstall}
236 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
238 # Map heat metadata into hiera datafiles
240 type: OS::Heat::StructuredConfig
242 group: os-apply-config
247 - heat_config_%{::deploy_config_name}
251 - all_nodes # provided by allNodesConfig
256 raw_data: {get_file: hieradata/common.yaml}
258 mapped_data: {get_param: BlockStorageExtraConfig}
260 mapped_data: {get_param: ExtraConfig}
262 raw_data: {get_file: hieradata/volume.yaml}
265 cinder::debug: {get_input: debug}
266 cinder::setup_test_volume::size: {get_input: cinder_lvm_loop_device_size}
267 cinder_iscsi_helper: {get_input: cinder_iscsi_helper}
268 cinder::database_connection: {get_input: cinder_dsn}
269 cinder::rabbit_userid: {get_input: rabbit_username}
270 cinder::rabbit_password: {get_input: rabbit_password}
271 cinder::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
272 cinder::rabbit_port: {get_input: rabbit_client_port}
273 cinder_enable_iscsi_backend: {get_input: cinder_enable_iscsi_backend}
274 cinder_iscsi_ip_address: {get_input: cinder_iscsi_ip_address}
275 cinder::glance::glance_api_servers: {get_input: glance_api_servers}
276 ntp::servers: {get_input: ntp_servers}
277 tripleo::packages::enable_install: {get_input: enable_package_install}
278 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
279 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
280 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
282 # Resource for site-specific injection of root certificate
284 depends_on: BlockStorageDeployment
285 type: OS::TripleO::NodeTLSCAData
287 server: {get_resource: BlockStorage}
289 # Hook for site-specific additional pre-deployment config,
290 # applying to all nodes, e.g node registration/unregistration
292 depends_on: NodeTLSCAData
293 type: OS::TripleO::NodeExtraConfig
295 server: {get_resource: BlockStorage}
298 type: OS::TripleO::Tasks::PackageUpdate
301 type: OS::Heat::SoftwareDeployment
303 config: {get_resource: UpdateConfig}
304 server: {get_resource: BlockStorage}
307 get_param: UpdateIdentifier
313 template: "IP HOST.DOMAIN HOST"
315 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]}
316 DOMAIN: {get_param: CloudDomain}
317 HOST: {get_attr: [BlockStorage, name]}
318 nova_server_resource:
319 description: Heat resource handle for the block storage server
321 {get_resource: BlockStorage}
322 internal_api_ip_address:
323 description: IP address of the server in the internal_api network
324 value: {get_attr: [InternalApiPort, ip_address]}
326 description: IP address of the server in the storage network
327 value: {get_attr: [StoragePort, ip_address]}
328 storage_mgmt_ip_address:
329 description: IP address of the server in the storage_mgmt network
330 value: {get_attr: [StorageMgmtPort, ip_address]}
332 description: identifier which changes if the node configuration may need re-applying
336 - - {get_attr: [BlockStorageDeployment, deploy_stdout]}
337 - {get_attr: [NodeTLSCAData, deploy_stdout]}
338 - {get_param: UpdateIdentifier}