Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
- Puppet >= 7.0.0 < 9.0.0
- , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'puppet-cvmfs', '10.2.0'
Learn more about managing modules with a PuppetfileDocumentation
puppet-cvmfs
This cvmfs module is designed to install, enable and configure CvmFS clients.
For general details on CvmFS see http://cernvm.cern.ch/portal/filesystem
This module obsoletes CERNOps-cvmfs-7.3.0
Custom Facts
The module include one customfact
- cvmfspartsize returns the size in megabytes of partition that contains the CVMFS_CACHE_BASE.
Client Configuration
To configure a cvmfs client to mount cvmfs repository with the default autofs.
class{"cvmfs":
cvmfs_http_proxy => 'http://ca-proxy.example.org:3128',
cvmfs_quota_limit => 100
}
cvmfs::mount{'files.example.org:
cvmfs_server_url => 'http://web.example.org/cvmfs/files.example.org',
}
To configure a cvmfs client to mount a domain of repositories with autofs.
class{"cvmfs":
cvmfs_http_proxy => 'http://ca-proxy.example.org:3128',
cvmfs_quota_limit => 100,
}
cvmfs::domain{'example.net'
cvmfs_server_url => 'http://web.example.org/cvmfs/@fqrn@'
}
To use puppet's mount type rather that autofs
a typical configuration might be the following. This
example configures a cvmfs domain for common settings, a configuration
repository and finally a particular repository for
mount. In this example the cvmfs-config.example.org
has
been marked as the per client configuration repository and will always
be mounted first.
class{'cvmfs':
mount_method => 'mount',
config_repo => 'cvmfs-config.example.org',
}
cvmfs::domain{'example.org':
cvmfs_server_url => 'http://web.example.org/cvmfs/@fqrn@'
}
cvmfs::mount{'cvmfs-config.example.org':
require => Cvmfs::Domain['example.org'],
}
cvmfs::mount{'myrepo.example.org':
require => Cvmfs::Domain['example.org'],
}
Parameters to Cvmfs Class
See REFERENCE.md
Cvmfs::Mount Type
To mount individual repositories optionally with a particular configuration on each repository. e.g
cvmfs::mount{'lhcb.example.org':
}
cvmfs::mount{'atlas.example.org':
cvmfs_timeout => 50
}
cvmfs::mount{'cms.example.org':
cvmfs_timeout => 100,
cvmfs_server_url => 'http://web.example.org/cms.cern.ch'
}
Cvmfs::Mount Type Parameters
See REFERENCE.md
Cvmfs::Domain Type
A cvmfs domain file can be created with the cvmfs::domain type
cvmfs::domain{'example.org':
cvmfs_server_url => 'http://host1.example.org/@repo@;http://host2.example2.org/@repo@',
cvmfs_public_key => '/etc/cvmfs/keys/key1.pub,/etc/cvmfs/keys/key2.pub'
}
Cvmfs::Domain Type Parameters
See REFERENCE.md
Managing cvmfs fsck
The optional class 'cvmfs::fsck' can be included to enable a cron job to regualarly run fsck on cvmfs systems.
class{'cvmfs':
cvmfs_fsck => true,
cvmfs_fsck_options => '-p',
cvmfs_fsck_onreboot => true
}
In addition a cron will be created to purge quarentine corrupted files after 30 days.
Fsck Options
See REFERENCE.md and the CVMFS documentation.
License
Apache II License for all files except automaster.aug which is copied from the http://augeas.net project. The automaster.aug file is LGPL v2+.
Contact
Steve Traylen steve.traylen@cern.ch
Support
Reference
Table of Contents
Classes
Public Classes
cvmfs
: Installs and Configures CVMFS
Private Classes
cvmfs::apt
: Configure cvmfs apt repositoriescvmfs::config
: Central configuration of CVMFScvmfs::fsck
: enable check_fsck as a cron or systemd timercvmfs::install
: Install cvmfs from a yum repository.cvmfs::service
: Manages the cvmfs services. Opionally this also manages the autofs servicescvmfs::yum
: Configure cvmfs yum repositories
Defined types
cvmfs::domain
: Configure a a domain of cvmfs repositoriescvmfs::id_map
: Create a map file uid or gid mappingscvmfs::mount
: Mount one cvmfs repository. Most parameters map as lower case versions of the raw cvmfs parameters.
Classes
cvmfs
Deprecated paramters below
- See also
- https://cvmfs.readthedocs.io/en/stable/apx-parameters.html
- CVMFS configuration parameters
- https://cvmfs.readthedocs.io/en/stable/apx-parameters.html
Examples
Simple Example For one Mount
class{'cvmfs':
cvmfs_http_proxy => 'http://ca-proxy.example.org:3128',
cvmfs_quota_limit => 100
}
cvmfs::mount{'files.example.org:
cvmfs_server_url => 'http://web.example.org/cvmfs/files.example.org',
}
Mount a Domain
class{'cvmfs':
cvmfs_http_proxy => 'http://ca-proxy.example.org:3128',
cvmfs_quota_limit => 100,
}
cvmfs::domain{'example.net'
cvmfs_server_url => 'http://web.example.org/cvmfs/@fqrn@'
}
Use fuse3 version of cvmfs
class{'cvmfs':
fuse3 => true,
}
Use Mount rather than AutoFS
class{'cvmfs':
mount_method => 'mount',
}
Specify mounts as a hash
class{'cvmfs':
cvmfs_hash => {
'foo.example.org' => { 'cvmfs_server_url => 'http://web.example.org/cmfs/foo.example.org' },
'bar.example.org' => { 'cvmfs_server_url => 'http://web.example.org/cvmfs/bar.example.org' },
}
}
New parameters with CVMFS 2.11.0
class{'cvmfs':
cvmfs_cache_symlinks => 'yes',
cvmfs_streaming_cache => 'no',
cvmfs_statfs_cache_timeout => 10,
cvmfs_world_readable => 'yes',
cvmfs_cpu_affinity => [0,1,2],
cvmfs_xattr_privileged_gids => [100,101,102],
cvmfs_xattr_protected_xattrs => ['user.foo','user.bar'],
cvmfs_cache_refcount => 'yes',
}
Parameters
The following parameters are available in the cvmfs
class:
mount_method
config_repo
manage_autofs_service
cvmfs_quota_limit
cvmfs_quota_ratio
cvmfs_http_proxy
cvmfs_cache_base
cvmfs_cache_owner
cvmfs_cache_group
cvmfs_cache_mode
cvmfs_ipfamily_prefer
cvmfs_dns_min_ttl
cvmfs_dns_max_ttl
cvmfs_claim_ownership
cvmfs_uid_map
cvmfs_gid_map
cvmfs_memcache_size
cvmfs_mount_rw
cvmfs_follow_redirects
cvmfs_timeout
cvmfs_timeout_direct
cvmfs_nfiles
cvmfs_syslog_level
cvmfs_tracefile
cvmfs_debuglog
cvmfs_max_ttl
cvmfs_version
repo_base
repo_includepkgs
repo_priority
repo_proxy
repo_config_enabled
repo_testing_enabled
repo_gpgcheck
repo_gpgkey
repo_manage
cvmfs_use_geoapi
cvmfs_repositories
cvmfs_hash
cvmfs_env_variables
default_cvmfs_partsize
cvmfs_domain_hash
cvmfs_instrument_fuse
cvmfs_repo_list
cvmfs_alien_cache
cvmfs_shared_cache
cvmfs_fsck
cvmfs_fsck_options
cvmfs_fsck_onreboot
fuse3
cvmfs_cache_symlinks
cvmfs_streaming_cache
cvmfs_statfs_cache_timeout
cvmfs_world_readable
cvmfs_cpu_affinity
cvmfs_xattr_privileged_gids
cvmfs_xattr_protected_xattrs
cvmfs_cache_refcount
cvmfs_yum
cvmfs_yum_priority
cvmfs_yum_proxy
cvmfs_yum_config
cvmfs_yum_config_enabled
cvmfs_yum_testing
cvmfs_yum_testing_enabled
cvmfs_yum_gpgcheck
cvmfs_yum_gpgkey
cvmfs_yum_manage_repo
cvmfs_yum_includepkgs
mount_method
Data type: Enum['autofs','mount','none']
The autofs
option will configure cvmfs to be mounted with autofs. The mount
option will
use puppet's mount type, currently adding a line to /etc/fstab. The none option
skips all mounting. Note that migrating between for instance autofs and then mount is not supported.
Default value: 'autofs'
config_repo
Data type: Optional[Stdlib::Fqdn]
When using the mount_method
as mount
it may be nescessary to specify a CVMFS located configuration_repository.
This is a repository containing extra cvmfs configuration required to be mounted before any other
repositories. There is at most one config_repo client. In addition the config_repo must actually be mounted
explicitly with a cvmfs::mount{$config_repo:}
, this is not automatic.
Default value: undef
manage_autofs_service
Data type: Boolean
should the autofs service be maintained.
Default value: true
cvmfs_quota_limit
Data type: Variant[Enum['auto'],Integer]
The cvmfs quota size in megabytes.
Default value: 1000
cvmfs_quota_ratio
Data type: Float
If set , e.g '0.8', then 0.8 of the partition size the cvmfs cache is on will be used. Setting this assumes you have pre-allocated a partition to the cvmfs cache or else it makes little sense.
Default value: 0.85
cvmfs_http_proxy
Data type: Variant[Undef,String]
List of squid servers, e.g http://squid1.example.org;http;//squid2.example.org
cvmfs_cache_base
Data type: Stdlib::Absolutepath
Location of the CVMFS cache base
Default value: '/var/lib/cvmfs'
cvmfs_cache_owner
Data type: String[1]
expected owner of cvmfs cache
Default value: 'cvmfs'
cvmfs_cache_group
Data type: String[1]
expected group of cvmfs cache
Default value: 'cvmfs'
cvmfs_cache_mode
Data type: Stdlib::Filemode
expected mode of cvmfs cache
Default value: '0700'
cvmfs_ipfamily_prefer
Data type: Optional[Variant[Integer[4,4],Integer[6,6]]]
Preferred IP protocol for dual-stack proxies. If not set, cvmfs default will be used.
Default value: undef
cvmfs_dns_min_ttl
Data type: Optional[Integer]
Minimum ttl of DNS lookups in seconds.
Default value: undef
cvmfs_dns_max_ttl
Data type: Optional[Integer]
Maximum ttl of DNS lookups in seconds.
Default value: undef
cvmfs_claim_ownership
Data type: Optional[Enum['yes','no']]
Whether the client claims ownership of files or not.
Default value: undef
cvmfs_uid_map
Data type: Optional[Hash[Variant[Integer,String], Integer, 1]]
Hash of UID pairs to map UIDs from catalogue to on the client.
Default value: undef
cvmfs_gid_map
Data type: Optional[Hash[Variant[Integer,String], Integer, 1]]
Hash of GID pairs to map GIDs from catalogue to on the client.
Default value: undef
cvmfs_memcache_size
Data type: Optional[Integer]
Size of the CernVM-FS meta-data memory cache in Megabyte.
Default value: undef
cvmfs_mount_rw
Data type: Optional[Enum['yes','no']]
Mount option to mount as read-only or read/write.
Default value: undef
cvmfs_follow_redirects
Data type: Optional[Enum['yes','no']]
Sets CVMFS_FOLLOW_REDIRECTS to its value
Default value: undef
cvmfs_timeout
Data type: Optional[Integer]
cvmfs timeout setting.
Default value: undef
cvmfs_timeout_direct
Data type: Optional[Integer]
cvmfs timeout to direct connections.
Default value: undef
cvmfs_nfiles
Data type: Optional[Integer]
Number of open files, system setting.
Default value: undef
cvmfs_syslog_level
Data type: Optional[Integer[1,2]]
Level to syslog at.
Default value: undef
cvmfs_tracefile
Data type: Optional[Stdlib::Absolutepath]
Create a tracefile at this location.
Default value: undef
cvmfs_debuglog
Data type: Optional[Stdlib::Absolutepath]
Create a debug log file at this location.
Default value: undef
cvmfs_max_ttl
Data type: Optional[Integer]
Max ttl.
Default value: undef
cvmfs_version
Data type: String[1]
Version of cvmfs to install.
Default value: 'present'
repo_base
Data type: Stdlib::Httpurl
URL containting stable, testing and config apt or yum repositories. Default in hiera data.
repo_includepkgs
Data type: Optional[Variant[Enum['absent'], Array[String[1]]]]
Specify an includepkgs to the yum repos to ignore other packages.
repo_priority
Data type: Integer
Yum priority of repositories
Default value: 80
repo_proxy
Data type: Optional[Stdlib::Httpurl]
http proxy for cvmfs yum package repository
Default value: undef
repo_config_enabled
Data type: Boolean
Should the config yum repository be enabled
Default value: false
repo_testing_enabled
Data type: Boolean
Should the testing repository be enabled.
Default value: false
repo_gpgcheck
Data type: Boolean
set to false to disable GPG checking
Default value: true
repo_gpgkey
Data type: Stdlib::Httpurl
Set a custom GPG key for yum repos. Default in hiera data.
repo_manage
Data type: Boolean
Set to false to disable yum or apt repositories management.
Default value: true
cvmfs_use_geoapi
Data type: Optional[Enum['yes','no']]
Enable geoapi to find suitable proxies.
Default value: undef
cvmfs_repositories
Data type: Optional[String[1]]
If undef CVMFS_REPOSITORIES
in default.local
will be populated
automatically from what is explicitly mounted with cvmfs::mount
. If this is
specified thenCVMFS_REPOSITORIES
list in default.local
will be exactly managed with this variable.
e.g cvmfs-config.cern.ch,atlas.cern.ch
Default value: undef
cvmfs_hash
Data type: Hash
Rather than using cvmfs::mount defined type a hash of mounts can be sepecfied.
Default value: {}
cvmfs_env_variables
Data type: Hash
$cvmfs_env_variables = {'CMS_LOCAL_SITE' => '<path to siteconf>'
will produce export CMS_LOCAL_SITE=<path to siteconf>
in the default.local file.
Default value: {}
default_cvmfs_partsize
Data type: Integer
Default value: 10000
cvmfs_domain_hash
Data type: Hash
Specify of a hash cvmfs::domain
types.
Default value: {}
cvmfs_instrument_fuse
Data type: Boolean
Instrument Fuse
Default value: false
cvmfs_repo_list
Data type: Boolean
Specify exactly the REPO_LIST in defaults.local
overriding auto population.
Default value: true
cvmfs_alien_cache
Data type: Optional[String]
Use an alien cache
Default value: undef
cvmfs_shared_cache
Data type: Optional[Enum['yes','no']]
Enable a shared cache
Default value: undef
cvmfs_fsck
Data type: Boolean
Ensure the cvmfs::fsck class is included.
Default value: false
cvmfs_fsck_options
Data type: Optional[String]
Any extra options for cvmfs fsck
Default value: undef
cvmfs_fsck_onreboot
Data type: Boolean
Should fsck be run after every reboot
Default value: false
fuse3
Data type: Optional[Boolean]
Install or disable fuse3 variant of cvmfs, if left undef
no change will be made. Note that changing
this value when CVMFS mounts are active may well destroy those mounts.
Not availabe on Ubuntu 18.04.
Default value: undef
cvmfs_cache_symlinks
Data type: Optional[Enum['yes','no']]
If set to yes, enables symlink caching in the kernel.
Default value: undef
cvmfs_streaming_cache
Data type: Optional[Enum['yes','no']]
If set to yes, use a download manager to download regular files on read.
Default value: undef
cvmfs_statfs_cache_timeout
Data type: Optional[Integer[1]]
Caching time of statfs() in seconds (no caching by default).
Default value: undef
cvmfs_world_readable
Data type: Optional[Enum['yes','no']]
Override posix read permissions to make files in repository globally readable
Default value: undef
cvmfs_cpu_affinity
Data type: Optional[Array[Integer[0],1]]
Set CPU affinity for all cvmfs components.
Default value: undef
cvmfs_xattr_privileged_gids
Data type: Optional[Array[Integer[1],1]]
group IDs that are allowed to access the extended attributes by $cvmfs_xattr_protected_xattrs
.
Default value: undef
cvmfs_xattr_protected_xattrs
Data type: Optional[Array[String[1],1]]
List of extended attributes (full name, e.g. user.fqrn) that are only accessible by root and the group IDs listed by $cvmfs_xattr_privileged_gids
.
Default value: undef
cvmfs_cache_refcount
Data type: Optional[Enum['yes','no']]
If set to yes, deduplicate open file descriptors by refcounting.
Default value: undef
cvmfs_yum
Data type: Optional[Stdlib::Httpurl]
Deprecated, use repo_base
Default value: undef
cvmfs_yum_priority
Data type: Optional[Integer]
Deprecated, use repo_priority
Default value: undef
cvmfs_yum_proxy
Data type: Optional[Stdlib::Httpurl]
Deprecated, user repo_proxy
Default value: undef
cvmfs_yum_config
Data type: Optional[Stdlib::Httpurl]
Deprecated, use repo_base
Default value: undef
cvmfs_yum_config_enabled
Data type: Optional[Integer[0,1]]
Deprecated, user repo_config_enabled
Default value: undef
cvmfs_yum_testing
Data type: Optional[Stdlib::Httpurl]
Deprecated, use repo_base
Default value: undef
cvmfs_yum_testing_enabled
Data type: Optional[Integer[0,1]]
Deprecated, use repo_testing_enabled
Default value: undef
cvmfs_yum_gpgcheck
Data type: Optional[Integer[0,1]]
Deprecated, use repo_gpgcheck
Default value: undef
cvmfs_yum_gpgkey
Data type: Optional[Variant[Stdlib::Filesource,Stdlib::Httpurl]]
Deprecated, use repo_gpgkey
Default value: undef
cvmfs_yum_manage_repo
Data type: Optional[Boolean]
Deprecated, use repo_manage
Default value: undef
cvmfs_yum_includepkgs
Data type: Optional[Variant[Enum['absent'], Array[String]]]
Deprecated, use repo_includepkgs
Default value: undef
Defined types
cvmfs::domain
Configure a a domain of cvmfs repositories
Examples
Add the example.org domain
cvmfs::domain{'example.org':
cvmfs_server_url = 'http://example.org/cvmfs/@fqrn@',
}
Parameters
The following parameters are available in the cvmfs::domain
defined type:
domain
cvmfs_quota_limit
cvmfs_server_url
cvmfs_http_proxy
cvmfs_timeout
cvmfs_timeout_direct
cvmfs_nfiles
cvmfs_max_ttl
cvmfs_env_variables
cvmfs_use_geoapi
cvmfs_follow_redirects
cvmfs_external_fallback_proxy
cvmfs_external_http_proxy
cvmfs_external_timeout
cvmfs_external_timeout_direct
cvmfs_external_url
cvmfs_public_key
cvmfs_keys_dir
domain
Data type: Stdlib::Fqdn
The domain of CVMFS repositories to mount
Default value: $name
cvmfs_quota_limit
Data type: Optional[Integer]
Per mount quota limit, not relavent to shared cache. Sets cvmfs_quota_limit
Default value: undef
cvmfs_server_url
Data type: Optional[String[1]]
Stratum 1 list, typically ;
delimited. Sets CVMFS_SERVER_URL parameter.
Default value: undef
cvmfs_http_proxy
Data type: Optional[String[1]]
List of http proxies to use. Sets CVMFS_PROXY_LIST parameter.
Default value: undef
cvmfs_timeout
Data type: Optional[Integer]
Sets CVMFS_HTTP_TIMEOUT parameter
Default value: undef
cvmfs_timeout_direct
Data type: Optional[Integer]
Sets CVMFS_HTTP_TIMEOUT_DIRECT
Default value: undef
cvmfs_nfiles
Data type: Optional[Integer]
Number of open files permitted on the OS. Sets CVMFS_NFILES
Default value: undef
cvmfs_max_ttl
Data type: Optional[Integer]
Maximum effective TTL in seconds for DNS queries of proxy server names. Sets CVMFS_MAX_TTL
Default value: undef
cvmfs_env_variables
Data type: Optional[Hash]
Sets per repo environments variables for magic links.
Default value: undef
cvmfs_use_geoapi
Data type: Optional[Stdlib::Yes_no]
Set CVMFS_MAX_GEOAPI
Default value: undef
cvmfs_follow_redirects
Data type: Optional[Stdlib::Yes_no]
Sets CVMFS_FOLLOW_REDIRECTS.
Default value: undef
cvmfs_external_fallback_proxy
Data type: Optional[String]
Sets CVMFS_EXTERNAL_FALLBACK_PROXY
Default value: undef
cvmfs_external_http_proxy
Data type: Optional[String]
Sets CVMFS_EXTERNAL_HTTP_PROXY
Default value: undef
cvmfs_external_timeout
Data type: Optional[Integer]
Sets CVMFS_EXTERNAL_TIMEOUT
Default value: undef
cvmfs_external_timeout_direct
Data type: Optional[Integer]
Sets CVMFS_EXTERNAL_TIMEOUT_DIRECT
Default value: undef
cvmfs_external_url
Data type: Optional[String]
Sets CVMFS_EXTERNAL_URL
Default value: undef
cvmfs_public_key
Data type: Optional[String[1]]
Specify repository signing key
Default value: undef
cvmfs_keys_dir
Data type: Optional[Stdlib::Absolutepath]
Specify repository directory with signing keys
Default value: undef
cvmfs::id_map
Create a map file uid or gid mappings
Parameters
The following parameters are available in the cvmfs::id_map
defined type:
map
Data type: Hash[Variant[Integer,String], Integer, 1]
Hash of {from => to}
pairs
location
Data type: Stdlib::Absolutepath
Path to write map to.
Default value: $title
cvmfs::mount
Mount one cvmfs repository. Most parameters map as lower case versions of the raw cvmfs parameters.
- See also
- https://cvmfs.readthedocs.io/en/stable/apx-parameters.html
- CVMFS configuration parameters
- https://cvmfs.readthedocs.io/en/stable/apx-parameters.html
Examples
Trivial Mount
cvmfs::mount{'files.example.org:
cvmfs_server_url => 'http://web.exampple.org/cvmfs/files.example.org',
}
Mount with Environment Variables.
cvmfs::mount{'foobar.example.org':
cvmfs_env_variables => {
'FOOT' => 'ball',
'GOLF' => 'club',
}
}
Mount a repository with mount (not automount)
class{ 'cvmfs':
mount_method => 'mount',
}
cvmfs::mount{'quark.example.org':}
Mount a repository with mount and a config_repo as well.
class{ 'cvmfs':
mount_method => 'mount',
config_mount => 'cvmfs-config.example.org',
}
cvmfs::mount{'cvmfs-config.example.org':}
cvmfs::mount{'down.example.org':}
Parameters
The following parameters are available in the cvmfs::mount
defined type:
repo
cvmfs_quota_limit
cvmfs_server_url
cvmfs_http_proxy
cvmfs_timeout
cvmfs_timeout_direct
cvmfs_nfiles
cvmfs_public_key
cvmfs_keys_dir
cvmfs_max_ttl
cvmfs_env_variables
cvmfs_use_geoapi
mount_method
cvmfs_repo_list
cvmfs_mount_rw
cvmfs_memcache_size
cvmfs_claim_ownership
cvmfs_uid_map
cvmfs_gid_map
cvmfs_follow_redirects
cvmfs_external_fallback_proxy
cvmfs_external_http_proxy
cvmfs_external_timeout
cvmfs_external_timeout_direct
cvmfs_external_url
cvmfs_repository_tag
mount_options
repo
Data type: Stdlib::Fqdn
The fully qualified repository name to mount
Default value: $name
cvmfs_quota_limit
Data type: Optional[Integer]
Per mount quota limit, not relavent to shared cache. Sets cvmfs_quota_limit
Default value: undef
cvmfs_server_url
Data type: Optional[String[1]]
Stratum 1 list, typically ;
delimited. Sets CVMFS_SERVER_URL parameter.
Default value: undef
cvmfs_http_proxy
Data type: Optional[String[1]]
List of http proxies to use. Sets CVMFS_PROXY_LIST parameter.
Default value: undef
cvmfs_timeout
Data type: Optional[Integer]
Sets CVMFS_HTTP_TIMEOUT parameter
Default value: undef
cvmfs_timeout_direct
Data type: Optional[Integer]
Sets CVMFS_HTTP_TIMEOUT_DIRECT
Default value: undef
cvmfs_nfiles
Data type: Optional[Integer]
Number of open files permitted on the OS. Sets CVMFS_NFILES
Default value: undef
cvmfs_public_key
Data type: Optional[String[1]]
Public key of repository, sets CVMFS_PUBLIC_KEYS
Default value: undef
cvmfs_keys_dir
Data type: Optional[Stdlib::Absolutepath]
Directory with public keys for repository, sets CVMFS_KEYS_DIR
Default value: undef
cvmfs_max_ttl
Data type: Optional[Integer]
Maximum effective TTL in seconds for DNS queries of proxy server names. Sets CVMFS_MAX_TTL
Default value: undef
cvmfs_env_variables
Data type: Optional[Hash]
Sets per repo environments variables for magic links.
Default value: undef
cvmfs_use_geoapi
Data type: Optional[Stdlib::Yes_no]
Set CVMFS_MAX_GEOAPI
Default value: undef
mount_method
Data type: Optional[String[1]]
Deprecated, do not set this, set mount_method for the whole client only on the main class.
Default value: undef
cvmfs_repo_list
Data type: Boolean
If true the repository will added to the list of repositories maintained in /etc/cvmfs/default.local
Default value: true
cvmfs_mount_rw
Data type: Optional[Stdlib::Yes_no]
sets CVMFS_MOUNT_RW
Default value: undef
cvmfs_memcache_size
Data type: Optional[Integer]
Sets CVMFS_MEMCACHE_SIZE in Megabytes.
Default value: undef
cvmfs_claim_ownership
Data type: Optional[Stdlib::Yes_no]
Sets CVMFS_CLAIM_OWNERSHIP.
Default value: undef
cvmfs_uid_map
Data type: Optional[Hash[Variant[Integer,String],Integer, 1]]
Specify a UID map file path for this repository . Sets CVMFS_UID_MAP
Default value: undef
cvmfs_gid_map
Data type: Optional[Hash[Variant[Integer,String],Integer, 1]]
Specify a GID map file path for this repository . Sets CVMFS_GID_MAP
Default value: undef
cvmfs_follow_redirects
Data type: Optional[Stdlib::Yes_no]
Sets CVMFS_FOLLOW_REDIRECTS.
Default value: undef
cvmfs_external_fallback_proxy
Data type: Optional[String]
Sets CVMFS_EXTERNAL_FALLBACK_PROXY
Default value: undef
cvmfs_external_http_proxy
Data type: Optional[String]
Sets CVMFS_EXTERNAL_HTTP_PROXY
Default value: undef
cvmfs_external_timeout
Data type: Optional[Integer]
Sets CVMFS_EXTERNAL_TIMEOUT
Default value: undef
cvmfs_external_timeout_direct
Data type: Optional[Integer]
Sets CVMFS_EXTERNAL_TIMEOUT_DIRECT
Default value: undef
cvmfs_external_url
Data type: Optional[String]
Sets CVMFS_EXTERNAL_URL
Default value: undef
cvmfs_repository_tag
Data type: Optional[String[1]]
Sets CVMFS_REPOSITORY_TAG
Default value: undef
mount_options
Data type: Variant[String[1],Array[String[1]]]
Mount options to use for fstab style mounting. mount_method==mount only
Default value: ['defaults','_netdev','nodev']
Changelog
All notable changes to this project will be documented in this file. Each new release typically also includes the latest modulesync defaults. These should not affect the functionality of the module.
v10.2.0 (2024-02-08)
Implemented enhancements:
- Add parameter typing to all classes #191 (traylenator)
- Support configuration repositories when using mount #177 (traylenator)
Fixed bugs:
Closed issues:
- Configuration repositories should be mounted first #176
Merged pull requests:
v10.1.0 (2023-09-05)
Implemented enhancements:
- Support CvmFS 2.11.0 parameters #186 (traylenator)
v10.0.0 (2023-08-21)
Breaking changes:
- Drop Puppet 6 support #167 (bastelfreak)
Implemented enhancements:
- puppetlabs/stdlib: Allow 9.x #178 (bastelfreak)
- Accept latest puppetlabs-concat and puppetlabs-apt #172 (traylenator)
- RockyLinux 8 and 9 support #170 (olifre)
- Debian 11, Ubuntu 22.04 and AlmaLinux 8 and 9 support #169 (traylenator)
- New parameter fuse3 to enable fuse3 variant #168 (traylenator)
- Permit alternate uid/gid/mode for CVMFS cache #166 (jcpunk)
Fixed bugs:
- Allow new cvmfs-libs package #180 (traylenator)
- Stop creating quarantaine directory #163 (traylenator)
Merged pull requests:
- Use cvmfs_partsize as an integer in tests #171 (traylenator)
v9.0.0 (2023-02-24)
Breaking changes:
- Enforce new enough puppetlabs-stdlib for Stdlib::Yes_no #150 (traylenator)
Implemented enhancements:
- Adjust package repositories to new S3 ones #158 (traylenator)
- Support CentOS/RHEL 9 #156 (traylenator)
- Add param to simplify loading
cvmfs::fsck
#152 (jcpunk)
Fixed bugs:
Closed issues:
Merged pull requests:
v8.1.0 (2022-02-14)
Implemented enhancements:
Fixed bugs:
- acceptance tests: os.distro fact requires lsb-release on Debian #148 (traylenator)
- Do not run fsck if no mount has occurred #142 (traylenator)
- Line not commented in auto.master configuration #141 (traylenator)
- limits, file_concat and firewall fixtures not required #140 (traylenator)
- Remove double entry in array #133 (traylenator)
- cvmfspartsize fact return integer rather than string #132 (traylenator)
Closed issues:
- baseurl breaks usage for users with their own mirrors #135
- cvmfspartsize fact should be an Integer #131
Merged pull requests:
- mount: fix doc typo #147 (kenyon)
- rubocop corrections for 1.22.3 #144 (traylenator)
- fixtures.yml: Migrate to git URLs #139 (bastelfreak)
- Allow up-to-date dependencies #137 (smortex)
- install: Require apt::update before package installation. #136 (olifre)
- Correct badge following migration to VoxPup #130 (traylenator)
v8.0.0 (2021-03-24)
Breaking changes:
- Remove 'yum' string from class parameters #123 (traylenator)
- Add type enforcement to cvmfs::mount and cvmfs::domain #122 (traylenator)
- Drop all CvmFS server code #113 (traylenator)
Implemented enhancements:
- Add CVMFS_IPFAMILY_PREFER config parameter #125 (luisfdez)
- Add ubuntu 18.04, 20.04 and debian 10 support #124 (traylenator)
- Use modern splat rather than create resources #121 (traylenator)
- Convert main config template to epp #118 (traylenator)
- Add UID_MAP and GID_MAP functionality. #110 (olifre)
Fixed bugs:
- cvmfs_external_url parameter to mount fixed #127 (traylenator)
- Correct parameter name for default case #126 (traylenator)
- cvmfs::install: Fact file creation must depend on Package[cvmfs]. #111 (olifre)
- add missing package require for file ownership #104 (fschaer)
Merged pull requests:
- Update all documentation #128 (traylenator)
- Whitespace, Automatic lint and Rubocop Fixes #114 (traylenator)
- Increase upper version of firewall module #112 (sorrison)
v7.3.0 (2020-08-13)
Merged pull requests:
- New cvmfs_repositories parameter #106 (traylenator)
v7.2.0 (2020-08-11)
Merged pull requests:
- Support per mount CVMFS_REPOSITORY_TAG specification #105 (traylenator)
v7.1.1 (2020-06-24)
v7.1.0 (2020-06-24)
Closed issues:
Merged pull requests:
- New cvmfs_instrument_fuse parameter #102 (traylenator)
- Remove limits module and usage #101 (traylenator)
- cvmfs::fsck: Enable cvmfs-fsck.timer. #100 (olifre)
v7.0.1 (2020-02-10)
Merged pull requests:
- Drop files in autofs.master.d must end in .autofs #96 (traylenator)
v7.0.0 (2020-01-06)
Merged pull requests:
- Remove SLC5 add C8 support #94 (traylenator)
- Correct cvmfs::cvmfs_hash usage in example #93 (traylenator)
- add two optional parameters #92 (Takadonet)
- cvmfs::fsck: Add ionice and a short sleep before fsck start. #91 (olifre)
- yum: Allow to override includepkgs, default unchanged. #90 (olifre)
v6.2.0 (2019-03-14)
Merged pull requests:
v6.1.0 (2019-01-28)
Merged pull requests:
- New cvmfs_external_ parameters #88 (traylenator)
v6.0.1 (2018-12-03)
6.0.0 (2018-12-03)
v6.0.0 (2018-12-03)
Closed issues:
- cvmfs_server_url deprecation warning issues out of the box #83
Merged pull requests:
- New dns_min,max_ttl variables #87 (traylenator)
- New yum_priority parameter #86 (traylenator)
- Modernise CERNOps-cvmfs module #85 (traylenator)
5.2.0 (2018-06-28)
Closed issues:
- Catalog timeouts mismatched with CVMFS default #81
Merged pull requests:
- Fixes #81 New mime_expire parameter to stratum 1s #82 (traylenator)
- Add puppet 5 to tests #80 (traylenator)
5.1.0 (2018-06-28)
Closed issues:
- Strange set of options for tmpwatch #71
- Default SELinux context is incorrect. #68
- non-existent option CVMFS_FORCE_SIGNING is set automatically #66
- CVMFS_CLAIM_OWNERSHIP for clients #62
- Improve error message when running at CERN an pluginsync is in operation. #49
Merged pull requests:
- Prepare 5.1.0 #79 (traylenator)
- Fixes #66 drop CVMFS_FORCE_SIGNING #78 (traylenator)
- Fixes #68 Correct selinux context for cache #77 (traylenator)
- Set catalog timeouts to 30s #76 (traylenator)
- clean_quarantaine to check for directory existence #75 (traylenator)
- cmvfs::params: Remove hard abort on Debian. #74 (olifre)
- fsck: Fix path for awk. #73 (olifre)
- cvmfs::fsck: tmpwatch on RedHat, tmpreaper on Debian. #72 (olifre)
- Do not disable SELinux for Stratum 0 / Stratum 1. #70 (olifre)
- Prepare 5.0.0 #69 (traylenator)
5.0.0 (2018-01-24)
Merged pull requests:
- Deprecate all explicit hiera calls in params.pp #34 (traylenator)
4.2.0 (2017-05-18)
Merged pull requests:
- New expireation timeout paramter for stratum zero parameters #65 (traylenator)
- Use a puppet3 supporting concat version #64 (traylenator)
- added cvmfs_claim_ownership for the client configuration #63 (mboisson)
4.1.0 (2017-04-04)
Merged pull requests:
- New parameter cvmfs_memcache_size #61 (traylenator)
puppet-cvmfs-4.0.0 (2017-02-15)
puppet-cvmfs-3.2.0 (2017-02-08)
Merged pull requests:
- Dan's commits CERN #60 (traylenator)
- Purge config.d directory #59 (rwf14f)
- Bug, do not require yumrepo if not included #58 (traylenator)
puppet-cvmfs-3.1.0 (2016-09-14)
puppet-cvmfs-3.0.1 (2016-08-18)
puppet-cvmfs-3.0.0 (2016-08-18)
Closed issues:
- Missing packages/hidden dependency? #56
- cvmfs::one::install does not inherit any params. #53
- Drop autofs lens #51
- Drop cvmfs 2.0 support #50
- Support fstab entry for cvmfs mounts. #41
puppet-cvmfs-2.0.0 (2016-04-29)
Merged pull requests:
puppet-cvmfs-1.0.3 (2016-03-14)
Merged pull requests:
puppet-cmvfs-1.0.2 (2016-03-07)
puppet-cvmfs-1.0.1 (2016-03-04)
puppet-cmvfs-1.0.0 (2016-03-04)
Closed issues:
- Configuration never taking place #44
Merged pull requests:
- The operatingsytem fact must be set. #47 (traylenator)
- New stratum 0 options for cvmfs 2.2. #46 (traylenator)
- use ensure_packages to avoid "redef errors" #45 (jcpunk)
- cvmf::install: allow to disable yum repository management #43 (gwarf)
- Run acceptence tests on travis docker #42 (traylenator)
puppet-cvmfs-0.9.0 (2015-08-04)
Closed issues:
Merged pull requests:
puppet-cvmfs-0.8.1 (2015-07-07)
puppet-cvmfs-0.8.0 (2015-07-07)
Closed issues:
- CVMFS_FOLLOW_REDIRECTS=yes #39
puppet-cvmfs-0.7.0 (2015-06-22)
puppet-cvmfs-0.6.0 (2015-06-10)
Closed issues:
- CVMFS_IGNORE_XDIR_HARDLINKS=true #38
Merged pull requests:
- Fixed package names in dependency list. #37 (mrolli)
- README.md has drifted abit from the current feature set of init.pp #35 (jcpunk)
puppet-cvmfs-0.5.0 (2015-05-06)
Closed issues:
- Client configuration in README.md provides invalid example #28
Merged pull requests:
- Fixes #28 - Readme examples should now all work. #33 (traylenator)
- Simple ls /cvmfs/atlas.cern.ch/repo as first acceptence test' #32 (traylenator)
- Notice seems a bit low for these messages #31 (jcpunk)
- I've configured this module to point to OSG cvmfs package, but can't install them #30 (jcpunk)
- List other OS platforms this works on #27 (jcpunk)
puppet-cvmfs-0.4.4 (2015-04-30)
Closed issues:
- v0.4.3 unable to resolve dependency 'erwbgy-limits' (>=1.0.0) #26
puppet-cvmfs-0.4.3 (2015-04-30)
puppet-cvmfs-0.4.2 (2015-04-30)
puppet-cvmfs-0.4.1 (2015-04-29)
Closed issues:
- hiera('key',undef) Incompatible with future parser. #19
puppet-cvmfs-0.4.0 (2015-04-29)
Closed issues:
- cvmfs_env_variables for default.local #23
- autofs management is all or nothing #20
- cvmfs::mount type should support cvmfs_http_proxy option. #15
Merged pull requests:
- Allow service to be managed seperately #21 (jcpunk)
- Remove concat setup dependency #18 (berghaus)
- Allow cvmfs-config package to be installed #17 (traylenator)
puppet-cvmfs-0.3.3 (2015-03-06)
Merged pull requests:
puppet-cvmfs-0.3.2 (2014-06-18)
puppet-cmvfs-0.3.1 (2014-06-18)
Closed issues:
- module with 'domain' settings? #14
puppet-cvmfs-0.2.2 (2014-03-27)
Merged pull requests:
puppet-cvmfs-0.2.1 (2014-01-16)
puppet-cvmfs-0.2.0 (2013-12-09)
puppet-cvmfs-0.1.0 (2013-12-04)
Closed issues:
Merged pull requests:
- Add stratum 0 and stratum 1 support. #12 (traylenator)
- Add cvmfs_server 2.1 support #11 (traylenator)
- Confine cvmfspartsize fact to Linux kernel #10 (luisfdez)
- Adding environmental variables to CVMFS config #9 (kreczko)
- Move yumrepos to seperate file to install.pp to allow cvmfs::server to reuse yumrepos. #7 (traylenator)
- Tidying up meta data #5 (kreczko)
- cvmfs 2.1 really is supported now. #3 (traylenator)
- Module update + fixes #2 (kreczko)
- text fixes #1 (deesto)
puppet-cvmfs-0.0.2 (2013-03-18)
puppet-cvmfs-0.0.1 (2012-06-01)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/apt (>=7.0.0 < 10.0.0)
- puppetlabs/concat (>= 1.0.0 < 10.0.0)
- puppetlabs/stdlib (>= 6.1.0 < 10.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2020 immerda / Puppet Modules Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.