system-config/modules/openstack_project/manifests/grafana.pp
Evgeny Antyshev 4e1b8cd90a Use httpd::mod instead of httpd_mod
httpd::mod is a high-level wrapper around httpd_mod,
and, since it is used, e.g. in puppet-jenkins and puppet-zuul,
it should be uniform across all puppet projects,
to be able to properly detect
whether Httpd_mod instance defined, like below:

if (! defined(Httpd::Mod['rewrite'])) {
    httpd::mod { 'rewrite': ensure => present }
}

Change-Id: I2b453b6f15d80bba9b1c29bc0d35651cfae05427
Depends-On: I69e7f9c54d06d7f98b50fdc7d5a67dd10e3e0050
2015-12-08 15:00:14 +00:00

101 lines
2.4 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.1.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'],
}
}