dcache: Maintain a dCache installation.
dcache::config: Manage thedcache.envanddcache.conffiles.dcache::install: Install dCache rpms and fix owner and gid of resources.dcache::layout: Create the layout file with header.dcache::wlcg_tape_rest_api: Deploy wlcg-tape-rest-api.json with WebDAV and/or Frontend services.
dcache::domain: Add a dCache domain to the layout file.dcache::services::admin: Add the admin service to the layout and deploy ssh authorized keys for it.dcache::services::frontend: Add the frontend service to the layout and manage.well-knownresources.dcache::services::generic: Define a generic dCache service in the layout file.dcache::services::gplazma: Define all data for the gPlazma service.dcache::services::infoprovider: Deploy files for the "info-based info-provider".dcache::services::nfs: Add the nfs service to the layout file and manage the exports file.dcache::services::pool: Just syntactic sugar for defining a pool for dCache.dcache::services::poolmanager: Add the poolmanager service to the layout and managepoolmanager.conf.dcache::services::spacemanager: Add the SRM Space Manager service to the layout and manageLinkGroupAuthorization.conf.dcache::services::webdav: Add the webdav service to the layout and manage.well-knownresources.
dcache::hash_to_psu: Transform the psu input data into fully qualified information about all entities relevant to the Pool Selection Unit.
Dcache::Admin::Authorized_keys: The authorized ssh keys for accessing the dCache administration interface.Dcache::Dcache_version: Which version specifiers are allowed.Dcache::Gplazma::Authzdb: Validate content of the storage-authzdb for gPlazma.Dcache::Gplazma::Banfile: The banfile may contain aliases and bans as simple mappings.Dcache::Gplazma::Gridmap: Validate the lines for the grid-mapfile of gPlazma.Dcache::Gplazma::Kpwd: Validate the content of the dcache.kpwd file of gPlazma.Dcache::Gplazma::Multimap: Validate the content of the multi-mapfile of gPlazma.Dcache::Layout: Defines the domains and services the layout on this node comprises of.Dcache::Layout::Domain: The domains included in Dcache::Layout.Dcache::Layout::Properties: Properties for either Dcache::Layout::Domain or ::Service.Dcache::Layout::Service: The services included in Dcache::Layout.Dcache::Wlcg_tape_api: Contact details on the /tape REST endpoints.
Maintain a dCache installation.
-
Note The dCache rpm—as shipped by dCache.org— will ensure a "dcache" user and group account exists in any case. This module will not attempt to manage either, in order to not interfere with other user management facilities.
-
See also
classes:
- dcache
dcache::setup:
dcache.zookeeper.connection: zookeeper.example.org:2181/
dcache::layout:
# Global layout property mappings have Scalar values
dcache.java.memory.heap: 500m
# dCache domains have mapping values
dCacheDomain:
# Domain properties have Scalar values
dcache.broker.scheme: core
# Services have mapping values
nfs:
# Service properties need to be grouped with the 'properties' key
properties:
nfs.version: 3
# Depending on the service type, there may be additional
# supported parameters. Refer to ./dcache_services.md
# for the entire documentation.
exports:
/pnfs:
localhost:
- rw
- no_root_squash
# dcache::services::pinmanager is _not_ a known Puppet resource.
# So Puppet will translate this data into a dcache::services::generic
# resource.
pinmanager: {}
poolDomain:
# Only for pools, we support setting its designated name in this way
pool_1:
service: pool
size: 200000000000
pool_2:
service: pool
size: 200000000000The following parameters are available in the dcache class:
Data type: Dcache::Dcache_version
The only mandatory parameter specifies the desired semantic version of dCache.
Data type: Variant[String[1], Integer[0]]
The designated uid of the dCache configuration files and service processes.
Default value: 'dcache'
Data type: Variant[String[1], Integer[0]]
The designated primary gid of the dCache configuration files and service processes.
Default value: 'dcache'
Data type: Hash[String[1], Scalar]
Using this parameter, environment variables (like JAVA_HOME and JAVA)
can be set globally for dCache.
Default value: {}
Data type: Hash[String[1], Scalar]
Similar to env, a hash of properties will be written into dCache's
central configuration file (dcache.conf).
Data type: Dcache::Layout
The complete layout of dCache domains and services (of the current node).
Type: Ruby 4.x API
Transform the psu input data into fully qualified information about all entities relevant to the Pool Selection Unit.
Optional[units] => Units,
Optional[ugroups] => Hash[String, Units],
Optional[pools] => Array[String],
Optional[pgroups] => Hash[String, Pgroup],
Optional[links] => Hash[String, InputLink],
Optional[lgroups] => Hash[String, InputLgroup],
}] $content)`
Transform the psu input data into fully qualified information about all entities relevant to the Pool Selection Unit.
Returns: Struct[{ units => Units, ugroups => Hash[String, Array[String]], pools => Array[String], pgroups => Hash[String, Array[String]], links => Hash[String, OutputLink], lgroups => Hash[String, OutputLgroup], }] Transformed, extensive and fully qualified data for PoolManager.
Data type: Struct[{ Optional[units] => Units, Optional[ugroups] => Hash[String, Units], Optional[pools] => Array[String], Optional[pgroups] => Hash[String, Pgroup], Optional[links] => Hash[String, InputLink], Optional[lgroups] => Hash[String, InputLgroup], }]
The streamlined input data.
The authorized ssh keys for accessing the dCache administration interface.
Alias of
Hash[String[1], Struct[{
Optional['name'] => NotUndef[String[1]],
'ensure' => Optional[Enum['present', 'absent']],
'key' => NotUndef[String[1]],
'options' => Optional[Array[Pattern[/^\w+=.+$/]]],
'provider' => Optional['parsed'],
'target' => Optional[Stdlib::Absolutepath],
'user' => Optional[Variant[String[1], Integer[0]]],
'type' => Optional[Enum[
'ssh-dss', 'ssh-rsa',
'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', 'ecdsa-sha2-nistp521',
'ssh-ed25519', 'dsa', 'ed25519', 'rsa',
]],
}]]Which version specifiers are allowed.
Alias of
Variant[Pattern[/^\d+\.\d+\.\d+([[:alnum:]_.-]+)?$/], Enum['installed', 'present', 'absent']]Validate content of the storage-authzdb for gPlazma.
Alias of
Hash[String[1], Variant[
Enum['2.0', '2.1'],
Float[2.0, 2.1],
Struct[{
NotUndef['access'] => Enum['read-only', 'read-write'],
NotUndef['uid'] => Integer[0],
NotUndef['gids'] => Array[Integer[0]],
NotUndef['home'] => Stdlib::Absolutepath,
NotUndef['root'] => Stdlib::Absolutepath,
Optional['extra'] => Stdlib::Absolutepath,
}]
]]The banfile may contain aliases and bans as simple mappings.
dcache::layout:
gplazmaDomain:
gplazma:
banfile:
bans:
- dn: /CN=Bad Person
- dn: /CN=His Accomplicedcache::domain { 'gplazmaDomain':
services => {
'gplazma' => {
'banfile' => [
{ 'dn' => '/CN=Bad Person', },
{ 'dn' => '/CN=His Accomplice', },
],
},
},
}Alias of
Struct[{
Optional['aliases'] => Hash[String, String],
'bans' => Array[Hash[String, String, 1, 1]],
}]Validate the lines for the grid-mapfile of gPlazma.
Alias of
Array[Struct[
dn => String[1],
Optional[fqan] => String[1],
login => String[1],
]]Validate the content of the dcache.kpwd file of gPlazma.
Alias of
Struct[{
'version' => Variant[Enum['2.0', '2.1'], Float[2.0, 2.1]],
Optional['mappings'] => Hash[String[1], String[1]],
Optional['logins'] =>
Hash[
String[1],
Struct[{
NotUndef['access'] => Enum['read-only', 'read-write'],
NotUndef['uid'] => Integer[0],
NotUndef['gid'] => Integer[0],
NotUndef['home'] => Stdlib::Absolutepath,
NotUndef['root'] => Stdlib::Absolutepath,
Optional['extra'] => Stdlib::Absolutepath,
NotUndef['dns'] => Array[String[1]],
}]
],
Optional['passwds'] =>
Hash[
String[1],
Struct[{
NotUndef['pwdhash'] => String[8, 8],
NotUndef['access'] => Enum['read-only', 'read-write'],
NotUndef['uid'] => Integer[0],
NotUndef['gid'] => Integer[0],
NotUndef['home'] => Stdlib::Absolutepath,
NotUndef['root'] => Stdlib::Absolutepath,
Optional['extra'] => Stdlib::Absolutepath,
}]
],
}]Validate the content of the multi-mapfile of gPlazma.
Alias of
Hash[Pattern[/\A(dn|email|entitlement|fqan|gid|group|kerberos|oidc|oidcgrp|op|uid|username):/], Hash[
Enum['dn','email','entitlement','fqan','gid','group','kerberos','oidc','oidcgrp','op','uid','username'],
Variant[Integer, String]
]]Defines the domains and services the layout on this node comprises of.
Alias of
Hash[String[1], Variant[
Scalar, # Property value
Dcache::Layout::Domain
]]The domains included in Dcache::Layout.
Alias of
Hash[String[1], Variant[Scalar, Dcache::Layout::Service]]Properties for either Dcache::Layout::Domain or ::Service.
Alias of
Hash[String[1], Scalar]The services included in Dcache::Layout.
Alias of
Hash[String[1], Data]Contact details on the /tape REST endpoints.
Alias of
Struct[{
'sitename' => String,
'endpoints' => Array[
Struct[{
'uri' => Pattern[/\A[\d\w]+:\/\/.*\z/],
'version' => String,
Optional['metadata'] => Hash,
}]
],
Optional['description'] => String,
}]