-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhelm_upgrade_repo_chart.sh
executable file
·48 lines (36 loc) · 1.35 KB
/
helm_upgrade_repo_chart.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env bash
## Running this will use install an helm chart from helm repository (e.g, prometheus)
source connect.sh
CHART_NAME="${1}"
[ -z "${CHART_NAME}" ] && echo "usage:" && echo "./helm_upgrade_repo_chart.sh <CHART_NAME>" && exit 1
RELEASE_NAME="${K8S_ENVIRONMENT_NAME}"
echo "RELEASE_NAME=${RELEASE_NAME}"
TEMPDIR=`mktemp -d`
echo '{}' > "${TEMPDIR}/values.yaml"
for VALUES_FILE in values.yaml values.auto-updated.yaml environments/${K8S_ENVIRONMENT_NAME}/values.yaml environments/${K8S_ENVIRONMENT_NAME}/values.auto-updated.yaml
do
if [ -f "${VALUES_FILE}" ]; then
GLOBAL_VALUES=`./read_yaml.py "${VALUES_FILE}" global 2>/dev/null`
! [ -z "${GLOBAL_VALUES}" ] \
&& ./update_yaml.py '{"global":'${GLOBAL_VALUES}'}' "${TEMPDIR}/values.yaml"
RELEASE_VALUES=`./read_yaml.py "${VALUES_FILE}" "${CHART_NAME}" 2>/dev/null`
! [ -z "${RELEASE_VALUES}" ] \
&& ./update_yaml.py "${RELEASE_VALUES}" "${TEMPDIR}/values.yaml"
fi
# cat "${TEMPDIR}/values.yaml"
done
VALUES=`cat "${TEMPDIR}/values.yaml"`
CMD="helm upgrade -f ${TEMPDIR}/values.yaml ${RELEASE_NAME} ${CHART_NAME} ${@:2}"
if ! $CMD; then
echo
echo "${TEMPDIR}/values.yaml"
echo "${VALUES}"
echo
echo "CMD"
echo "${CMD}"
echo
echo "helm install failed"
else
rm -rf $TEMPDIR
echo "Great Success!"
fi