GPFS NFS support

This adds NFS options to support creation of cinder volumes
on a GPFS cluster

Closes-bug: #1607872

Change-Id: I071052101253516693a557e63455e3cadce6d669
Signed-off-by: Christopher Brown <snecklifter@gmail.com>
This commit is contained in:
Christopher Brown 2016-07-29 17:54:39 +01:00 committed by Christopher Brown
parent a6f8b43f6a
commit b306b501bb
3 changed files with 71 additions and 1 deletions

View File

@ -44,6 +44,26 @@
# default, the system storage pool is used. Defaults to "system" via driver.
# Defaults to <SERVICE DEFAULT>
#
# [*nas_host*]
# (optional) IP address or Hostname of the NAS system.
# Defaults to $::os_service_default
#
# [*nas_login*]
# (optional) User name to connect to NAS system.
# Defaults to $::os_service_default
#
# [*nas_password*]
# (optional) Password to connect to NAS system.
# Defaults to $::os_service_default
#
# [*nas_private_key*]
# (optional) Filename of private key to use for SSH authentication.
# Defaults to $::os_service_default
#
# [*nas_ssh_port*]
# (optional) SSH port to use to connect to NAS system.
# Defaults to $::os_service_default
#
# [*extra_options*]
# (optional) Hash of extra options to pass to the backend stanza
# Defaults to: {}
@ -65,6 +85,11 @@ define cinder::backend::gpfs (
$gpfs_max_clone_depth = $::os_service_default,
$gpfs_sparse_volumes = $::os_service_default,
$gpfs_storage_pool = $::os_service_default,
$nas_host = $::os_service_default,
$nas_login = $::os_service_default,
$nas_password = $::os_service_default,
$nas_private_key = $::os_service_default,
$nas_ssh_port = $::os_service_default,
$extra_options = {},
) {
@ -84,6 +109,11 @@ define cinder::backend::gpfs (
"${name}/gpfs_storage_pool": value => $gpfs_storage_pool;
"${name}/gpfs_images_share_mode": value => $gpfs_images_share_mode;
"${name}/gpfs_images_dir": value => $gpfs_images_dir;
"${name}/nas_host": value => $nas_host;
"${name}/nas_login": value => $nas_login;
"${name}/nas_password": value => $nas_password;
"${name}/nas_private_key": value => $nas_private_key;
"${name}/nas_ssh_port": value => $nas_ssh_port;
}
create_resources('cinder_config', $extra_options)

View File

@ -44,6 +44,26 @@
# default, the system storage pool is used. Defaults to "system" via driver.
# Defaults to $::os_service_default
#
# [*nas_host*]
# (optional) IP address or Hostname of the NAS system.
# Defaults to $::os_service_default
#
# [*nas_login*]
# (optional) User name to connect to NAS system.
# Defaults to $::os_service_default
#
# [*nas_password*]
# (optional) Password to connect to NAS system.
# Defaults to $::os_service_default
#
# [*nas_private_key*]
# (optional) Filename of private key to use for SSH authentication.
# Defaults to $::os_service_default
#
# [*nas_ssh_port*]
# (optional) SSH port to use to connect to NAS system.
# Defaults to $::os_service_default
#
# [*extra_options*]
# (optional) Hash of extra options to pass to the backend stanza
# Defaults to: {}
@ -65,6 +85,11 @@ class cinder::volume::gpfs(
$gpfs_max_clone_depth = $::os_service_default,
$gpfs_sparse_volumes = $::os_service_default,
$gpfs_storage_pool = $::os_service_default,
$nas_host = $::os_service_default,
$nas_login = $::os_service_default,
$nas_password = $::os_service_default,
$nas_private_key = $::os_service_default,
$nas_ssh_port = $::os_service_default,
$extra_options = {}
) {
@ -78,6 +103,11 @@ cinder::backend::gpfs instead.')
gpfs_max_clone_depth => $gpfs_max_clone_depth,
gpfs_sparse_volumes => $gpfs_sparse_volumes,
gpfs_storage_pool => $gpfs_storage_pool,
nas_host => $nas_host,
nas_login => $nas_login,
nas_password => $nas_password,
nas_private_key => $nas_private_key,
nas_ssh_port => $nas_ssh_port,
extra_options => $extra_options,
}
}

View File

@ -17,6 +17,11 @@ describe 'cinder::backend::gpfs' do
:gpfs_storage_pool => '<SERVICE DEFAULT>',
:gpfs_images_dir => '<SERVICE DEFAULT>',
:gpfs_images_share_mode => '<SERVICE DEFAULT>',
:nas_host => '<SERVICE DEFAULT>',
:nas_login => '<SERVICE DEFAULT>',
:nas_password => '<SERVICE DEFAULT>',
:nas_private_key => '<SERVICE DEFAULT>',
:nas_ssh_port => '<SERVICE DEFAULT>',
}
end
@ -25,7 +30,12 @@ describe 'cinder::backend::gpfs' do
:gpfs_max_clone_depth => 1,
:gpfs_sparse_volumes => false,
:gpfs_storage_pool => 'foo',
}
:nas_host => 'nas_host',
:nas_login => 'admin',
:nas_password => 'nas_password',
:nas_private_key => '/path/to/private_key',
:nas_ssh_port => '22',
}
end
let :facts do