From e2df2cd82ef9736ff5f68b96f2a6b93988a4f137 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 5 Mar 2021 19:53:18 +0100 Subject: nextcloud-upgrade now handles config-hashes too --- roles/apps/nextcloud/templates/nextcloud-upgrade.j2 | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'roles/apps/nextcloud/templates/nextcloud-upgrade.j2') diff --git a/roles/apps/nextcloud/templates/nextcloud-upgrade.j2 b/roles/apps/nextcloud/templates/nextcloud-upgrade.j2 index 13178f0f..f59f3be6 100755 --- a/roles/apps/nextcloud/templates/nextcloud-upgrade.j2 +++ b/roles/apps/nextcloud/templates/nextcloud-upgrade.j2 @@ -9,6 +9,8 @@ fi set -eu +K8S_CONFIG_HASH_D="/etc/kubernetes/config-hashes/" +K8S_CONFIG_HASH_FILE="$K8S_CONFIG_HASH_D/nextcloud-$INST_NAME.yml" K8S_MANIFEST_D="/etc/kubernetes/manifests/" K8S_MANIFEST_FILE="$K8S_MANIFEST_D/nextcloud-$INST_NAME.yml" if [ ! -e "$K8S_MANIFEST_FILE" ]; then @@ -48,16 +50,22 @@ CURRENT_VERSION=$(cat "$K8S_MANIFEST_FILE" | awk '/image: "'"$IMAGE_NAME_ESCAPED zfs snapshot "{{ nextcloud_zfs.pool }}/{{ nextcloud_zfs.name }}/$INST_NAME@upgrade_$CURRENT_VERSION-to-$VERSION""_$(date '+%Y-%m-%m_%H:%M:%S')" {% endif %} +echo "*** Rebuilding config-hash file" +echo "" +cat "$K8S_CONFIG_HASH_FILE" | grep '^/.*:' | sed 's/:$//' | xargs sha256sum | awk '{ print($2":\n checksum: "$1) }' > "$TMP_D/config-hash.yml" +CONFIG_HASH=$(sha256sum "$TMP_D/config-hash.yml" | awk '{ print($1) }') + echo "*** Patching manifest file" echo "" -sed "s#image: \"$IMAGE_NAME:.*\"#image: \"$IMAGE_NAME:$VERSION\"#" "$K8S_MANIFEST_FILE" > "$TMP_D/upgraded.yml" +sed -e "s#image: \"$IMAGE_NAME:.*\"#image: \"$IMAGE_NAME:$VERSION\"#" -e "s#config-hash: \".*\"#config-hash: \"$CONFIG_HASH\"#" "$K8S_MANIFEST_FILE" > "$TMP_D/manifest.yml" set +e -diff -u "$K8S_MANIFEST_FILE" "$TMP_D/upgraded.yml" +diff -u "$K8S_MANIFEST_FILE" "$TMP_D/manifest.yml" if [ $? -eq 0 ]; then echo "patching file failed?" exit 2 fi -cat "$TMP_D/upgraded.yml" > "$K8S_MANIFEST_FILE" +cat "$TMP_D/config-hash.yml" > "$K8S_CONFIG_HASH_FILE" +cat "$TMP_D/manifest.yml" > "$K8S_MANIFEST_FILE" echo "" exit 0 -- cgit v1.2.3