11#! /bin/bash
22
33helm_update () {
4- if [[ " ${HELM} " == " helm_v3" ]]; then
5- LINE=" $( ${HELM} ls --all -f " ^${NAME} \$ " --namespace ${TARGET_NAMESPACE} --output json | jq -r " ${JQ_CMD} " | tr ' [:upper:]' ' [:lower:]' ) "
6- else
7- LINE=" $( ${HELM} ls --all " ^${NAME} \$ " --output json | jq -r " ${JQ_CMD} " | tr ' [:upper:]' ' [:lower:]' ) "
8- fi
4+ LINE=" $( ${HELM} ls --all -f " ^${NAME} \$ " --namespace ${TARGET_NAMESPACE} --output json | jq -r " ${JQ_CMD} " | tr ' [:upper:]' ' [:lower:]' ) "
95 IFS=, read -r INSTALLED_VERSION STATUS _ <<< ${LINE}
106 VALUES=" "
117
@@ -19,14 +15,8 @@ helm_update() {
1915 echo " No ${HELM} chart installed; nothing to delete" >> ${TERM_LOG}
2016 exit
2117 fi
22- if [[ " ${HELM} " == " helm_v3" ]]; then
23- echo " Uninstalling ${HELM} chart" >> ${TERM_LOG}
24- ${HELM} uninstall ${NAME} --namespace ${TARGET_NAMESPACE} --wait || true
25- else
26- echo " Deleting and purging ${HELM} chart" >> ${TERM_LOG}
27- ${HELM} delete ${NAME} || true
28- ${HELM} " $@ " --purge ${NAME}
29- fi
18+ echo " Uninstalling ${HELM} chart" >> ${TERM_LOG}
19+ ${HELM} uninstall ${NAME} --namespace ${TARGET_NAMESPACE} --wait || true
3020 exit
3121 fi
3222
@@ -37,8 +27,8 @@ helm_update() {
3727 exit
3828 fi
3929
40- # If a previous helm_v3 operation was interrupted unexpectedly, set it to failed.
41- if [[ " ${STATUS} " =~ ^(pending-install| pending-upgrade| pending-rollback)$ ]] && [[ " ${HELM} " == " helm_v3 " ]] ; then
30+ # If a previous helm operation was interrupted unexpectedly, set it to failed.
31+ if [[ " ${STATUS} " =~ ^(pending-install| pending-upgrade| pending-rollback)$ ]]; then
4232 echo Previous helm job was interrupted, updating status from ${STATUS} to failed
4333 echo " Resetting ${HELM} release status from '${STATUS} ' to 'failed'" >> ${TERM_LOG}
4434 ${HELM} set-status ${NAME} failed --namespace ${TARGET_NAMESPACE}
@@ -59,11 +49,7 @@ helm_update() {
5949 # Upgrade only if the chart is already deployed
6050 if [[ " ${STATUS} " == " deployed" ]]; then
6151 echo " Already installed ${NAME} "
62- if [[ " ${HELM} " == " helm_v3" ]]; then
63- ${HELM} mapkubeapis ${NAME} --namespace ${TARGET_NAMESPACE}
64- else
65- ${HELM} mapkubeapis ${NAME} --v2
66- fi
52+ ${HELM} mapkubeapis ${NAME} --namespace ${TARGET_NAMESPACE}
6753
6854 echo " Upgrading ${HELM} chart" >> ${TERM_LOG}
6955 echo " Upgrading ${NAME} "
@@ -75,13 +61,8 @@ helm_update() {
7561 # The chart is in a bad state; try uninstalling it first
7662 if [[ " ${STATUS} " =~ ^(deleted| failed| null| unknown)$ ]]; then
7763 if [[ " ${FAILURE_POLICY:- reinstall} " == " reinstall" ]]; then
78- if [[ " ${HELM} " == " helm_v3" ]]; then
79- echo " Uninstalling ${STATUS} ${HELM} chart" >> ${TERM_LOG}
80- ${HELM} uninstall ${NAME} --namespace ${TARGET_NAMESPACE} --wait
81- else
82- echo " Purging ${STATUS} ${HELM} chart" >> ${TERM_LOG}
83- ${HELM} " $@ " --purge ${NAME}
84- fi
64+ echo " Uninstalling ${STATUS} ${HELM} chart" >> ${TERM_LOG}
65+ ${HELM} uninstall ${NAME} --namespace ${TARGET_NAMESPACE} --wait
8566 echo Deleted
8667 # Try installing now that we've uninstalled
8768 echo " Installing ${HELM} chart" >> ${TERM_LOG}
@@ -107,22 +88,13 @@ helm_repo_init() {
10788 return
10889 fi
10990
110- if [[ " ${HELM} " == " helm_v3" ]]; then
111- if [[ ${CHART} == stable/* ]]; then
112- ${HELM} repo add ${CA_FILE_ARG} stable ${STABLE_REPO_URL}
113- ${HELM} repo update
114- fi
115- else
116- ${HELM} repo update --strict || ${HELM} repo remove stable
91+ if [[ ${CHART} == stable/* ]]; then
92+ ${HELM} repo add ${CA_FILE_ARG} stable ${STABLE_REPO_URL}
93+ ${HELM} repo update
11794 fi
11895
11996 if [[ -n " ${REPO} " ]]; then
12097 if [[ -f " ${AUTH_DIR} /username" ]] && [[ -f " ${AUTH_DIR} /password" ]]; then
121- if [[ " ${HELM} " == " helm_v2" ]]; then
122- echo " Repo authentication is not supported with v2 charts" >> ${TERM_LOG}
123- echo " Repo authentication is not supported with v2 charts"
124- exit 1
125- fi
12698 if [[ " ${AUTH_PASS_CREDENTIALS} " == " true" ]]; then
12799 PASS_CREDENTIALS_ARG=" --pass-credentials"
128100 fi
@@ -158,7 +130,7 @@ export TERM_LOG=/dev/termination-log
158130export SSL_CERT_FILE=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
159131export SSL_CERT_DIR=/etc/ssl/certs
160132export HELM_TLS_CA_CERT=${SSL_CERT_FILE}
161- HELM=" helm_v3 "
133+ HELM=" helm "
162134NAME_ARG=" "
163135CA_FILE_ARG=" "
164136TIMEOUT_ARG=" "
175147
176148set +v -x
177149
178- if [[ " ${BOOTSTRAP} " != " true" ]]; then
179- tiller --listen=127.0.0.1:44134 --storage=secret &
180- export HELM_HOST=127.0.0.1:44134
181-
182- helm_v2 init --skip-refresh --client-only --stable-repo-url ${STABLE_REPO_URL}
183- V2_CHART_EXISTS=$( timeout -s KILL 30 helm_v2 ls --all " ^${NAME} \$ " --output json | jq -r ' .Releases | length' )
184- fi
185-
186- if [[ " ${V2_CHART_EXISTS} " == " 1" ]] || [[ " ${HELM_VERSION} " == " v2" ]]; then
187- if [[ " ${BOOTSTRAP} " == " true" ]]; then
188- echo " Can't bootstrap ${HELM} chart" >> ${TERM_LOG}
189- echo " Error: bootstrap flag can't be set with helm version 2 charts, please remove the bootstrap flag and update the chart"
190- exit 1
191- fi
192- HELM=" helm_v2"
193- NAME_ARG=" --name"
194- JQ_CMD=' "\(.Releases[0].AppVersion),\(.Releases[0].Status)"'
150+ if [[ " ${HELM_VERSION} " == " v2" ]]; then
151+ echo " Helm v2 is EOL effective 2020-11-13; upgrade your chart to helm v3" >> ${TERM_LOG}
152+ echo " Helm v2 is EOL effective 2020-11-13; upgrade your chart to helm v3"
153+ exit 1
195154fi
196155
197156shopt -s nullglob
@@ -211,11 +170,7 @@ if [[ -f "/tmp/ca-file.pem" ]]; then
211170fi
212171
213172if [[ -n " ${TIMEOUT} " ]]; then
214- if [[ " ${HELM} " == " helm_v3" ]]; then
215- TIMEOUT_ARG=" --timeout ${TIMEOUT} "
216- else
217- echo " Warning: timeout flag can't be set with version 2 charts, using default timeout"
218- fi
173+ TIMEOUT_ARG=" --timeout ${TIMEOUT} "
219174fi
220175
221176helm_content_decode
0 commit comments