Prepare for automation
This commit is contained in:
parent
2c57657fc9
commit
01e1bc8394
5 changed files with 68 additions and 52 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
my_context: kubernetes
|
my_context: kubernetes
|
||||||
my_namespace: monitoring
|
monitoring_namespace: monitoring
|
||||||
prometheus_state: present
|
prometheus_state: present
|
||||||
grafana_state: present
|
grafana_state: present
|
||||||
|
|
|
||||||
33
scripts/update-templates.sh
Normal file → Executable file
33
scripts/update-templates.sh
Normal file → Executable file
|
|
@ -1,17 +1,22 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
cd $(dirname "$0")/../templates
|
|
||||||
git clone https://github.com/poseidon/typhoon.git
|
|
||||||
|
|
||||||
cd typhoon/addons/prometheus
|
PROMETHEUS_FILE="$(dirname $0)/../vars/prometheus_files_list.yml"
|
||||||
cp -fr * ../../../prometheus/
|
GRAFANA_FILE="$(dirname $0)/../vars/grafana_files_list.yml"
|
||||||
for i in $(ls rbac/*.yaml); do echo " - $i"; done
|
PROMETHEUS_REP="$(dirname $0)/../templates/prometheus"
|
||||||
for i in $(ls *.yaml); do echo " - $i"; done
|
GRAFANA_REP="$(dirname $0)/../templates/grafana"
|
||||||
for i in $(ls discovery/*.yaml); do echo " - $i"; done
|
|
||||||
for i in $(ls exporters/*/*.yaml); do echo " - $i"; done
|
|
||||||
cd -
|
|
||||||
|
|
||||||
cd typhoon/addons/grafana
|
echo -e "---\nprometheus_files:" > "${PROMETHEUS_FILE}"
|
||||||
cp -fr * ../../../grafana/
|
echo -e "---\ngrafana_files:" > "${GRAFANA_FILE}"
|
||||||
for i in $(ls *.yaml); do echo " - $i"; done
|
|
||||||
cd -
|
git clone https://github.com/poseidon/typhoon.git $(dirname $0)/typhoon
|
||||||
rm -fr typhoon
|
|
||||||
|
cp -fr $(dirname $0)/typhoon/addons/prometheus/* "${PROMETHEUS_REP}/"
|
||||||
|
for i in $(ls "${PROMETHEUS_REP}"/rbac/*.yaml) $(ls "${PROMETHEUS_REP}"/*.yaml) $(ls "${PROMETHEUS_REP}"/discovery/*.yaml) $(ls "${PROMETHEUS_REP}"/exporters/*/*.yaml); do
|
||||||
|
echo " - prometheus/${i#*prometheus/}"
|
||||||
|
done >> "${PROMETHEUS_FILE}"
|
||||||
|
|
||||||
|
cp -fr $(dirname $0)/typhoon/addons/grafana/* "${GRAFANA_REP}/"
|
||||||
|
for i in $(ls "${GRAFANA_REP}"/*.yaml); do
|
||||||
|
echo " - grafana/${i#*grafana/}"
|
||||||
|
done >> "${GRAFANA_FILE}"
|
||||||
|
rm -fr $(dirname $0)/typhoon
|
||||||
|
|
@ -3,6 +3,11 @@
|
||||||
|
|
||||||
- name: traefik setup
|
- name: traefik setup
|
||||||
block:
|
block:
|
||||||
|
- include_vars: "{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- "prometheus_files_list.yml"
|
||||||
|
- "grafana_files_list.yml"
|
||||||
|
|
||||||
- name: Find state of monitoring stack
|
- name: Find state of monitoring stack
|
||||||
set_facts:
|
set_facts:
|
||||||
monitoring_state: absent
|
monitoring_state: absent
|
||||||
|
|
@ -14,7 +19,7 @@
|
||||||
k8s:
|
k8s:
|
||||||
state: "{{ monitoring_state }}"
|
state: "{{ monitoring_state }}"
|
||||||
context: "{{ my_context }}"
|
context: "{{ my_context }}"
|
||||||
name: "{{ my_namespace }}"
|
name: "{{ monitoring_namespace }}"
|
||||||
api_version: v1
|
api_version: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
||||||
when:
|
when:
|
||||||
|
|
@ -29,7 +34,7 @@
|
||||||
# kind: Secret
|
# kind: Secret
|
||||||
# metadata:
|
# metadata:
|
||||||
# name: basic-auth
|
# name: basic-auth
|
||||||
# namespace: "{{ my_namespace }}"
|
# namespace: "{{ monitoring_namespace }}"
|
||||||
# type: Opaque
|
# type: Opaque
|
||||||
# data:
|
# data:
|
||||||
# basic_auth: "{{ basic_auth_data | b64encode }}"
|
# basic_auth: "{{ basic_auth_data | b64encode }}"
|
||||||
|
|
@ -44,26 +49,7 @@
|
||||||
merge_type: merge
|
merge_type: merge
|
||||||
resource_definition: "{{ lookup('template', item) | from_yaml }}"
|
resource_definition: "{{ lookup('template', item) | from_yaml }}"
|
||||||
with_items:
|
with_items:
|
||||||
# - prometheus/0-namespace.yaml
|
- "{{ prometheus_files }}"
|
||||||
- prometheus/rbac/cluster-role-binding.yaml
|
|
||||||
- prometheus/rbac/cluster-role.yaml
|
|
||||||
- prometheus/config.yaml
|
|
||||||
- prometheus/deployment.yaml
|
|
||||||
- prometheus/network-policy.yaml
|
|
||||||
- prometheus/rules.yaml
|
|
||||||
- prometheus/service-account.yaml
|
|
||||||
- prometheus/service.yaml
|
|
||||||
- prometheus/discovery/kube-controller-manager.yaml
|
|
||||||
- prometheus/discovery/kube-proxy.yaml
|
|
||||||
- prometheus/discovery/kube-scheduler.yaml
|
|
||||||
- prometheus/exporters/kube-state-metrics/cluster-role-binding.yaml
|
|
||||||
- prometheus/exporters/kube-state-metrics/cluster-role.yaml
|
|
||||||
- prometheus/exporters/kube-state-metrics/deployment.yaml
|
|
||||||
- prometheus/exporters/kube-state-metrics/service-account.yaml
|
|
||||||
- prometheus/exporters/kube-state-metrics/service.yaml
|
|
||||||
- prometheus/exporters/node-exporter/daemonset.yaml
|
|
||||||
- prometheus/exporters/node-exporter/service-account.yaml
|
|
||||||
- prometheus/exporters/node-exporter/service.yaml
|
|
||||||
tags: monitoring
|
tags: monitoring
|
||||||
|
|
||||||
- name: Grafana files need to be {{ grafana_state }}
|
- name: Grafana files need to be {{ grafana_state }}
|
||||||
|
|
@ -73,27 +59,14 @@
|
||||||
merge_type: merge
|
merge_type: merge
|
||||||
resource_definition: "{{ lookup('template', item) | from_yaml }}"
|
resource_definition: "{{ lookup('template', item) | from_yaml }}"
|
||||||
with_items:
|
with_items:
|
||||||
- grafana/config.yaml
|
- "{{ grafana_files }}"
|
||||||
- grafana/dashboards-coredns.yaml
|
|
||||||
- grafana/dashboards-etcd.yaml
|
|
||||||
- grafana/dashboards-k8s.yaml
|
|
||||||
- grafana/dashboards-k8s-nodes.yaml
|
|
||||||
- grafana/dashboards-k8s-resources-1.yaml
|
|
||||||
- grafana/dashboards-k8s-resources-2.yaml
|
|
||||||
- grafana/dashboards-nginx-ingress.yaml
|
|
||||||
- grafana/dashboards-node-exporter.yaml
|
|
||||||
- grafana/dashboards-prom.yaml
|
|
||||||
- grafana/datasources.yaml
|
|
||||||
- grafana/deployment.yaml
|
|
||||||
- grafana/providers.yaml
|
|
||||||
- grafana/service.yaml
|
|
||||||
tags: grafana
|
tags: grafana
|
||||||
|
|
||||||
- name: namespace
|
- name: namespace
|
||||||
k8s:
|
k8s:
|
||||||
state: "{{ monitoring_state }}"
|
state: "{{ monitoring_state }}"
|
||||||
context: "{{ my_context }}"
|
context: "{{ my_context }}"
|
||||||
name: "{{ my_namespace }}"
|
name: "{{ monitoring_namespace }}"
|
||||||
api_version: v1
|
api_version: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
||||||
when:
|
when:
|
||||||
|
|
|
||||||
16
vars/grafana_files_list.yml
Normal file
16
vars/grafana_files_list.yml
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
---
|
||||||
|
grafana_files:
|
||||||
|
- grafana/config.yaml
|
||||||
|
- grafana/dashboards-coredns.yaml
|
||||||
|
- grafana/dashboards-etcd.yaml
|
||||||
|
- grafana/dashboards-k8s-nodes.yaml
|
||||||
|
- grafana/dashboards-k8s-resources-1.yaml
|
||||||
|
- grafana/dashboards-k8s-resources-2.yaml
|
||||||
|
- grafana/dashboards-k8s.yaml
|
||||||
|
- grafana/dashboards-nginx-ingress.yaml
|
||||||
|
- grafana/dashboards-node-exporter.yaml
|
||||||
|
- grafana/dashboards-prom.yaml
|
||||||
|
- grafana/datasources.yaml
|
||||||
|
- grafana/deployment.yaml
|
||||||
|
- grafana/providers.yaml
|
||||||
|
- grafana/service.yaml
|
||||||
22
vars/prometheus_files_list.yml
Normal file
22
vars/prometheus_files_list.yml
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
---
|
||||||
|
prometheus_files:
|
||||||
|
- prometheus/rbac/cluster-role-binding.yaml
|
||||||
|
- prometheus/rbac/cluster-role.yaml
|
||||||
|
- prometheus/0-namespace.yaml
|
||||||
|
- prometheus/config.yaml
|
||||||
|
- prometheus/deployment.yaml
|
||||||
|
- prometheus/network-policy.yaml
|
||||||
|
- prometheus/rules.yaml
|
||||||
|
- prometheus/service-account.yaml
|
||||||
|
- prometheus/service.yaml
|
||||||
|
- prometheus/discovery/kube-controller-manager.yaml
|
||||||
|
- prometheus/discovery/kube-proxy.yaml
|
||||||
|
- prometheus/discovery/kube-scheduler.yaml
|
||||||
|
- prometheus/exporters/kube-state-metrics/cluster-role-binding.yaml
|
||||||
|
- prometheus/exporters/kube-state-metrics/cluster-role.yaml
|
||||||
|
- prometheus/exporters/kube-state-metrics/deployment.yaml
|
||||||
|
- prometheus/exporters/kube-state-metrics/service-account.yaml
|
||||||
|
- prometheus/exporters/kube-state-metrics/service.yaml
|
||||||
|
- prometheus/exporters/node-exporter/daemonset.yaml
|
||||||
|
- prometheus/exporters/node-exporter/service-account.yaml
|
||||||
|
- prometheus/exporters/node-exporter/service.yaml
|
||||||
Loading…
Add table
Add a link
Reference in a new issue