puppet-cinder/manifests/backend/hp3par_iscsi.pp
Emilien Macchi 642aa03111 Allow to manage Cinder Volume types from backends
manage_volume_type is a new parameter present in every Cinder backend.
When set to True, it will manage the Cinder Volume type for the backend.
For backward compatibility, it is set to False by default.

Change-Id: I193b8e517f5804a1bce5bf472f2ca6242414354f
2016-08-11 09:15:44 -04:00

118 lines
4.0 KiB
Puppet

# Configures Cinder volume HP 3par ISCSI driver.
# Parameters are particular to each volume driver.
#
# === Parameters
#
# [*hp3par_api_url*]
# (required) url for api access to 3par - example https://10.x.x.x:8080/api/v1
#
# [*hp3par_username*]
# (required) Username for HP3par admin user
#
# [*hp3par_password*]
# (required) Password for hp3par_username
#
# [*san_ip*]
# (required) IP address of HP 3par service processor.
#
# [*san_login*]
# (required) Username for HP 3par account.
#
# [*san_password*]
# (required) Password for HP 3par account.
#
# [*hp3par_iscsi_ips*]
# (required) iscsi IP addresses for the HP 3par array
# This is a list of IPs with ports in a string, for example:
# '1.2.3.4:3261, 5.6.7.8:3261'
#
# [*volume_backend_name*]
# (optional) Allows for the volume_backend_name to be separate of $name.
# Defaults to: $name
#
# [*volume_driver*]
# (optional) Setup cinder-volume to use HP 3par volume driver.
# Defaults to 'cinder.volume.drivers.san.hp.hp_3par_iscsi.HP3PARISCSIDriver'
#
# [*hp3par_iscsi_chap_enabled*]
# (required) setting to false by default
#
# [*hp3par_iscsi_chap_enabled
# (required) setting to false by default
#
# [*hp3par_snap_cpg*]
# (optional) set to hp3par_cfg by default in the cinder driver
#
# [*hp3par_snapshot_retention*]
# (required) Time in hours for snapshot retention. Must be less
# than hp3par_snapshot_expiration.
# Defaults to 48.
#
# [*hp3par_snapshot_expiration*]
# (required) Time in hours until a snapshot expires. Must be more
# than hp3par_snapshot_retention.
# Defaults to 72.
#
# [*manage_volume_type*]
# (Optional) Whether or not manage Cinder Volume type.
# If set to true, a Cinde Volume type will be created
# with volume_backend_name=$volume_backend_name key/value.
# Defaults to false.
#
# [*extra_options*]
# (optional) Hash of extra options to pass to the backend stanza
# Defaults to: {}
# Example :
# { 'h3par_iscsi_backend/param1' => { 'value' => value1 } }
#
define cinder::backend::hp3par_iscsi(
$hp3par_api_url,
$hp3par_username,
$hp3par_password,
$san_ip,
$san_login,
$san_password,
$hp3par_iscsi_ips,
$volume_backend_name = $name,
$volume_driver = 'cinder.volume.drivers.san.hp.hp_3par_iscsi.HP3PARISCSIDriver',
$hp3par_iscsi_chap_enabled = false,
$hp3par_snap_cpg = 'OpenstackCPG',
$hp3par_snapshot_retention = 48,
$hp3par_snapshot_expiration = 72,
$manage_volume_type = false,
$extra_options = {},
) {
if ($hp3par_snapshot_expiration <= $hp3par_snapshot_retention) {
fail ('hp3par_snapshot_expiration must be greater than hp3par_snapshot_retention')
}
warning('The define cinder::backend::hp3par_iscsi is deprecated and will be removed after Newton cycle, pleasse use the new define cinder::backend::hpe3par_iscsi.')
cinder_config {
"${name}/volume_backend_name": value => $volume_backend_name;
"${name}/volume_driver": value => $volume_driver;
"${name}/hpe3par_username": value => $hp3par_username;
"${name}/hpe3par_password": value => $hp3par_password, secret => true;
"${name}/san_ip": value => $san_ip;
"${name}/san_login": value => $san_login;
"${name}/san_password": value => $san_password, secret => true;
"${name}/hpe3par_iscsi_ips": value => $hp3par_iscsi_ips;
"${name}/hpe3par_api_url": value => $hp3par_api_url;
"${name}/hpe3par_iscsi_chap_enabled": value => $hp3par_iscsi_chap_enabled;
"${name}/hpe3par_cpg_snap": value => $hp3par_snap_cpg;
"${name}/hpe3par_snapshot_retention": value => $hp3par_snapshot_retention;
"${name}/hpe3par_snapshot_expiration": value => $hp3par_snapshot_expiration;
}
if $manage_volume_type {
cinder_type { $volume_backend_name:
ensure => present,
properties => ["volume_backend_name=${volume_backend_name}"],
}
}
create_resources('cinder_config', $extra_options)
}