Skip to content

Commit

Permalink
Use yq and helmfile build to dynamically deploy helm charts based on …
Browse files Browse the repository at this point in the history
…release name. (#300)
  • Loading branch information
willgraf committed Mar 27, 2020
1 parent d8dc787 commit 65eddbe
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions conf/patches/gke-helmfile-deployment.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
#!/bin/bash

for filename in ${CONF_PATH_PREFIX}/conf/helmfile.d/*.yaml; do
deployment_name=$(grep "\- name: " ${filename} | grep -m1 -v "\- name: \"stable\"" | awk '{print $3}' | sed 's/^\"\(.\+\)\"$/\1/')
deployment_names=$(helmfile -f $filename build | \
yq r - -- releases[*].name | awk '{print $2}')
for name in $deployment_names; do
# TODO: use retry command instead of for loop.
retries=3
for ((i=0; i<retries; i++)); do
helmfile --selector name=${deployment_name} sync
[[ $? -eq 0 ]] && break
echo "Something went wrong while deploying ${deployment_name}. Retrying in 30 seconds."
helm delete ${deployment_name} --purge
sleep 30
helmfile --selector name=${name} sync
[[ $? -eq 0 ]] && break
echo "Something went wrong while deploying ${name}. Retrying in 30 seconds."
helm delete ${name} --purge
sleep 30
done
done
done

0 comments on commit 65eddbe

Please sign in to comment.