summaryrefslogtreecommitdiffstats
path: root/kubernetes/helm/plugins/deploy/deploy.sh
diff options
context:
space:
mode:
Diffstat (limited to 'kubernetes/helm/plugins/deploy/deploy.sh')
-rwxr-xr-xkubernetes/helm/plugins/deploy/deploy.sh35
1 files changed, 30 insertions, 5 deletions
diff --git a/kubernetes/helm/plugins/deploy/deploy.sh b/kubernetes/helm/plugins/deploy/deploy.sh
index 9195f161f6..a07c7f4ce1 100755
--- a/kubernetes/helm/plugins/deploy/deploy.sh
+++ b/kubernetes/helm/plugins/deploy/deploy.sh
@@ -39,6 +39,7 @@ Flags:
--set-string stringArray set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
-f, --values valueFiles specify values in a YAML file or a URL(can specify multiple) (default [])
--verbose enables full helm install/upgrade output during deploy
+ --set-last-applied set the last-applied-configuration annotation on all objects.This annotation is required to restore services using Ark/Veloro backup restore.
EOF
}
@@ -66,7 +67,6 @@ generate_overrides() {
fi
done
}
-
resolve_deploy_flags() {
flags=($1)
n=${#flags[*]}
@@ -75,7 +75,8 @@ resolve_deploy_flags() {
if [[ $PARAM == "-f" || \
$PARAM == "--values" || \
$PARAM == "--set" || \
- $PARAM == "--set-string" ]]; then
+ $PARAM == "--set-string" || \
+ $PARAM == "--version" ]]; then
# skip param and its value
i=$((i + 1))
else
@@ -108,6 +109,12 @@ deploy() {
FLAGS="$(echo $FLAGS| sed -n 's/--verbose//p')"
VERBOSE="true"
fi
+ # determine if set-last-applied flag is enabled
+ SET_LAST_APPLIED="false"
+ if [[ $FLAGS = *"--set-last-applied"* ]]; then
+ FLAGS="$(echo $FLAGS| sed -n 's/--set-last-applied//p')"
+ SET_LAST_APPLIED="true"
+ fi
if [[ $FLAGS = *"--dry-run"* ]]; then
VERBOSE="true"
FLAGS="$FLAGS --debug"
@@ -116,12 +123,18 @@ deploy() {
# should pass all flags instead
NAMESPACE="$(echo $FLAGS | sed -n 's/.*\(namespace\).\s*/\1/p' | cut -c10- | cut -d' ' -f1)"
+ VERSION="$(echo $FLAGS | sed -n 's/.*\(version\).\s*/\1/p' | cut -c8- | cut -d' ' -f1)"
+
+ if [ ! -z $VERSION ]; then
+ VERSION="--version $VERSION"
+ fi
+
# Remove all override values passed in as arguments. These will be used during dry run
# to resolve computed override values. Remaining flags will be passed on during
# actual upgrade/install of parent and subcharts.
DEPLOY_FLAGS=$(resolve_deploy_flags "$FLAGS")
- # determine if upgrading individual subchart or entire parent + subcharts
+ # determine if upgrading individual subchart or entire parent + subcharts
SUBCHART_RELEASE="$(cut -d'-' -f2 <<<"$RELEASE")"
if [[ ! -d "$CACHE_SUBCHART_DIR/$SUBCHART_RELEASE" ]]; then
SUBCHART_RELEASE=
@@ -148,7 +161,7 @@ deploy() {
rm -rf $CHART_DIR/charts/*.tgz
else
echo "fetching $CHART_URL"
- helm fetch $CHART_URL --untar --untardir $CACHE_DIR
+ helm fetch $CHART_URL --untar --untardir $CACHE_DIR $VERSION
fi
# move out subcharts to process separately
@@ -183,6 +196,12 @@ deploy() {
else
echo "release \"$RELEASE\" deployed"
fi
+ # Add annotation last-applied-configuration if set-last-applied flag is set
+ if [[ $SET_LAST_APPLIED == "true" ]]; then
+ helm get manifest ${RELEASE} \
+ | kubectl apply set-last-applied --create-annotation -n onap -f - \
+ > $LOG_FILE.log 2>&1
+ fi
fi
# upgrade/install each "enabled" subchart
@@ -209,6 +228,12 @@ deploy() {
else
echo "release \"${RELEASE}-${subchart}\" deployed"
fi
+ # Add annotation last-applied-configuration if set-last-applied flag is set
+ if [[ $SET_LAST_APPLIED == "true" ]]; then
+ helm get manifest "${RELEASE}-${subchart}" \
+ | kubectl apply set-last-applied --create-annotation -n onap -f - \
+ > $LOG_FILE.log 2>&1
+ fi
fi
else
array=($(helm ls -q | grep "${RELEASE}-${subchart}"))
@@ -238,4 +263,4 @@ case "${1:-"help"}" in
;;
esac
-exit 0 \ No newline at end of file
+exit 0