103 lines
No EOL
3.2 KiB
YAML
103 lines
No EOL
3.2 KiB
YAML
#- debug: var=my_context
|
|
# tags: traefik
|
|
|
|
- name: traefik setup
|
|
block:
|
|
- name: Find state of monitoring stack
|
|
set_facts:
|
|
monitoring_state: absent
|
|
when:
|
|
- prometheus_state == "absent"
|
|
- grafana_state == "absent"
|
|
|
|
- name: namespace
|
|
k8s:
|
|
state: "{{ monitoring_state }}"
|
|
context: "{{ my_context }}"
|
|
name: "{{ my_namespace }}"
|
|
api_version: v1
|
|
kind: Namespace
|
|
when:
|
|
- monitoring_state == "present"
|
|
|
|
# - name: Create a Secret object for basic authentification
|
|
# k8s:
|
|
# state: "{{ prometheus_state }}"
|
|
# context: "{{ my_context }}"
|
|
# definition:
|
|
# apiVersion: v1
|
|
# kind: Secret
|
|
# metadata:
|
|
# name: basic-auth
|
|
# namespace: "{{ my_namespace }}"
|
|
# type: Opaque
|
|
# data:
|
|
# basic_auth: "{{ basic_auth_data | b64encode }}"
|
|
# when:
|
|
# - basic_auth == true
|
|
# tags: prom
|
|
|
|
- name: Prometheus files need to be {{ prometheus_state }}
|
|
k8s:
|
|
state: "{{ prometheus_state }}"
|
|
context: "{{ my_context }}"
|
|
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
|
|
tags: monitoring
|
|
|
|
- name: Grafana files need to be {{ grafana_state }}
|
|
k8s:
|
|
state: "{{ grafana_state }}"
|
|
context: "{{ my_context }}"
|
|
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
|
|
tags: grafana
|
|
|
|
- name: namespace
|
|
k8s:
|
|
state: "{{ monitoring_state }}"
|
|
context: "{{ my_context }}"
|
|
name: "{{ my_namespace }}"
|
|
api_version: v1
|
|
kind: Namespace
|
|
when:
|
|
- monitoring_state == "absent"
|
|
|
|
tags:
|
|
- monitoring |