Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python3 compatibility and more options #41

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions grafana/client/init.sls
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{%- if client.get('enabled', False) %}

{%- set datasources = [] %}
{%- for datasource_name, datasource in client.datasource.iteritems() %}
{%- for datasource_name, datasource in client.datasource.items() %}

{%- do datasources.append(datasource.type) %}
grafana_client_datasource_{{ datasource_name }}:
Expand Down Expand Up @@ -42,7 +42,7 @@ grafana_client_datasource_{{ datasource_name }}:
{%- set parameters = {} %}

{%- if client.remote_data.engine == 'salt_mine' %}
{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').items() %}
{%- if node_grains.grafana is defined %}
{%- set raw_dict = salt['grains.filter_by']({'default': raw_dict}, merge=node_grains.grafana.get('dashboard', {})) %}
{%- set parameters = salt['grains.filter_by']({'default': parameters}, merge=node_grains.grafana.get('parameters', {})) %}
Expand All @@ -57,15 +57,15 @@ grafana_client_datasource_{{ datasource_name }}:
{%- set parameters = salt['grains.filter_by']({'default': parameters}, merge=client.parameters) %}
{%- endif %}

{%- for dashboard_name, dashboard in raw_dict.iteritems() %}
{%- for dashboard_name, dashboard in raw_dict.items() %}
{%- if dashboard.get('format', 'yaml')|lower == 'yaml' %}
# Dashboards in JSON format are considered as blob
{%- set rows = [] %}
{%- for row_name, row in dashboard.get('row', {}).iteritems() %}
{%- for row_name, row in dashboard.get('row', {}).items() %}
{%- set panels = [] %}
{%- for panel_name, panel in row.get('panel', {}).iteritems() %}
{%- for panel_name, panel in row.get('panel', {}).items() %}
{%- set targets = [] %}
{%- for target_name, target in panel.get('target', {}).iteritems() %}
{%- for target_name, target in panel.get('target', {}).items() %}
{%- do targets.extend([target]) %}
{%- endfor %}
{%- do panel.update({'targets': targets}) %}
Expand All @@ -80,7 +80,7 @@ grafana_client_datasource_{{ datasource_name }}:
{%- do final_dict.update({dashboard_name: dashboard}) %}
{%- endfor %}

{%- for dashboard_name, dashboard in final_dict.iteritems() %}
{%- for dashboard_name, dashboard in final_dict.items() %}
{%- if dashboard.datasource is not defined or dashboard.datasource in datasources %}
{%- if dashboard.get('enabled', True) %}
grafana_client_dashboard_{{ dashboard_name }}:
Expand Down
12 changes: 12 additions & 0 deletions grafana/files/grafana.ini
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ logs = {{ server.path.logs }}
#################################### Server ####################################
[server]
# Protocol (http or https)
{%- if 'protocol' in server %}
protocol = {{ server.protocol }}
{%- else %}
;protocol = http
{% endif %}

# The ip address to bind to, empty will bind to all interfaces
http_addr = {{ server.bind.address }}
Expand All @@ -29,14 +33,22 @@ http_addr = {{ server.bind.address }}
http_port = {{ server.bind.port }}

# The public facing domain name used to access grafana from a browser
{%- if 'domain' in server %}
domain = {{ server.domain }}
{%- else %}
;domain = localhost
{%- endif %}

# Redirect to correct domain if host header does not match domain
# Prevents DNS rebinding attacks
;enforce_domain = false

# The full public facing url
{%- if 'root_url' in server %}
root_url = {{ server.root_url }}
{%- else %}
;root_url = %(protocol)s://%(domain)s:%(http_port)s/
{%- endif %}

# Log web requests
;router_logging = false
Expand Down
4 changes: 2 additions & 2 deletions grafana/files/ldap.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ port = {{ ldap_params.port }}
use_ssl = {{ ldap_params.use_ssl|lower }}

# Set to true if connect ldap server with STARTTLS pattern (create connection in insecure, then upgrade to secure connection with TLS)
start_tls = false
start_tls = {{ ldap_params.start_tls|lower }}
# set to true if you want to skip ssl cert validation
ssl_skip_verify = false
ssl_skip_verify = {{ ldap_params.ssl_skip_verify|lower }}
# set to the path to your root CA certificate or leave unset to use system defaults
# root_ca_cert = /path/to/certificate.crt

Expand Down
3 changes: 3 additions & 0 deletions grafana/init.sls
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
{%- if pillar.grafana is defined %}
include:
{%- if pillar.grafana.server is defined %}
{%- if pillar.grafana.server.manage_repo and grains['os_family'] == 'RedHat' %}
- grafana.repo.redhat
{%- endif %}
- grafana.server
{%- endif %}
{%- if pillar.grafana.client is defined %}
Expand Down
59 changes: 59 additions & 0 deletions grafana/map.jinja
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@

{%- load_yaml as server_defaults %}
Debian:
manage_repo: false
pkgs:
- grafana
service: grafana-server
Expand All @@ -26,6 +27,56 @@ Debian:
host: '127.0.0.1'
port: 389
use_ssl: false
start_tls: false
ssl_skip_verify: false
bind_dn: "cn=admin,dc=grafana,dc=org"
bind_password: "grafana"
user_search_filter: "(cn=%s)"
user_search_base_dns:
- "dc=grafana,dc=org"
servers:
attributes:
name: "givenName"
surname: "sn"
username: "cn"
member_of: "memberOf"
email: "email"
admin:
user: admin
password: admin
allow_sign_up: False
allow_org_create: False
auto_assign_role: Viewer
dir:
static: /usr/share/grafana/public
dashboards:
enabled: false
RedHat:
manage_repo: true
pkgs:
- grafana
service: grafana-server
user: grafana
group: grafana
path:
home: /usr/share/grafana
data: /var/lib/grafana
logs: /var/log/grafana
pid_file_dir: /var/run/grafana
bind:
address: 0.0.0.0
port: 3000
session:
engine: file
auth:
engine: application
ldap:
enabled: false
host: '127.0.0.1'
port: 389
use_ssl: false
start_tls: false
ssl_skip_verify: false
bind_dn: "cn=admin,dc=grafana,dc=org"
bind_password: "grafana"
user_search_filter: "(cn=%s)"
Expand Down Expand Up @@ -61,6 +112,14 @@ Debian:
engine: none
datasource: {}
dashboard: {}
RedHat:
server:
host: 127.0.0.1
port: 3000
remote_data:
engine: none
datasource: {}
dashboard: {}
{%- endload %}

{%- set client = salt['grains.filter_by'](client_defaults, merge=salt['pillar.get']('grafana:client')) %}
2 changes: 1 addition & 1 deletion grafana/meta/salt.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{%- if pillar.get('grafana', {}).get('collector') %}
{%- if pillar.grafana.collector.get('enabled', False) %}
{%- set service_grains = {} %}
{%- for service_name, service in pillar.iteritems() %}
{%- for service_name, service in pillar.items() %}
{%- if service.get('_support', {}).get('grafana', {}).get('enabled', False) %}
{%- macro load_grains_file(grains_fragment_file) %}{% include grains_fragment_file ignore missing %}{% endmacro %}
{%- set grains_fragment_file = service_name+'/meta/grafana.yml' %}
Expand Down
10 changes: 10 additions & 0 deletions grafana/repo/redhat.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
grafana:
pkgrepo.managed:
- humanname: 'grafana'
- name: 'grafana'
- baseurl: 'https://packages.grafana.com/oss/rpm'
- enabled: 1
- gpgcheck: 1
- gpgkey: https://packages.grafana.com/gpg.key
- sslverify: 1
- sslcacert: /etc/pki/tls/certs/ca-bundle.crt
4 changes: 2 additions & 2 deletions grafana/server.sls
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ grafana_copy_default_dashboards:

{%- endif %}

{%- for theme_name, theme in server.get('theme', {}).iteritems() %}
{%- for theme_name, theme in server.get('theme', {}).items() %}

{%- if theme.css_override is defined %}

Expand Down Expand Up @@ -102,7 +102,7 @@ grafana_service:
- file: /etc/grafana/grafana.ini
- file: /etc/default/grafana-server

{%- for plugin_name, plugin in server.get('plugins', {}).iteritems() %}
{%- for plugin_name, plugin in server.get('plugins', {}).items() %}
{%- if plugin.get('enabled', False) %}
install_{{ plugin_name }}:
cmd.run:
Expand Down