tripleo-heat-templates/cinder-storage.yaml

166 lines
4.8 KiB
YAML

heat_template_version: 2014-10-16
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
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
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
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
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}
NodeUserData:
type: OS::TripleO::NodeUserData
NetworkConfig:
type: OS::TripleO::BlockStorage::Net::SoftwareConfig
NetworkDeployment:
type: OS::TripleO::SoftwareDeployment
properties:
config: {get_attr: [NetworkConfig, config_id]}
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:unset@', {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]}