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.
34 Additional configuration to inject into the cluster. The JSON should have
35 the following structure:
38 [{"section": "SECTIONNAME",
40 [{"option": "OPTIONNAME",
51 [{"section": "default",
53 [{"option": "force_config_drive",
61 "value": "nova.cells.rpc_driver.CellsRPCDriver"
70 description: Flavor for block storage nodes to request when deploying.
73 - custom_constraint: nova.flavor
76 description: Glance port.
80 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
91 Rabbit client subscriber parameter to specify
92 an SSL connection to the RabbitMQ host.
96 description: Set rabbit subscriber port, change this if using SSL
98 SnmpdReadonlyUserName:
100 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
102 SnmpdReadonlyUserPassword:
104 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
110 EnablePackageInstall:
112 description: Set to true to enable package installation via Puppet
118 Setting to a previously unused value during stack-update will trigger
119 package update on all nodes
122 default: '' # Defaults to Heat created hostname
126 type: OS::Nova::Server
130 flavor: {get_param: Flavor}
131 key_name: {get_param: KeyName}
134 user_data_format: SOFTWARE_CONFIG
135 user_data: {get_resource: NodeUserData}
136 name: {get_param: Hostname}
139 type: OS::TripleO::NodeUserData
142 type: OS::TripleO::BlockStorage::Ports::InternalApiPort
144 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
147 type: OS::TripleO::BlockStorage::Ports::StoragePort
149 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
152 type: OS::TripleO::BlockStorage::Ports::StorageMgmtPort
154 ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
157 type: OS::TripleO::BlockStorage::Net::SoftwareConfig
159 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
160 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
161 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
164 type: OS::TripleO::SoftwareDeployment
166 config: {get_resource: NetworkConfig}
167 server: {get_resource: BlockStorage}
169 BlockStorageDeployment:
170 type: OS::Heat::StructuredDeployment
171 depends_on: NetworkDeployment
173 server: {get_resource: BlockStorage}
174 config: {get_resource: BlockStorageConfig}
176 debug: {get_param: Debug}
177 cinder_dsn: {list_join: ['', ['mysql://cinder:', {get_param: CinderPassword}, '@', {get_param: VirtualIP} , '/cinder']]}
178 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
179 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
180 cinder_lvm_loop_device_size:
184 size: {get_param: CinderLVMLoopDeviceSize}
185 cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
186 cinder_iscsi_helper: {get_param: CinderISCSIHelper}
187 rabbit_username: {get_param: RabbitUserName}
188 rabbit_password: {get_param: RabbitPassword}
189 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
190 rabbit_client_port: {get_param: RabbitClientPort}
193 template: '["server"]'
195 server: {get_param: NtpServer}
196 enable_package_install: {get_param: EnablePackageInstall}
198 # Map heat metadata into hiera datafiles
200 type: OS::Heat::StructuredConfig
202 group: os-apply-config
206 - heat_config_%{::deploy_config_name}
208 - all_nodes # provided by allNodesConfig
213 raw_data: {get_file: hieradata/common.yaml}
215 raw_data: {get_file: hieradata/volume.yaml}
217 cinder_iscsi_ip_address: local-ipv4
220 cinder::debug: {get_input: debug}
221 cinder::setup_test_volume::size: {get_input: cinder_lvm_loop_device_size}
222 cinder_iscsi_helper: {get_input: cinder_iscsi_helper}
223 cinder::database_connection: {get_input: cinder_dsn}
224 cinder::rabbit_userid: {get_input: rabbit_username}
225 cinder::rabbit_password: {get_input: rabbit_password}
226 cinder::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
227 cinder::rabbit_port: {get_input: rabbit_client_port}
228 cinder_enable_iscsi_backend: {get_input: cinder_enable_iscsi_backend}
229 ntp::servers: {get_input: ntp_servers}
230 enable_package_install: {get_input: enable_package_install}
231 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
232 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
235 type: OS::TripleO::Tasks::PackageUpdate
238 type: OS::Heat::SoftwareDeployment
240 config: {get_resource: UpdateConfig}
241 server: {get_resource: BlockStorage}
244 get_param: UpdateIdentifier
250 template: "IP HOST.localdomain HOST"
252 IP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
253 HOST: {get_attr: [BlockStorage, name]}
254 nova_server_resource:
255 description: Heat resource handle for the block storage server
257 {get_resource: BlockStorage}
258 internal_api_ip_address:
259 description: IP address of the server in the internal_api network
260 value: {get_attr: [InternalApiPort, ip_address]}
262 description: IP address of the server in the storage network
263 value: {get_attr: [StoragePort, ip_address]}
264 storage_mgmt_ip_address:
265 description: IP address of the server in the storage_mgmt network
266 value: {get_attr: [StorageMgmtPort, ip_address]}