blob: 65c9f89f289e1549166cb969e46d24aebc2d8e55 [file] [log] [blame]
garciadeblas7b53d262022-11-04 23:18:48 +01001#!/bin/bash
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
16set +eux
17
18# Helm chart 1.6.0 correspondes to Airflow 2.3.0
garciadeblas0b7ef272023-05-10 10:50:34 +020019AIRFLOW_HELM_VERSION=1.9.0
garciadeblas7b53d262022-11-04 23:18:48 +010020PROMPUSHGW_HELM_VERSION=1.18.2
garciadeblasbae51f62023-03-28 18:27:20 +020021ALERTMANAGER_HELM_VERSION=0.22.0
garciadeblas7b53d262022-11-04 23:18:48 +010022
23# Install Airflow helm chart
24function install_airflow() {
25 [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
26 # copy airflow-values.yaml to the destination folder
27 sudo mkdir -p ${OSM_HELM_WORK_DIR}
28 sudo cp ${OSM_DEVOPS}/installers/helm/values/airflow-values.yaml ${OSM_HELM_WORK_DIR}
garciadeblasd2d00c72022-11-25 17:21:46 +010029 # update airflow-values.yaml to use the right tag
30 echo "Updating Helm values file helm/values/airflow-values.yaml to use defaultAirflowTag: ${OSM_DOCKER_TAG}"
garciadeblas37d5a5f2023-07-20 17:02:19 +020031 sudo sed -i "s#defaultAirflowTag:.*#defaultAirflowTag: \"${OSM_DOCKER_TAG}\"#g" ${OSM_HELM_WORK_DIR}/airflow-values.yaml
garciadeblas836354f2023-05-10 18:12:00 +020032 echo "Updating Helm values file helm/values/airflow-values.yaml to use defaultAirflowRepository: ${DOCKER_REGISTRY_URL}${DOCKER_USER}/airflow"
33 sudo sed -i "s#defaultAirflowRepository:.*#defaultAirflowRepository: ${DOCKER_REGISTRY_URL}${DOCKER_USER}/airflow#g" ${OSM_HELM_WORK_DIR}/airflow-values.yaml
garciadeblas8080e4b2023-04-14 09:57:17 +020034
garciadeblas34824fc2023-10-10 15:32:36 +020035 helm repo add apache-airflow https://airflow.apache.org
36 helm repo update
37 helm upgrade airflow apache-airflow/airflow -n osm --create-namespace --install -f ${OSM_HELM_WORK_DIR}/airflow-values.yaml --version ${AIRFLOW_HELM_VERSION} --timeout 10m || FATAL_TRACK ngsa "Failed installing airflow helm chart"
garciadeblas7b53d262022-11-04 23:18:48 +010038 [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
39}
40
41# Install Prometheus Pushgateway helm chart
42function install_prometheus_pushgateway() {
garciadeblas34824fc2023-10-10 15:32:36 +020043 [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
44 helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
45 helm repo update
46 helm upgrade pushgateway prometheus-community/prometheus-pushgateway -n osm --create-namespace --install --version ${PROMPUSHGW_HELM_VERSION} || FATAL_TRACK ngsa "Failed installing pushgateway helm chart"
garciadeblas7b53d262022-11-04 23:18:48 +010047 [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
48}
49
garciadeblasbae51f62023-03-28 18:27:20 +020050# Install Prometheus AlertManager helm chart
51function install_prometheus_alertmanager() {
garciadeblas34824fc2023-10-10 15:32:36 +020052 [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
aguilard02609d92023-04-27 09:47:27 +000053 # copy alertmanager-values.yaml to the destination folder
54 sudo mkdir -p ${OSM_HELM_WORK_DIR}
55 sudo cp ${OSM_DEVOPS}/installers/helm/values/alertmanager-values.yaml ${OSM_HELM_WORK_DIR}
garciadeblas34824fc2023-10-10 15:32:36 +020056 helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
57 helm repo update
58 helm upgrade alertmanager prometheus-community/alertmanager -n osm --create-namespace --install -f ${OSM_HELM_WORK_DIR}/alertmanager-values.yaml --version ${ALERTMANAGER_HELM_VERSION} || FATAL_TRACK ngsa "Failed installing alertmanager helm chart"
garciadeblasbae51f62023-03-28 18:27:20 +020059 [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
60}
61
garciadeblas7b53d262022-11-04 23:18:48 +010062# main
garciadeblasd2d00c72022-11-25 17:21:46 +010063
garciadeblas37630992023-05-09 13:33:22 +020064DOCKER_REGISTRY_URL=
65DOCKER_USER="opensourcemano"
garciadeblasd2d00c72022-11-25 17:21:46 +010066OSM_DEVOPS="/usr/share/osm-devops"
garciadeblas931a5122023-10-03 17:52:02 +020067OSM_DOCKER_TAG="testing-daily"
garciadeblas37630992023-05-09 13:33:22 +020068OSM_HELM_WORK_DIR="/etc/osm/helm"
garciadeblasd2d00c72022-11-25 17:21:46 +010069
garciadeblas37630992023-05-09 13:33:22 +020070while getopts ":D:d:t:r:U:-: " o; do
garciadeblas7b53d262022-11-04 23:18:48 +010071 case "${o}" in
72 D)
73 OSM_DEVOPS="${OPTARG}"
74 ;;
75 d)
76 OSM_HELM_WORK_DIR="${OPTARG}"
77 ;;
garciadeblasd2d00c72022-11-25 17:21:46 +010078 t)
79 OSM_DOCKER_TAG="${OPTARG}"
80 ;;
garciadeblas37630992023-05-09 13:33:22 +020081 r)
82 DOCKER_REGISTRY_URL="${OPTARG}"
83 ;;
84 U)
85 DOCKER_USER="${OPTARG}"
86 ;;
garciadeblas7b53d262022-11-04 23:18:48 +010087 -)
88 [ "${OPTARG}" == "debug" ] && DEBUG_INSTALL="y" && continue
89 echo -e "Invalid option: '--$OPTARG'\n" >&2
90 exit 1
91 ;;
92 :)
93 echo "Option -$OPTARG requires an argument" >&2
94 exit 1
95 ;;
96 \?)
97 echo -e "Invalid option: '-$OPTARG'\n" >&2
98 exit 1
99 ;;
100 *)
101 exit 1
102 ;;
103 esac
104done
105
106source $OSM_DEVOPS/common/logging
107source $OSM_DEVOPS/common/track
108
109echo "DEBUG_INSTALL=$DEBUG_INSTALL"
110echo "OSM_DEVOPS=$OSM_DEVOPS"
garciadeblasd2d00c72022-11-25 17:21:46 +0100111echo "OSM_DOCKER_TAG=$OSM_DOCKER_TAG"
garciadeblas7b53d262022-11-04 23:18:48 +0100112echo "OSM_HELM_WORK_DIR=$OSM_HELM_WORK_DIR"
113
114install_airflow
115track deploy_osm airflow_ok
116install_prometheus_pushgateway
117track deploy_osm pushgateway_ok
garciadeblasbae51f62023-03-28 18:27:20 +0200118install_prometheus_alertmanager
119track deploy_osm alertmanager_ok
garciadeblas7b53d262022-11-04 23:18:48 +0100120