Puppet Class: simp_grafana::params

Defined in:
manifests/params.pp

Overview

Class: simp_grafana::params

This class is meant to be called from simp_grafana. It sets variables according to platform.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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
86
87
88
89
90
91
92
93
94
# File 'manifests/params.pp', line 8

class simp_grafana::params {

  $trusted_nets = simplib::lookup('simp_options::trusted_nets', { 'default_value' => ['127.0.0.0/8'] })
  $firewall     = simplib::lookup('simp_options::firewall', { 'default_value' => false })
  $ldap         = simplib::lookup('simp_options::ldap', { 'default_value' => false })

  $admin_pw = passgen('grafana')

  $app_pki_dir             = '/etc/pki/simp_apps/grafana/x509'
  $app_pki_key             = "${app_pki_dir}/private/${facts['fqdn']}.pem"
  $app_pki_cert            = "${app_pki_dir}/public/${facts['fqdn']}.pub"

  $base_dn = simplib::lookup('simp_options::ldap::base_dn', { 'default_value' => simplib::ldap::domain_to_dn() } )
  $bind_dn = simplib::lookup('simp_options::ldap::bind_dn', { 'default_value' => "uid=%s,${base_dn}" } )
  $bind_pw = simplib::lookup('simp_options::ldap::bind_pw', { 'default_value' => undef } )

  $ldap_urls   = simplib::lookup('simp_options::ldap::uri', { 'default_value' => [''] } )
  $ldap_url    = $ldap_urls[0]
  $ldap_server = inline_template(
    '<%= @ldap_url.match(/(([[:alnum:]][[:alnum:]-]{0,254})?[[:alnum:]]\.)+(([[:alnum:]][[:alnum:]-]{0,254})?[[:alnum:]])\.?/) %>'
  )

  case $facts['osfamily'] {
    'RedHat': { }
    default: {
      fail("${::operatingsystem} not supported")
    }
  }

  # Static defaults
  $cfg = {
    server       => {
      http_port => 8443,
      protocol  => 'https',
      cert_file => $app_pki_cert,
      cert_key  => $app_pki_key,
    },
    security     => {
      admin_password   => $admin_pw,
      disable_gravatar => true,
    },
    users        => {
      allow_sign_up    => false,
      allow_org_create => true,
      auto_assign_org  => true,
    },
    'auth.basic' => { enabled => false },
    'auth.ldap'  => { enabled => $ldap },
    #Allows SIMP dashboards to be read from the file system
    'dashboards.json' => { enabled => true },
    analytics   => { reporting_enabled => false },
    snapshot    => { external_enabled => false },
  }

  $ldap_group_mapping_defaults = [
    { group_dn => 'simp_grafana_admins',     org_role => 'Admin'  },
    { group_dn => 'simp_grafana_editors',    org_role => 'Editor' },
    { group_dn => 'simp_grafana_editors_ro', org_role => 'Read Only Editor' },
    { group_dn => 'simp_grafana_viewers',    org_role => 'Viewer' },
  ]

  $ldap_server_defaults = {
    host                  => $ldap_server,
    port                  => 636,
    use_ssl               => true,
    ssl_skip_verify       => true,
    bind_dn               => $bind_dn,
    bind_password         => $bind_pw,
    search_filter         => '(uid=%s)',
    search_base_dns       => ["ou=People,${base_dn}"],
    group_search_filter   => '(&(objectClass=posixGroup)(memberUid=%s))',
    group_search_base_dns => ["ou=Group,${base_dn}"],
    attributes            => {
      name      => 'givenName',
      surname   => 'sn',
      username  => 'uid',
      member_of => 'cn',
      email     => 'mail',
    },
    group_mappings => $ldap_group_mapping_defaults,
  }

  $ldap_cfg = {
    verbose_logging => true,
    servers         => [ $ldap_server_defaults ],
  }
}