feat: add cephfs shared volume define
- add ceph class to manage ceph client configuration/packages - add cephfs define for mounting volumes - add ceph keyring define to manage secrets used to mount cephfs
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# profiles::ceph::client
|
||||
class profiles::ceph::client (
|
||||
String $fsid,
|
||||
Array[Stdlib::Host] $mons,
|
||||
Stdlib::Absolutepath $config_file = '/etc/ceph/ceph.conf',
|
||||
String $owner = 'ceph',
|
||||
String $group = 'ceph',
|
||||
Stdlib::Filemode $mode = '0644',
|
||||
Hash $keyrings = {},
|
||||
) {
|
||||
|
||||
# dont run this on proxmox nodes
|
||||
if $facts['enc_role'] != 'roles::infra::proxmox::node' {
|
||||
|
||||
# install the ceph client package
|
||||
package { 'ceph-common':
|
||||
ensure => installed,
|
||||
}
|
||||
|
||||
# manage the ceph directory
|
||||
file { '/etc/ceph':
|
||||
ensure => directory,
|
||||
owner => $owner,
|
||||
group => $group,
|
||||
mode => $mode,
|
||||
require => Package['ceph-common'],
|
||||
}
|
||||
|
||||
# create a basic client config
|
||||
file { $config_file:
|
||||
ensure => file,
|
||||
owner => $owner,
|
||||
group => $group,
|
||||
mode => $mode,
|
||||
content => template('profiles/ceph/client.conf.erb'),
|
||||
require => Package['ceph-common'],
|
||||
}
|
||||
|
||||
# manage ceph keyrings
|
||||
create_resources('profiles::ceph::keyring', $keyrings)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user