penguin/monok8s

k8s image for Mono Gateway Dev Kit

devtools/test-upgrade.sh

raw ยท 1446 bytes

#!/bin/bash

SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")"
OUT_DIR="$(realpath "$SCRIPT_DIR"/../out/)"

set -e

DEFAULT_BASE_URL="http://localhost:8000"
DEFAULT_TARGET_VERSION="v1.34.1"
STABLE_VERSION="v1.34.1"
NAME="my-upgrade-1"

if [ -r /dev/tty ]; then
    printf "Enter the base url (%s): " "$DEFAULT_BASE_URL" > /dev/tty
    read -r BASE_URL < /dev/tty

    printf "Enter the target version (%s): " "$DEFAULT_TARGET_VERSION" > /dev/tty
    read -r TARGET_VERSION < /dev/tty
else
    echo "No TTY available for interactive input" >&2
    exit 1
fi

BASE_URL="${BASE_URL:-$DEFAULT_BASE_URL}"
TARGET_VERSION="${TARGET_VERSION:-$DEFAULT_TARGET_VERSION}"

echo "apiVersion: monok8s.io/v1alpha1"
echo "kind: OSUpgrade"
echo "metadata:"
echo "  name: \"$NAME\""
echo "spec:"
echo "  desiredVersion: \"$TARGET_VERSION\""
echo "  nodeSelector: {}"
echo "  catalog:"
echo "    inline: |"
echo "      stable: $STABLE_VERSION"
echo "      images:"

for c in "$OUT_DIR"/catalog-*.txt; do
    version=$(grep 'version:' "$c" | awk '{print $3}')
    url=$(grep 'url:' "$c" | sed 's/.*"\(.*\)"/\1/')
    checksum=$(grep 'checksum:' "$c" | awk '{print $2}')
    size=$(grep 'size:' "$c" | awk '{print $2}')

    filename=$(basename "$url")

    echo "        - version: $version"
    echo "          url: $BASE_URL/$filename"
    echo "          checksum: sha256:$checksum"
    echo "          size: $size"
done

echo "      blocked:"
echo "        - v1.34.0"