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.
20 description: The password for the cinder service and db account, used by cinder-api.
25 description: Set to True to enable debugging on all services.
27 VirtualIP: # deprecated. Use per service VIPs instead.
33 Additional hiera configuration to inject into the cluster. Note
34 that BlockStorageExtraConfig takes precedence over ExtraConfig.
36 BlockStorageExtraConfig:
39 Role specific additional hiera configuration to inject into the cluster.
42 description: Flavor for block storage nodes to request when deploying.
45 - custom_constraint: nova.flavor
48 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
60 Rabbit client subscriber parameter to specify
61 an SSL connection to the RabbitMQ host.
65 description: Set rabbit subscriber port, change this if using SSL
67 SnmpdReadonlyUserName:
69 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
71 SnmpdReadonlyUserPassword:
72 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
77 description: Comma-separated list of ntp servers
78 type: comma_delimited_list
81 description: Set to true to enable package installation via Puppet
87 Setting to a previously unused value during stack-update will trigger
88 package update on all nodes
91 default: '' # Defaults to Heat created hostname
94 description: Mapping of service_name -> network name. Typically set
95 via parameter_defaults in the resource registry.
99 description: Mapping of service endpoint -> protocol. Typically set
100 via parameter_defaults in the resource registry.
108 NetworkDeploymentActions:
109 type: comma_delimited_list
111 Heat action when to apply network configuration changes
117 The DNS domain used for the hosts. This should match the dhcp_domain
118 configured in the Undercloud neutron. Defaults to localdomain.
122 Extra properties or metadata passed to Nova for the created nodes in
123 the overcloud. It's accessible via the Nova metadata API.
129 type: OS::Nova::Server
133 flavor: {get_param: Flavor}
134 key_name: {get_param: KeyName}
137 user_data_format: SOFTWARE_CONFIG
138 user_data: {get_resource: UserData}
139 name: {get_param: Hostname}
140 metadata: {get_param: ServerMetadata}
142 # Combine the NodeAdminUserData and NodeUserData mime archives
144 type: OS::Heat::MultipartMime
147 - config: {get_resource: NodeAdminUserData}
149 - config: {get_resource: NodeUserData}
152 # Creates the "heat-admin" user if configured via the environment
153 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
155 type: OS::TripleO::NodeAdminUserData
157 # For optional operator additional userdata
158 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
160 type: OS::TripleO::NodeUserData
163 type: OS::TripleO::BlockStorage::Ports::InternalApiPort
165 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
168 type: OS::TripleO::BlockStorage::Ports::StoragePort
170 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
173 type: OS::TripleO::BlockStorage::Ports::StorageMgmtPort
175 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
178 type: OS::TripleO::BlockStorage::Net::SoftwareConfig
180 ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
181 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
182 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
183 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
186 type: OS::TripleO::Network::Ports::NetIpMap
188 ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]}
189 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
190 StorageIp: {get_attr: [StoragePort, ip_address]}
191 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
194 type: OS::TripleO::SoftwareDeployment
196 config: {get_resource: NetworkConfig}
197 server: {get_resource: BlockStorage}
198 actions: {get_param: NetworkDeploymentActions}
200 BlockStorageDeployment:
201 type: OS::Heat::StructuredDeployment
202 depends_on: NetworkDeployment
204 server: {get_resource: BlockStorage}
205 config: {get_resource: BlockStorageConfig}
207 debug: {get_param: Debug}
208 cinder_dsn: {list_join: ['', ['mysql://cinder:', {get_param: CinderPassword}, '@', {get_param: MysqlVirtualIP} , '/cinder']]}
209 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
210 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
211 cinder_lvm_loop_device_size:
215 size: {get_param: CinderLVMLoopDeviceSize}
216 cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
217 cinder_iscsi_helper: {get_param: CinderISCSIHelper}
218 cinder_iscsi_ip_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CinderIscsiNetwork]}]}
219 glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
220 rabbit_username: {get_param: RabbitUserName}
221 rabbit_password: {get_param: RabbitPassword}
222 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
223 rabbit_client_port: {get_param: RabbitClientPort}
224 ntp_servers: {get_param: NtpServer}
225 enable_package_install: {get_param: EnablePackageInstall}
226 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
228 # Map heat metadata into hiera datafiles
230 type: OS::Heat::StructuredConfig
232 group: os-apply-config
237 - heat_config_%{::deploy_config_name}
241 - all_nodes # provided by allNodesConfig
246 raw_data: {get_file: hieradata/common.yaml}
248 mapped_data: {get_param: BlockStorageExtraConfig}
250 mapped_data: {get_param: ExtraConfig}
252 raw_data: {get_file: hieradata/volume.yaml}
255 cinder::debug: {get_input: debug}
256 cinder::setup_test_volume::size: {get_input: cinder_lvm_loop_device_size}
257 cinder_iscsi_helper: {get_input: cinder_iscsi_helper}
258 cinder::database_connection: {get_input: cinder_dsn}
259 cinder::rabbit_userid: {get_input: rabbit_username}
260 cinder::rabbit_password: {get_input: rabbit_password}
261 cinder::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
262 cinder::rabbit_port: {get_input: rabbit_client_port}
263 cinder_enable_iscsi_backend: {get_input: cinder_enable_iscsi_backend}
264 cinder_iscsi_ip_address: {get_input: cinder_iscsi_ip_address}
265 cinder::glance::glance_api_servers: {get_input: glance_api_servers}
266 ntp::servers: {get_input: ntp_servers}
267 tripleo::packages::enable_install: {get_input: enable_package_install}
268 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
269 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
270 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
272 # Resource for site-specific injection of root certificate
274 depends_on: BlockStorageDeployment
275 type: OS::TripleO::NodeTLSCAData
277 server: {get_resource: BlockStorage}
279 # Hook for site-specific additional pre-deployment config,
280 # applying to all nodes, e.g node registration/unregistration
282 depends_on: NodeTLSCAData
283 type: OS::TripleO::NodeExtraConfig
285 server: {get_resource: BlockStorage}
288 type: OS::TripleO::Tasks::PackageUpdate
291 type: OS::Heat::SoftwareDeployment
293 config: {get_resource: UpdateConfig}
294 server: {get_resource: BlockStorage}
297 get_param: UpdateIdentifier
303 template: "IP HOST.DOMAIN HOST"
305 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]}
306 DOMAIN: {get_param: CloudDomain}
307 HOST: {get_attr: [BlockStorage, name]}
308 nova_server_resource:
309 description: Heat resource handle for the block storage server
311 {get_resource: BlockStorage}
312 internal_api_ip_address:
313 description: IP address of the server in the internal_api network
314 value: {get_attr: [InternalApiPort, ip_address]}
316 description: IP address of the server in the storage network
317 value: {get_attr: [StoragePort, ip_address]}
318 storage_mgmt_ip_address:
319 description: IP address of the server in the storage_mgmt network
320 value: {get_attr: [StorageMgmtPort, ip_address]}
322 description: identifier which changes if the node configuration may need re-applying
326 - - {get_attr: [BlockStorageDeployment, deploy_stdout]}
327 - {get_attr: [NodeTLSCAData, deploy_stdout]}
328 - {get_param: UpdateIdentifier}