#- 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