system-config/modules/openstack_project/manifests/grafana.pp
Paul Belanger 0592f4cf1e
Add Gemfile
Now that we have switched to gem-based puppet, we also need to include
our Gemfile for our spec helper. This should pull in the required
dependencies.

Properly quote configuration options for grafana.pp to pass lint
checks now.

Change-Id: Id85b14167416bc616a6f99cea43aacb53c2605b5
Depends-On: I082ea72743634b8ce0106786ab4ec35add874c8d
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2017-05-01 15:45:33 -04:00

101 lines
2.5 KiB
Puppet

# == Class: openstack_project::grafana
#
# === Parameters
# [*cfg*]
# Manages the Grafana configuration file. The upstream puppet-grafana module
# documentaion: https://github.com/bfraser/puppet-grafana#cfg
#
class openstack_project::grafana (
$mysql_password,
$admin_password = '',
$admin_user = 'admin',
$grafana_cfg = {},
$http_host = '127.0.0.1',
$http_port = '8080',
$mysql_host = '127.0.0.1',
$mysql_name = 'grafana',
$mysql_user = 'grafana',
$project_config_repo = '',
$secret_key = '',
$vhost_name = $::fqdn,
) {
include ::httpd
$grafana_cfg_defaults = {
# NOTE(pabelanger): app_mode must be the first key!
'app_mode' => 'production',
'analytics' => {
'reporting_enabled' => false,
},
'auth.anonymous' => {
'enabled' => true,
},
'database' => {
'type' => 'mysql',
'host' => "${mysql_host}:3306",
'name' => $mysql_name,
'user' => $mysql_user,
'password' => $mysql_password,
},
'security' => {
'admin_password' => $admin_password,
'admin_user' => $admin_user,
'secret_key' => $secret_key,
},
'server' => {
'http_addr' => $http_host,
'http_port' => $http_port,
},
'users' => {
'allow_sign_up' => false,
},
}
$grafana_cfg_merged = merge($grafana_cfg_defaults, $grafana_cfg)
class { '::grafana':
cfg => $grafana_cfg_merged,
# Note that we can't use archive because that install_method requires
# the camptocamp-archive module but we have puppetcommunity-archive
# in modules.env, and puppet only supports having one in the modulepath
# at a time.
install_method => 'repo',
version => '2.6.0',
}
::httpd::vhost { $vhost_name:
docroot => 'MEANINGLESS ARGUMENT',
port => 80,
priority => '50',
template => 'openstack_project/grafana.vhost.erb',
}
if ! defined(Httpd::Mod['rewrite']) {
httpd::mod { 'rewrite':
ensure => present,
}
}
if ! defined(Httpd::Mod['proxy']) {
httpd::mod { 'proxy':
ensure => present,
}
}
if ! defined(Httpd::Mod['proxy_http']) {
httpd::mod { 'proxy_http':
ensure => present,
}
}
class { '::project_config':
url => $project_config_repo,
}
class { '::grafyaml':
config_dir => $::project_config::grafana_dashboards_dir,
grafana_url => "http://${admin_user}:${admin_password}@${http_host}:${http_port}",
require => Class['grafana'],
}
}