baac58053aed413c8d8a1ea44a173efe09be495c
[ealt-edge.git] / ocd / infra / playbooks / roles / prometheus / tasks / install.yml
1 # Copyright 2020 Huawei Technologies Co., Ltd.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #     http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 ---
16 - name: check if prometheus is already installed
17   shell:
18     cmd: helm status mep-prometheus
19   register: result
20   ignore_errors: yes
21   no_log: True
22
23 - name: Import config file
24   include_vars:
25     file: ../../../config.yml
26     name: vardata
27
28 - debug:
29     msg: prometheus is already present
30   when: result.stdout != ""
31
32 - debug:
33 # yamllint disable rule:line-length
34     msg: Ignore Uninstall Log , prometheus not installed continue with Installation
35 # yamllint disable rule:line-length
36   when: result.stdout == ""
37
38 - name: "INSTALL: Install prometheus on x86_64"
39   shell:
40     cmd: helm install mep-prometheus stable/prometheus --version v9.3.1
41   when: result is failed and ansible_architecture == 'x86_64'
42
43 - name: "INSTALL: copy values.yaml to host"
44   copy:
45     src: values.yaml
46     dest: /tmp/prometheus/
47   when: result is failed and ansible_architecture == 'aarch64'
48
49 - name: "INSTALL: Install prometheus on aarch64"
50   # yamllint disable rule:line-length
51   command: helm install mep-prometheus stable/prometheus -f /tmp/prometheus/values.yaml --version v9.3.1 --set alertmanager.image.repository={{ vardata.private_repo_ip.name}}:{{ vardata.docker_registry_port.name}}/prom/alertmanager --set configmapReload.image.repository={{ vardata.private_repo_ip.name}}:{{ vardata.docker_registry_port.name}}/jimmidyson/configmap-reload --set nodeExporter.image.repository={{ vardata.private_repo_ip.name}}:{{ vardata.docker_registry_port.name}}/prom/node-exporter --set server.image.repository={{ vardata.private_repo_ip.name}}:{{ vardata.docker_registry_port.name}}/prom/prometheus --set pushgateway.image.repository={{ vardata.private_repo_ip.name}}:{{ vardata.docker_registry_port.name}}/prom/pushgateway --set kubeStateMetrics.image.repository={{ vardata.private_repo_ip.name}}:{{ vardata.docker_registry_port.name}}/carlosedp/kube-state-metrics --set alertmanager.image.pullPolicy=IfNotPresent --set configmapReload.image.pullPolicy=IfNotPresent --set nodeExporter.image.pullPolicy=IfNotPresent --set server.image.pullPolicy=IfNotPresent --set pushgateway.image.pullPolicy=IfNotPresent --set kubeStateMetrics.image.pullPolicy=IfNotPresent
52   # yamllint disable rule:line-length
53   ignore_errors: yes
54   no_log: True
55   when: result is failed and ansible_architecture == 'aarch64'
56
57 - name: Expose promethious server
58   # yamllint disable rule:line-length
59   command: kubectl expose deployment mep-prometheus-server  --type=NodePort --name nodeport-mep-prometheus-server
60   # yamllint disable rule:line-length
61   ignore_errors: yes
62   no_log: True
63
64 - name: Execute patch service with given port
65   shell:
66     # yamllint disable rule:line-length
67     cmd: "kubectl patch service nodeport-mep-prometheus-server  --type='json' --patch='[{ \"op\": \"replace\", \"path\": \"/spec/ports/0/nodePort\", \"value\":{{ vardata.prometheus_node_port.name }}}]'"
68     # yamllint disable rule:line-length
69   ignore_errors: yes
70   no_log: True