Prepare for automation

This commit is contained in:
Adrien Reslinger 2020-04-20 21:53:07 +02:00
parent 2c57657fc9
commit 01e1bc8394
5 changed files with 68 additions and 52 deletions

View file

@ -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
View 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

View file

@ -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:

View 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

View 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