From 01e1bc83943cc8252b9271558615e44e0d678795 Mon Sep 17 00:00:00 2001 From: Adrien Date: Mon, 20 Apr 2020 21:53:07 +0200 Subject: [PATCH] Prepare for automation --- defaults/main.yml | 2 +- scripts/update-templates.sh | 33 ++++++++++++++---------- tasks/main.yml | 47 ++++++++-------------------------- vars/grafana_files_list.yml | 16 ++++++++++++ vars/prometheus_files_list.yml | 22 ++++++++++++++++ 5 files changed, 68 insertions(+), 52 deletions(-) mode change 100644 => 100755 scripts/update-templates.sh create mode 100644 vars/grafana_files_list.yml create mode 100644 vars/prometheus_files_list.yml diff --git a/defaults/main.yml b/defaults/main.yml index 68b7c98..840b951 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,4 +1,4 @@ my_context: kubernetes -my_namespace: monitoring +monitoring_namespace: monitoring prometheus_state: present grafana_state: present diff --git a/scripts/update-templates.sh b/scripts/update-templates.sh old mode 100644 new mode 100755 index d23d50e..35904ab --- a/scripts/update-templates.sh +++ b/scripts/update-templates.sh @@ -1,17 +1,22 @@ #!/usr/bin/env bash -cd $(dirname "$0")/../templates -git clone https://github.com/poseidon/typhoon.git -cd typhoon/addons/prometheus -cp -fr * ../../../prometheus/ -for i in $(ls rbac/*.yaml); do echo " - $i"; done -for i in $(ls *.yaml); do echo " - $i"; done -for i in $(ls discovery/*.yaml); do echo " - $i"; done -for i in $(ls exporters/*/*.yaml); do echo " - $i"; done -cd - +PROMETHEUS_FILE="$(dirname $0)/../vars/prometheus_files_list.yml" +GRAFANA_FILE="$(dirname $0)/../vars/grafana_files_list.yml" +PROMETHEUS_REP="$(dirname $0)/../templates/prometheus" +GRAFANA_REP="$(dirname $0)/../templates/grafana" -cd typhoon/addons/grafana -cp -fr * ../../../grafana/ -for i in $(ls *.yaml); do echo " - $i"; done -cd - -rm -fr typhoon \ No newline at end of file +echo -e "---\nprometheus_files:" > "${PROMETHEUS_FILE}" +echo -e "---\ngrafana_files:" > "${GRAFANA_FILE}" + +git clone https://github.com/poseidon/typhoon.git $(dirname $0)/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 \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml index 4b7b335..971177c 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -3,6 +3,11 @@ - name: traefik setup block: + - include_vars: "{{ item }}" + with_items: + - "prometheus_files_list.yml" + - "grafana_files_list.yml" + - name: Find state of monitoring stack set_facts: monitoring_state: absent @@ -14,7 +19,7 @@ k8s: state: "{{ monitoring_state }}" context: "{{ my_context }}" - name: "{{ my_namespace }}" + name: "{{ monitoring_namespace }}" api_version: v1 kind: Namespace when: @@ -29,7 +34,7 @@ # kind: Secret # metadata: # name: basic-auth -# namespace: "{{ my_namespace }}" +# namespace: "{{ monitoring_namespace }}" # type: Opaque # data: # basic_auth: "{{ basic_auth_data | b64encode }}" @@ -44,26 +49,7 @@ merge_type: merge resource_definition: "{{ lookup('template', item) | from_yaml }}" with_items: -# - prometheus/0-namespace.yaml - - 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 + - "{{ prometheus_files }}" tags: monitoring - name: Grafana files need to be {{ grafana_state }} @@ -73,27 +59,14 @@ merge_type: merge resource_definition: "{{ lookup('template', item) | from_yaml }}" with_items: - - grafana/config.yaml - - 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 + - "{{ grafana_files }}" tags: grafana - name: namespace k8s: state: "{{ monitoring_state }}" context: "{{ my_context }}" - name: "{{ my_namespace }}" + name: "{{ monitoring_namespace }}" api_version: v1 kind: Namespace when: diff --git a/vars/grafana_files_list.yml b/vars/grafana_files_list.yml new file mode 100644 index 0000000..47e339a --- /dev/null +++ b/vars/grafana_files_list.yml @@ -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 diff --git a/vars/prometheus_files_list.yml b/vars/prometheus_files_list.yml new file mode 100644 index 0000000..96df6be --- /dev/null +++ b/vars/prometheus_files_list.yml @@ -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