|
@@ -0,0 +1,73 @@
|
|
|
|
+# Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved.
|
|
|
|
+#
|
|
|
|
+# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
+# you may not use this file except in compliance with the License.
|
|
|
|
+# You may obtain a copy of the License at
|
|
|
|
+#
|
|
|
|
+# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
+#
|
|
|
|
+# Unless required by applicable law or agreed to in writing, software
|
|
|
|
+# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
+# See the License for the specific language governing permissions and
|
|
|
|
+# limitations under the License.
|
|
|
|
+---
|
|
|
|
+
|
|
|
|
+- name: Get grafana service IP
|
|
|
|
+ command: kubectl get svc -n {{ grafana_namespace }} -o=jsonpath='{.items[0].spec.clusterIP}'
|
|
|
|
+ changed_when: false
|
|
|
|
+ register: grafana_svc_ip
|
|
|
|
+
|
|
|
|
+- name: Get grafana service port
|
|
|
|
+ command: kubectl get svc -n {{ grafana_namespace }} -o=jsonpath='{.items[0].spec.ports[0].port}'
|
|
|
|
+ changed_when: false
|
|
|
|
+ register: grafana_svc_port
|
|
|
|
+
|
|
|
|
+- name: Get kube-prometheus svc IP
|
|
|
|
+ command: kubectl get svc -n {{ monitoring_namespace }} -l app=kube-prometheus-stack-prometheus -o=jsonpath='{.items[0].spec.clusterIP}'
|
|
|
|
+ changed_when: false
|
|
|
|
+ register: kube_prom_svc_ip
|
|
|
|
+
|
|
|
|
+- name: Get kube-prometheus svc port
|
|
|
|
+ command: kubectl get svc -n {{ monitoring_namespace }} -l app=kube-prometheus-stack-prometheus -o=jsonpath='{.items[0].spec.ports[0].port}'
|
|
|
|
+ changed_when: false
|
|
|
|
+ register: kube_prom_svc_port
|
|
|
|
+
|
|
|
|
+- name: Install community.grafana collection
|
|
|
|
+ command: ansible-galaxy collection install community.grafana
|
|
|
|
+ changed_when: True
|
|
|
|
+
|
|
|
|
+- name: Create prometheus datasource
|
|
|
|
+ community.grafana.grafana_datasource:
|
|
|
|
+ name: control-plane-prometheus
|
|
|
|
+ grafana_url: "http://{{ grafana_svc_ip.stdout }}:{{ grafana_svc_port.stdout }}"
|
|
|
|
+ grafana_user: "{{ grafana_username }}"
|
|
|
|
+ grafana_password: "{{ grafana_password }}"
|
|
|
|
+ ds_type: prometheus
|
|
|
|
+ ds_url: "http://{{ kube_prom_svc_ip.stdout }}:{{ kube_prom_svc_port.stdout }}"
|
|
|
|
+ access: proxy
|
|
|
|
+ no_log: true
|
|
|
|
+
|
|
|
|
+- name: Import K8s Grafana dashboards
|
|
|
|
+ community.grafana.grafana_dashboard:
|
|
|
|
+ grafana_url: "http://{{ grafana_svc_ip.stdout }}:{{ grafana_svc_port.stdout }}"
|
|
|
|
+ grafana_user: "{{ grafana_username }}"
|
|
|
|
+ grafana_password: "{{ grafana_password }}"
|
|
|
|
+ state: present
|
|
|
|
+ commit_message: Updated by ansible
|
|
|
|
+ overwrite: yes
|
|
|
|
+ path: "{{ role_path }}/files/{{ item }}"
|
|
|
|
+ with_items: "{{ grafana_dashboard_json_files }}"
|
|
|
|
+ no_log: true
|
|
|
|
+
|
|
|
|
+- name: Save grafana svc ip
|
|
|
|
+ replace:
|
|
|
|
+ path: "{{ role_path }}/../../../roles/k8s_start_services/files/grafana_svc_details.ini"
|
|
|
|
+ regexp: "ip=.*"
|
|
|
|
+ replace: "ip={{ grafana_svc_ip.stdout }}"
|
|
|
|
+
|
|
|
|
+- name: Save grafana svc ip
|
|
|
|
+ replace:
|
|
|
|
+ path: "{{ role_path }}/../../../roles/k8s_start_services/files/grafana_svc_details.ini"
|
|
|
|
+ regexp: "port=.*"
|
|
|
|
+ replace: "port={{ grafana_svc_port.stdout }}"
|