diff options
Diffstat (limited to 'os-apply-config/cinder-storage.yaml')
-rw-r--r-- | os-apply-config/cinder-storage.yaml | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/os-apply-config/cinder-storage.yaml b/os-apply-config/cinder-storage.yaml new file mode 100644 index 00000000..7a686970 --- /dev/null +++ b/os-apply-config/cinder-storage.yaml @@ -0,0 +1,233 @@ +heat_template_version: 2015-04-30 +description: 'Common Block Storage Configuration' +parameters: + Image: + default: overcloud-cinder-volume + type: string + CinderEnableIscsiBackend: + default: true + description: Whether to enable or not the Iscsi backend for Cinder + type: boolean + CinderISCSIHelper: + default: tgtadm + description: The iSCSI helper to use with cinder. + type: string + CinderLVMLoopDeviceSize: + default: 5000 + description: The size of the loopback file used by the cinder LVM driver. + type: number + CinderPassword: + default: unset + description: The password for the cinder service and db account, used by cinder-api. + type: string + hidden: true + VirtualIP: + default: '' + type: string + ExtraConfig: + default: {} + description: | + Additional configuration to inject into the cluster. The JSON should have + the following structure: + {"FILEKEY": + {"config": + [{"section": "SECTIONNAME", + "values": + [{"option": "OPTIONNAME", + "value": "VALUENAME" + } + ] + } + ] + } + } + For instance: + {"nova": + {"config": + [{"section": "default", + "values": + [{"option": "force_config_drive", + "value": "always" + } + ] + }, + {"section": "cells", + "values": + [{"option": "driver", + "value": "nova.cells.rpc_driver.CellsRPCDriver" + } + ] + } + ] + } + } + type: json + BlockStorageExtraConfig: + default: {} + description: | + Role specific additional configuration to inject into the cluster. + type: json + Flavor: + description: Flavor for block storage nodes to request when deploying. + type: string + constraints: + - custom_constraint: nova.flavor + GlancePort: + default: "9292" + description: Glance port. + type: string + GlanceProtocol: + default: http + description: Protocol to use when connecting to glance, set to https for SSL. + type: string + KeyName: + default: default + description: Name of an existing EC2 KeyPair to enable SSH access to the instances + type: string + RabbitPassword: + default: 'guest' + type: string + RabbitUserName: + default: 'guest' + type: string + RabbitClientUseSSL: + default: false + description: > + Rabbit client subscriber parameter to specify + an SSL connection to the RabbitMQ host. + type: string + RabbitClientPort: + default: 5672 + description: Set rabbit subscriber port, change this if using SSL + type: number + SnmpdReadonlyUserName: + default: ro_snmp_user + description: The user name for SNMPd with readonly rights running on all Overcloud nodes + type: string + SnmpdReadonlyUserPassword: + default: unset + description: The user password for SNMPd with readonly rights running on all Overcloud nodes + type: string + hidden: true + UpdateIdentifier: + default: '' + type: string + description: > + Setting to a previously unused value during stack-update will trigger + package update on all nodes + Hostname: + type: string + default: '' # Defaults to Heat created hostname + ServiceNetMap: + default: {} + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. + type: json + GlanceApiVirtualIP: + type: string + default: '' + MysqlVirtualIP: + type: string + default: '' + +resources: + BlockStorage: + type: OS::Nova::Server + properties: + image: + {get_param: Image} + flavor: {get_param: Flavor} + key_name: {get_param: KeyName} + networks: + - network: ctlplane + user_data_format: SOFTWARE_CONFIG + user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} + + NodeUserData: + type: OS::TripleO::NodeUserData + + InternalApiPort: + type: OS::TripleO::BlockStorage::Ports::InternalApiPort + properties: + ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]} + + StoragePort: + type: OS::TripleO::BlockStorage::Ports::StoragePort + properties: + ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]} + + StorageMgmtPort: + type: OS::TripleO::BlockStorage::Ports::StorageMgmtPort + properties: + ControlPlaneIP: {get_attr: [BlockStorage, networks, ctlplane, 0]} + + NetworkConfig: + type: OS::TripleO::BlockStorage::Net::SoftwareConfig + properties: + ControlPlaneIp: {get_attr: [BlockStorage, networks, ctlplane, 0]} + InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]} + StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]} + StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]} + + NetworkDeployment: + type: OS::TripleO::SoftwareDeployment + properties: + config: {get_resource: NetworkConfig} + server: {get_resource: BlockStorage} + + BlockStorageDeployment: + type: OS::Heat::StructuredDeployment + properties: + server: {get_resource: BlockStorage} + config: {get_resource: BlockStorageConfig} + input_values: + controller_virtual_ip: {get_param: VirtualIP} + cinder_dsn: {list_join: ['', ['mysql://cinder:', {get_param: CinderPassword}, '@', {get_param: VirtualIP} , '/cinder']]} + snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName} + snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword} + signal_transport: NO_SIGNAL + BlockStorageConfig: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + keystone: + host: {get_input: controller_virtual_ip} + cinder: + db: {get_input: cinder_dsn} + volume_size_mb: + get_param: CinderLVMLoopDeviceSize + iscsi-helper: + get_param: CinderISCSIHelper + snmpd: + export_MIB: UCD-SNMP-MIB + readonly_user_name: {get_input: snmpd_readonly_user_name} + readonly_user_password: {get_input: snmpd_readonly_user_password} + rabbit: + host: {get_input: controller_virtual_ip} + username: {get_param: RabbitUserName} + password: {get_param: RabbitPassword} + glance: + host: {get_input: controller_virtual_ip} + port: {get_param: GlancePort} +outputs: + hosts_entry: + value: + str_replace: + template: "IP HOST" + params: + IP: {get_attr: [BlockStorage, networks, ctlplane, 0]} + HOST: {get_attr: [BlockStorage, name]} + internal_api_ip_address: + description: IP address of the server in the internal_api network + value: {get_attr: [InternalApiPort, ip_address]} + storage_ip_address: + description: IP address of the server in the storage network + value: {get_attr: [StoragePort, ip_address]} + storage_mgmt_ip_address: + description: IP address of the server in the storage_mgmt network + value: {get_attr: [StorageMgmtPort, ip_address]} + config_identifier: + description: identifier which changes if the node configuration may need re-applying + value: "None - NO_SIGNAL" |