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
119 The DNS domain used for the hosts. This should match the dhcp_domain
120 configured in the Undercloud neutron. Defaults to localdomain.
124 Extra properties or metadata passed to Nova for the created nodes in
125 the overcloud. It's accessible via the Nova metadata API.
129 description: Optional scheduler hints to pass to nova
135 type: OS::Nova::Server
139 flavor: {get_param: Flavor}
140 key_name: {get_param: KeyName}
143 user_data_format: SOFTWARE_CONFIG
144 user_data: {get_resource: UserData}
145 name: {get_param: Hostname}
146 metadata: {get_param: ServerMetadata}
147 scheduler_hints: {get_param: SchedulerHints}
149 # Combine the NodeAdminUserData and NodeUserData mime archives
151 type: OS::Heat::MultipartMime
154 - config: {get_resource: NodeAdminUserData}
156 - config: {get_resource: NodeUserData}
159 # Creates the "heat-admin" user if configured via the environment
160 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
162 type: OS::TripleO::NodeAdminUserData
164 # For optional operator additional userdata
165 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
167 type: OS::TripleO::NodeUserData
170 type: OS::TripleO::BlockStorage::Ports::InternalApiPort
172 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
175 type: OS::TripleO::BlockStorage::Ports::StoragePort
177 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
180 type: OS::TripleO::BlockStorage::Ports::StorageMgmtPort
182 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
185 type: OS::TripleO::BlockStorage::Net::SoftwareConfig
187 ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
188 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
189 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
190 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
193 type: OS::TripleO::Network::Ports::NetIpMap
195 ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
196 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
197 StorageIp: {get_attr: [StoragePort, ip_address]}
198 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
201 type: OS::TripleO::SoftwareDeployment
203 config: {get_resource: NetworkConfig}
204 server: {get_resource: BlockStorage}
205 actions: {get_param: NetworkDeploymentActions}
207 BlockStorageDeployment:
208 type: OS::Heat::StructuredDeployment
209 depends_on: NetworkDeployment
211 server: {get_resource: BlockStorage}
212 config: {get_resource: BlockStorageConfig}
214 debug: {get_param: Debug}
215 cinder_dsn: {list_join: ['', ['mysql://cinder:', {get_param: CinderPassword}, '@', {get_param: MysqlVirtualIP} , '/cinder']]}
216 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
217 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
218 cinder_lvm_loop_device_size:
222 size: {get_param: CinderLVMLoopDeviceSize}
223 cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
224 cinder_iscsi_helper: {get_param: CinderISCSIHelper}
225 cinder_iscsi_ip_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CinderIscsiNetwork]}]}
226 glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
227 rabbit_username: {get_param: RabbitUserName}
228 rabbit_password: {get_param: RabbitPassword}
229 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
230 rabbit_client_port: {get_param: RabbitClientPort}
231 ntp_servers: {get_param: NtpServer}
232 enable_package_install: {get_param: EnablePackageInstall}
233 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
235 # Map heat metadata into hiera datafiles
237 type: OS::Heat::StructuredConfig
239 group: os-apply-config
244 - heat_config_%{::deploy_config_name}
248 - all_nodes # provided by allNodesConfig
253 raw_data: {get_file: hieradata/common.yaml}
255 mapped_data: {get_param: BlockStorageExtraConfig}
257 mapped_data: {get_param: ExtraConfig}
259 raw_data: {get_file: hieradata/volume.yaml}
262 cinder::debug: {get_input: debug}
263 cinder::setup_test_volume::size: {get_input: cinder_lvm_loop_device_size}
264 cinder_iscsi_helper: {get_input: cinder_iscsi_helper}
265 cinder::database_connection: {get_input: cinder_dsn}
266 cinder::rabbit_userid: {get_input: rabbit_username}
267 cinder::rabbit_password: {get_input: rabbit_password}
268 cinder::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
269 cinder::rabbit_port: {get_input: rabbit_client_port}
270 cinder_enable_iscsi_backend: {get_input: cinder_enable_iscsi_backend}
271 cinder_iscsi_ip_address: {get_input: cinder_iscsi_ip_address}
272 cinder::glance::glance_api_servers: {get_input: glance_api_servers}
273 ntp::servers: {get_input: ntp_servers}
274 tripleo::packages::enable_install: {get_input: enable_package_install}
275 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
276 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
277 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
279 # Resource for site-specific injection of root certificate
281 depends_on: BlockStorageDeployment
282 type: OS::TripleO::NodeTLSCAData
284 server: {get_resource: BlockStorage}
286 # Hook for site-specific additional pre-deployment config,
287 # applying to all nodes, e.g node registration/unregistration
289 depends_on: NodeTLSCAData
290 type: OS::TripleO::NodeExtraConfig
292 server: {get_resource: BlockStorage}
295 type: OS::TripleO::Tasks::PackageUpdate
298 type: OS::Heat::SoftwareDeployment
300 config: {get_resource: UpdateConfig}
301 server: {get_resource: BlockStorage}
304 get_param: UpdateIdentifier
310 template: "IP HOST.DOMAIN HOST"
312 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]}
313 DOMAIN: {get_param: CloudDomain}
314 HOST: {get_attr: [BlockStorage, name]}
315 nova_server_resource:
316 description: Heat resource handle for the block storage server
318 {get_resource: BlockStorage}
319 internal_api_ip_address:
320 description: IP address of the server in the internal_api network
321 value: {get_attr: [InternalApiPort, ip_address]}
323 description: IP address of the server in the storage network
324 value: {get_attr: [StoragePort, ip_address]}
325 storage_mgmt_ip_address:
326 description: IP address of the server in the storage_mgmt network
327 value: {get_attr: [StorageMgmtPort, ip_address]}
329 description: identifier which changes if the node configuration may need re-applying
333 - - {get_attr: [BlockStorageDeployment, deploy_stdout]}
334 - {get_attr: [NodeTLSCAData, deploy_stdout]}
335 - {get_param: UpdateIdentifier}