diff --git a/manifests/grafana.pp b/manifests/grafana.pp index 65afdca5..759a4dbf 100644 --- a/manifests/grafana.pp +++ b/manifests/grafana.pp @@ -1,29 +1,30 @@ class profile::grafana { $db = lookup('grafana::db::database') $db_username = lookup('grafana::db::username') $db_password = lookup('grafana::db::password') $config = lookup('grafana::config') include ::postgresql::server ::postgresql::server::db {$db: user => $db_username, password => postgresql_password($db_username, $db_password), } class {'::grafana': install_method => 'repo', cfg => $config + { database => { type => 'postgres', host => '127.0.0.1:5432', name => $db, user => $db_username, password => $db_password } } } contain profile::grafana::vhost + contain profile::grafana::objects } diff --git a/manifests/grafana/objects.pp b/manifests/grafana/objects.pp new file mode 100644 index 00000000..3c343ebb --- /dev/null +++ b/manifests/grafana/objects.pp @@ -0,0 +1,44 @@ +# Creation of grafana objects + +class profile::grafana::objects { + $grafana_vhost = lookup('grafana::vhost::name') + $grafana_url = "https://${grafana_vhost}" + $grafana_user = 'admin' + $passwords = lookup('grafana::passwords') + $grafana_password = $passwords[$grafana_user] + + $orgs = lookup('grafana::objects::organizations') + + each($orgs) |$org| { + grafana_organization {$org['name']: + grafana_url => $grafana_url, + grafana_user => $grafana_user, + grafana_password => $grafana_password, + * => $org - 'name', + } + } + + $users = lookup('grafana::objects::users') + + each($users) |$user| { + $password = $passwords[$user['username']] + grafana_user {$user['username']: + grafana_url => $grafana_url, + grafana_user => $grafana_user, + grafana_password => $grafana_password, + password => $password, + * => $user - 'username', + } + } + + $datasources = lookup('grafana::objects::datasources') + + each($datasources) |$datasource| { + grafana_datasource {$datasource['name']: + grafana_url => $grafana_url, + grafana_user => $grafana_user, + grafana_password => $grafana_password, + * => $datasource - 'name', + } + } +}