Skip to content

Instantly share code, notes, and snippets.

@Mikulas
Created August 28, 2019 06:00
Show Gist options
  • Save Mikulas/09dac4b540e506878bd9aa2ab756fdad to your computer and use it in GitHub Desktop.
Save Mikulas/09dac4b540e506878bd9aa2ab756fdad to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
echo "$@"
THISFILE="$(readlink ${BASH_SOURCE[0]} || echo ${BASH_SOURCE[0]})"
REPO_DIR="$( cd "$( dirname "$(dirname "$THISFILE" )" )" && pwd )"
YQ=$(command -v yq-1.15 || command -v yq)
CHART="$1"
NAMESPACE="$2"
VALUES="$3"
NAME="$(basename "$VALUES" ".yaml")"
SERVER_VALUES="$(mktemp)"
function finish {
rm "$SERVER_VALUES"
}
trap finish exit
SERVER_YAML="$(helm get values "$NAME" --all || echo "{}")"
function get-val {
echo "$SERVER_YAML" | "$YQ" read - "$1" | sed 's/^null$//g'
}
function pass-val {
VALUE="$(get-val "$1")"
if [[ ! -z "$VALUE" ]]; then
"$YQ" write -i "$SERVER_VALUES" "$1" "$VALUE"
fi
}
pass-val 's3.uri'
pass-val 'version'
helm upgrade --install \
--namespace="$NAMESPACE" \
--values="$REPO_DIR/charts/values.yaml" \
--values="$SERVER_VALUES" \
--values="$VALUES" \
"${@:4}" "$NAME" "$CHART"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment