nfs: Ensure nfs client is installed
The nfs volume driver requires nfs client (especially the mount.nfs command installed by it). Ensure the package is installed. Closes-Bug: #2100712 Depends-on: https://review.opendev.org/943119 Change-Id: I291f8592ca95636e16d73c1de71a378b36618c5a
This commit is contained in:
parent
b5cbc9947b
commit
75e727dea8
@ -99,6 +99,9 @@
|
||||
# (Optional) Create volumes as QCOW2 files rather than raw files.
|
||||
# Defaults to $facts['os_service_default']
|
||||
#
|
||||
# [*package_ensure*]
|
||||
# (optional) Ensure state for package. Defaults to 'present'.
|
||||
#
|
||||
# [*extra_options*]
|
||||
# (optional) Hash of extra options to pass to the backend stanza
|
||||
# Defaults to: {}
|
||||
@ -124,11 +127,13 @@ define cinder::backend::nfs (
|
||||
$nas_secure_file_permissions = $facts['os_service_default'],
|
||||
$nfs_snapshot_support = $facts['os_service_default'],
|
||||
$nfs_qcow2_volumes = $facts['os_service_default'],
|
||||
$package_ensure = 'present',
|
||||
Boolean $manage_volume_type = false,
|
||||
Hash $extra_options = {},
|
||||
) {
|
||||
|
||||
include cinder::deps
|
||||
include cinder::params
|
||||
|
||||
file { $nfs_shares_config:
|
||||
content => join($nfs_servers, "\n"),
|
||||
@ -164,6 +169,12 @@ define cinder::backend::nfs (
|
||||
}
|
||||
}
|
||||
|
||||
ensure_packages('nfs-client', {
|
||||
name => $::cinder::params::nfs_client_package_name,
|
||||
ensure => $package_ensure,
|
||||
})
|
||||
Package<| title == 'nfs-client' |> { tag +> 'cinder-support-package' }
|
||||
|
||||
create_resources('cinder_config', $extra_options)
|
||||
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ class cinder::params {
|
||||
$db_sync_command = 'cinder-manage db sync'
|
||||
$tgt_package_name = 'tgt'
|
||||
$tgt_service_name = 'tgt'
|
||||
$nfs_client_package_name = 'nfs-common'
|
||||
$ceph_common_package_name = 'ceph-common'
|
||||
$target_helper = 'tgtadm'
|
||||
$lio_package_name = 'targetcli'
|
||||
@ -45,6 +46,7 @@ class cinder::params {
|
||||
$db_sync_command = 'cinder-manage db sync'
|
||||
$tgt_package_name = 'scsi-target-utils'
|
||||
$tgt_service_name = 'tgtd'
|
||||
$nfs_client_package_name = 'nfs-utils'
|
||||
$ceph_common_package_name = 'ceph-common'
|
||||
$target_helper = 'lioadm'
|
||||
$lio_package_name = 'targetcli'
|
||||
|
@ -0,0 +1,6 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
The ``cinder::backend::nfs`` defined resource type now ensures that the nfs
|
||||
client package is installed. The new ``package_ensure`` parameter has been
|
||||
added so that the package state can be customized.
|
@ -29,6 +29,13 @@ describe 'cinder::backend::nfs' do
|
||||
is_expected.to contain_cinder_config('hippo/nfs_qcow2_volumes').with_value('<SERVICE DEFAULT>')
|
||||
}
|
||||
|
||||
it {
|
||||
is_expected.to contain_package('nfs-client').with(
|
||||
:name => platform_params[:nfs_client_package_name],
|
||||
:ensure => 'installed',
|
||||
)
|
||||
}
|
||||
|
||||
it { is_expected.to contain_file('/etc/cinder/shares.conf').with(
|
||||
:content => "10.10.10.10:/shares\n10.10.10.10:/shares2",
|
||||
:require => 'Anchor[cinder::install::end]',
|
||||
@ -108,6 +115,15 @@ describe 'cinder::backend::nfs' do
|
||||
facts.merge!(OSDefaults.get_facts())
|
||||
end
|
||||
|
||||
let :platform_params do
|
||||
case facts[:os]['family']
|
||||
when 'Debian'
|
||||
{ :nfs_client_package_name => 'nfs-common' }
|
||||
when 'RedHat'
|
||||
{ :nfs_client_package_name => 'nfs-utils' }
|
||||
end
|
||||
end
|
||||
|
||||
it_behaves_like 'cinder::backend::nfs'
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user