Puppet Class: grafana::ldap

Inherits:
::grafana::params
Defined in:
manifests/ldap.pp

Overview

Configure LDAP authentication and authorisation support.

Examples:

Declaring the class

class { '::grafana':
  admin_password => 'password',
  secret_key     => 'abc123',
}

class { '::grafana::ldap':
   bind_dn               => 'cn=Manager,dc=example,dc=com',
   bind_password         => 'secret',
   group_search_base_dns => ['ou=groups,dc=example,dc=com'],
   group_search_filter   => '(&(objectClass=posixGroup)(memberUid=%s))',
   hosts                 => ['192.0.2.1'],
   search_base_dns       => ['ou=people,dc=example,dc=com'],
   search_filter         => '(uid=%s)',
   attributes            => {
     'name'      => 'givenName',
     'surname'   => 'sn',
     'username'  => 'uid',
     'member_of' => 'cn',
     'email'     => 'mail',
   },
   group_mappings        => [
     {
       'group_dn' => 'alice',
       'org_role' => 'Admin',
     },
   ],
 }

Parameters:

  • bind_dn (Bodgitlib::LDAP::DN)
  • hosts (Array[String, 1])
  • search_base_dns (Array[Bodgitlib::LDAP::DN, 1])
  • search_filter (Bodgitlib::LDAP::Filter)
  • attributes (Grafana::LDAP::Attributes) (defaults to: { 'name' => 'givenName', 'surname' => 'sn', 'username' => 'cn', 'member_of' => 'memberOf', 'email' => 'email', })
  • bind_password (Optional[String]) (defaults to: undef)
  • conf_file (Stdlib::Absolutepath) (defaults to: $::grafana::params::ldap_toml)
  • group_mappings (Optional[Array[Grafana::LDAP::Role, 1]]) (defaults to: undef)
  • group_search_base_dns (Optional[Array[Bodgitlib::LDAP::DN, 1]]) (defaults to: undef)
  • group_search_filter (Optional[Bodgitlib::LDAP::Filter]) (defaults to: undef)
  • group_search_filter_user_attribute (Optional[String]) (defaults to: undef)
  • port (Bodgitlib::Port) (defaults to: 389)
  • root_ca_cert (Optional[Stdlib::Absolutepath]) (defaults to: undef)
  • ssl_skip_verify (Optional[Boolean]) (defaults to: undef)
  • start_tls (Optional[Boolean]) (defaults to: undef)
  • use_ssl (Optional[Boolean]) (defaults to: undef)
  • verbose_logging (Optional[Boolean]) (defaults to: undef)

See Also:



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'manifests/ldap.pp', line 51

class grafana::ldap (
  Bodgitlib::LDAP::DN                     $bind_dn,
  Array[String, 1]                        $hosts,
  Array[Bodgitlib::LDAP::DN, 1]           $search_base_dns,
  Bodgitlib::LDAP::Filter                 $search_filter,
  Grafana::LDAP::Attributes               $attributes                         = {
    'name'      => 'givenName',
    'surname'   => 'sn',
    'username'  => 'cn',
    'member_of' => 'memberOf',
    'email'     => 'email',
  },
  Optional[String]                        $bind_password                      = undef,
  Stdlib::Absolutepath                    $conf_file                          = $::grafana::params::ldap_toml,
  Optional[Array[Grafana::LDAP::Role, 1]] $group_mappings                     = undef,
  Optional[Array[Bodgitlib::LDAP::DN, 1]] $group_search_base_dns              = undef,
  Optional[Bodgitlib::LDAP::Filter]       $group_search_filter                = undef,
  Optional[String]                        $group_search_filter_user_attribute = undef,
  Bodgitlib::Port                         $port                               = 389,
  Optional[Stdlib::Absolutepath]          $root_ca_cert                       = undef,
  Optional[Boolean]                       $ssl_skip_verify                    = undef,
  Optional[Boolean]                       $start_tls                          = undef,
  Optional[Boolean]                       $use_ssl                            = undef,
  Optional[Boolean]                       $verbose_logging                    = undef,
) inherits ::grafana::params {

  if ! defined(Class['::grafana']) {
    fail('You must include the grafana base class before using the grafana::ldap class')
  }

  contain ::grafana::ldap::config

  Class['::grafana::config'] -> Class['::grafana::ldap::config']
    ~> Class['::grafana::service']
}