mirror of
https://github.com/status-im/infra-role-grafana.git
synced 2025-02-19 16:04:21 +00:00
refactor use use Docker Compose to create containers
Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
parent
7dccd21b29
commit
9f8009520d
@ -19,7 +19,7 @@ grafana_prometheus_sources:
|
||||
You should also configure OAuth:
|
||||
```yaml
|
||||
grafana_oauth_id: '123qwe123qwe123'
|
||||
grafana_oauth_secret: 'qweasdqweasdqweasdqweasd
|
||||
grafana_oauth_secret: 'qweasdqweasdqweasdqweasd'
|
||||
grafana_oauth_gh_org: 'evil-corp'
|
||||
grafana_oauth_gh_team_ids: [ 1234, 5678 ]
|
||||
```
|
||||
|
@ -1,21 +1,27 @@
|
||||
---
|
||||
grafana_service_name: 'grafana'
|
||||
grafana_service_path: '/docker/{{ grafana_service_name }}'
|
||||
grafana_compose_file: '{{ grafana_service_path }}/docker-compose.yml'
|
||||
# Container
|
||||
grafana_version: '7.3.4'
|
||||
grafana_image: 'grafana/grafana:{{ grafana_version }}'
|
||||
grafana_cont_name: '{{ grafana_service_name }}'
|
||||
grafana_cont_vol: '{{ grafana_service_path }}/data'
|
||||
grafana_cont_links: []
|
||||
grafana_cont_ext_links: []
|
||||
grafana_port: 9400
|
||||
# see: http://docs.grafana.org/installation/docker/#migration-from-a-previous-version-of-the-docker-container-to-5-1-or-later
|
||||
grafana_cont_uid: 472
|
||||
# Permission adjust for dockremap.
|
||||
grafana_host_uid: '{{ 100000 + grafana_cont_uid | int }}'
|
||||
|
||||
# Public domain
|
||||
grafana_domain: ~
|
||||
|
||||
# Main configuration for sources
|
||||
grafana_prometheus_sources: []
|
||||
# - { name: 'node-01', addr: '1.2.3.4', port: 8080, path: 'proxy/' }
|
||||
|
||||
grafana_version: '7.3.4'
|
||||
grafana_image: 'grafana/grafana:{{ grafana_version }}'
|
||||
grafana_cont_name: grafana
|
||||
grafana_cont_vol: '/docker/grafana'
|
||||
grafana_cont_links: []
|
||||
grafana_port: 9400
|
||||
# see: http://docs.grafana.org/installation/docker/#migration-from-a-previous-version-of-the-docker-container-to-5-1-or-later
|
||||
grafana_cont_uid: 472
|
||||
# adjust for dockremap
|
||||
grafana_host_uid: '{{ 100000 + grafana_cont_uid | int }}'
|
||||
|
||||
# Admin user
|
||||
grafana_username: ~
|
||||
grafana_password: ~
|
||||
@ -45,9 +51,7 @@ grafana_snaphots_enabled: true
|
||||
grafana_plugins:
|
||||
- https://github.com/GoshPosh/grafana-meta-queries/archive/0.0.3.zip
|
||||
|
||||
|
||||
|
||||
# generic container settings
|
||||
cont_state: started
|
||||
cont_restart: false
|
||||
cont_recreate: false
|
||||
# Generic container options
|
||||
compose_recreate: 'smart'
|
||||
compose_state: 'present'
|
||||
compose_restart: false
|
||||
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
- name: restart grafana
|
||||
docker_container:
|
||||
name: '{{ grafana_cont_name }}'
|
||||
restart: true
|
@ -1,4 +1,13 @@
|
||||
---
|
||||
- name: Create grafana directories
|
||||
file:
|
||||
path: '{{ grafana_cont_vol }}'
|
||||
state: directory
|
||||
owner: 'dockremap'
|
||||
group: 'docker'
|
||||
mode: 0775
|
||||
recurse: true
|
||||
|
||||
- name: Create grafana directories
|
||||
file:
|
||||
path: '{{ item }}'
|
||||
@ -8,18 +17,20 @@
|
||||
mode: 0775
|
||||
recurse: true
|
||||
with_items:
|
||||
- '{{ grafana_cont_vol }}'
|
||||
- '{{ grafana_cont_vol }}/etc'
|
||||
- '{{ grafana_cont_vol }}/etc/provisioning/datasources'
|
||||
- '{{ grafana_cont_vol }}/lib'
|
||||
- '{{ grafana_cont_vol }}/lib/plugins'
|
||||
- '{{ grafana_cont_vol }}/lib/dashboards'
|
||||
|
||||
- name: Copy grafana config file
|
||||
- name: Generate main config file
|
||||
template:
|
||||
src: 'grafana.ini.j2'
|
||||
dest: '{{ grafana_cont_vol }}/etc/grafana.ini'
|
||||
owner: '{{ grafana_host_uid }}'
|
||||
group: docker
|
||||
register: cont_conf
|
||||
mode: 0640
|
||||
register: grafana_config
|
||||
|
||||
- name: Generate datasource config file
|
||||
template:
|
||||
@ -27,9 +38,9 @@
|
||||
dest: '{{ grafana_cont_vol }}/etc/provisioning/datasources/prometheus.yml'
|
||||
owner: '{{ grafana_host_uid }}'
|
||||
group: docker
|
||||
notify: restart grafana
|
||||
mode: 0640
|
||||
|
||||
- name: Install plugins from zip archives
|
||||
- name: Install plugins from ZIP archives
|
||||
unarchive:
|
||||
src: '{{ item }}'
|
||||
dest: '{{ grafana_cont_vol }}/lib/plugins'
|
||||
|
@ -2,13 +2,13 @@
|
||||
- name: Create Consul service definition
|
||||
include_role: name=consul-service
|
||||
vars:
|
||||
consul_config_name: 'grafana'
|
||||
consul_config_name: '{{ grafana_service_name }}'
|
||||
consul_services:
|
||||
- name: 'grafana'
|
||||
tags: ['monitor', 'metrics-view']
|
||||
- name: '{{ grafana_service_name }}'
|
||||
tags: ['monitor', 'grafana']
|
||||
port: '{{ grafana_port }}'
|
||||
checks:
|
||||
- id: grafana-health
|
||||
name: Grafana current health
|
||||
type: http
|
||||
- id: '{{ grafana_service_name }}-health'
|
||||
name: 'Grafana current health'
|
||||
type: 'http'
|
||||
http: 'http://localhost:{{ grafana_port }}/api/health'
|
||||
|
@ -1,16 +1,17 @@
|
||||
---
|
||||
- name: Start grafana container
|
||||
docker_container:
|
||||
name: '{{ grafana_cont_name }}'
|
||||
image: '{{ grafana_image }}'
|
||||
- name: Create compose file
|
||||
template:
|
||||
src: 'docker-compose.yml.j2'
|
||||
dest: '{{ grafana_compose_file }}'
|
||||
owner: 'dockremap'
|
||||
group: 'docker'
|
||||
mode: 0640
|
||||
|
||||
- name: Create containers
|
||||
docker_compose:
|
||||
project_src: '{{ grafana_service_path }}'
|
||||
pull: true
|
||||
restart_policy: always
|
||||
state: '{{ cont_state }}'
|
||||
recreate: '{{ cont_recreate }}'
|
||||
restart: '{{ cont_conf.changed | default(cont_restart) }}'
|
||||
ports:
|
||||
- '127.0.0.1:{{ grafana_port }}:3000'
|
||||
links: '{{ grafana_cont_links }}'
|
||||
volumes:
|
||||
- '{{ grafana_cont_vol }}/lib:/var/lib/grafana'
|
||||
- '{{ grafana_cont_vol }}/etc:/etc/grafana'
|
||||
build: false
|
||||
state: '{{ compose_state }}'
|
||||
restarted: '{{ compose_restart }}'
|
||||
recreate: '{{ grafana_config.changed | ternary("always", compose_recreate) }}'
|
||||
|
18
templates/docker-compose.yml.j2
Normal file
18
templates/docker-compose.yml.j2
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
version: '3.7'
|
||||
services:
|
||||
app:
|
||||
container_name: '{{ grafana_cont_name }}'
|
||||
image: '{{ grafana_image }}'
|
||||
restart: always
|
||||
ports:
|
||||
- '127.0.0.1:{{ grafana_port }}:{{ grafana_port }}'
|
||||
volumes:
|
||||
- '{{ grafana_cont_vol }}/lib:/var/lib/grafana'
|
||||
- '{{ grafana_cont_vol }}/etc:/etc/grafana'
|
||||
{% if grafana_cont_ext_links|length > 0 %}
|
||||
external_links: {{ grafana_cont_ext_links | to_yaml }}
|
||||
{% endif %}
|
||||
{% if grafana_cont_links|length > 0 %}
|
||||
links: {{ grafana_cont_links | to_yaml }}
|
||||
{% endif %}
|
@ -1,4 +1,5 @@
|
||||
[server]
|
||||
http_port = {{ grafana_port }}
|
||||
domain = {{ grafana_domain | mandatory }}/
|
||||
root_url = https://{{ grafana_domain | mandatory }}/
|
||||
|
||||
|
@ -1,10 +1,5 @@
|
||||
apiVersion: 1
|
||||
|
||||
deleteDatasources:
|
||||
{% for service in grafana_prometheus_sources %}
|
||||
- id: {{ loop.index }}
|
||||
{% endfor %}
|
||||
|
||||
datasources:
|
||||
{% for service in grafana_prometheus_sources %}
|
||||
- name: {{ service.name }}
|
||||
|
Loading…
x
Reference in New Issue
Block a user