summaryrefslogtreecommitdiff
path: root/roles/apps/nextcloud/templates/nextcloud-upgrade.j2
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2021-03-05 19:53:18 +0100
committerChristian Pointner <equinox@spreadspace.org>2021-03-05 19:53:18 +0100
commite2df2cd82ef9736ff5f68b96f2a6b93988a4f137 (patch)
tree63e2d28442883ce5a33265d515c347cd58326f2e /roles/apps/nextcloud/templates/nextcloud-upgrade.j2
parentupdate blackmagic desktop video (diff)
nextcloud-upgrade now handles config-hashes too
Diffstat (limited to 'roles/apps/nextcloud/templates/nextcloud-upgrade.j2')
-rwxr-xr-xroles/apps/nextcloud/templates/nextcloud-upgrade.j214
1 files changed, 11 insertions, 3 deletions
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