From 612da9f2c3fe6c712bcd9acf49d4984b8eb3f9fa Mon Sep 17 00:00:00 2001 From: GPU Kitchen delivery Date: Mon, 28 Sep 2026 17:00:26 +0000 Subject: [PATCH] Promote v0.1.14 to production --- install.sh | 36 +++++++++++++++++++++++++++++++++--- latest.json | 16 ++++++++-------- latest.json.minisig | 6 +++--- 3 files changed, 44 insertions(+), 14 deletions(-) diff --git a/install.sh b/install.sh index 27948a0..dcf5489 100644 --- a/install.sh +++ b/install.sh @@ -179,6 +179,16 @@ Options: EOF } +# The command line as given, shell-quoted: a refusal can then print the exact +# command to run next instead of a flag to add by hand. +ORIG_ARGS="" +for _arg in "$@"; do + case "$_arg" in + *[!A-Za-z0-9_./:=@,+-]*|"") ORIG_ARGS="$ORIG_ARGS '$(printf '%s' "$_arg" | sed "s/'/'\\\\''/g")'" ;; + *) ORIG_ARGS="$ORIG_ARGS $_arg" ;; + esac +done + while [ $# -gt 0 ]; do case "$1" in --version) VERSION="$2"; shift 2 ;; @@ -388,6 +398,29 @@ esac # by digest, and lets the daemon pull, health-gate and roll back. A freshly # downloaded install.sh is trust-on-first-use again; handing the update to the # installed gpuk keeps a re-run inside the chain the first install established. +# An install older than gpuk-on-the-host has nothing to hand the update to: the +# only way forward is a reinstall over it. Offer it on a terminal, and always +# print the complete command — never a flag to splice in by hand. +if [ "$EXISTING" = "manifest" ] && [ -z "$RECONFIGURE" ] && [ "$DRY_RUN" -eq 0 ] \ + && [ ! -x "$GPUK_CLI" ]; then + step "Update — this install predates gpuk on the host" + REINSTALL_CMD="curl -fsSL https://gpu.kitchen/install.sh | sudo sh -s --$ORIG_ARGS --reinstall" + echo " It has no $GPUK_CLI to update it with. Reinstalling over it keeps its settings" + echo " and leaves gpuk on the host for every later update:" + echo + echo " $REINSTALL_CMD" + echo + if can_prompt; then + ask " Reinstall over it now? [Y/n] " + case "$REPLY" in + ""|y|Y|yes|YES|o|O|oui) REINSTALL=1; reconfigure "--reinstall" ;; + *) die "nothing was changed. Run the command above when you are ready." ;; + esac + else + die "nothing was changed. Run the command above to reinstall over it." + fi +fi + if [ "$EXISTING" = "manifest" ] && [ -z "$RECONFIGURE" ]; then step "Update — handed to the installed gpuk" if [ "$DRY_RUN" -eq 1 ]; then @@ -396,9 +429,6 @@ if [ "$EXISTING" = "manifest" ] && [ -z "$RECONFIGURE" ]; then echo " existing : yes — updated in place" exit 0 fi - [ -x "$GPUK_CLI" ] \ - || die "this install has no $GPUK_CLI to update it with. Re-run with --reinstall: it reinstalls - over the existing install, keeps its settings, and leaves gpuk on the host for the next update." "$GPUK_CLI" update || die "the update failed — gpuk reported the cause just above" echo echo "${BOLD}${GREEN}GPU Kitchen is up to date.${RESET}" diff --git a/latest.json b/latest.json index 6ee5ec6..9752665 100644 --- a/latest.json +++ b/latest.json @@ -1,14 +1,14 @@ { - "version": "v0.1.13", - "semver": "0.1.13", + "version": "v0.1.14", + "semver": "0.1.14", "controllerImage": "repo.byterain.io/gpukitchen/gpukitchen-controller", "controllerImageEnterprise": "repo.byterain.io/gpukitchen-private/gpukitchen-controller-ee", - "controllerImageDigest": "sha256:e48971d9f7872b7a3cfbf82260ddaf4fbe0a493496f484894def74442e90cd92", - "controllerImageDigestEnterprise": "sha256:a469c7e5c8e624239a0203574790681d6698d4dbd8574ecfb451f5c5a320f537", + "controllerImageDigest": "sha256:c0771eb28c0e129289ab5b21f7471de49090b6476465f6009fee6dc9dcaac06c", + "controllerImageDigestEnterprise": "sha256:b951a22294c79e8aa787f93525698541480db5eecec2d9a5a873541bdf3a24be", "gpukScriptSha256": "40286416f58d4807c18d62b8dda988ef87714e32c35fe1343e8b4de3fad36dcf", - "workerBuildIdX86_64": "20260928160010-d6ea38b659d912eec5a2b47b3b08f9eeb09aea01", - "workerBuildIdAarch64": "20260928160010-d6ea38b659d912eec5a2b47b3b08f9eeb09aea01", - "workerBase": "https://repo.byterain.io/api/packages/gpukitchen/generic/gpu-kitchen-worker/v0.1.13", - "gpukScript": "https://repo.byterain.io/api/packages/gpukitchen/generic/gpu-kitchen-channel/v0.1.13/gpuk", + "workerBuildIdX86_64": "20260928165353-3f2eec62854aacec42f4aa56f68bc429dde2d333", + "workerBuildIdAarch64": "20260928165353-3f2eec62854aacec42f4aa56f68bc429dde2d333", + "workerBase": "https://repo.byterain.io/api/packages/gpukitchen/generic/gpu-kitchen-worker/v0.1.14", + "gpukScript": "https://repo.byterain.io/api/packages/gpukitchen/generic/gpu-kitchen-channel/v0.1.14/gpuk", "releaseNotes": "https://repo.byterain.io/gpukitchen/channel" } diff --git a/latest.json.minisig b/latest.json.minisig index 9b23087..1139d25 100644 --- a/latest.json.minisig +++ b/latest.json.minisig @@ -1,4 +1,4 @@ untrusted comment: signature from minisign secret key -RUQ7BKXJqGX2jesWQLAgf8TOhEtR7LdTE/9W4xWixCA2CMU5EjcA73hQkqwF1pPaP53Yrx35nu8dGLVqoDAYcminSfEpwakTxwQ= -trusted comment: gpu-kitchen channel v0.1.13 -8JLHZg2cxj2RjgCyUp6S6tO909AmdxZ9wLScByCswPpzV5Vc8aYyM6DcKAmDRyVPyrPmdy+yKpQOZrOFq2DfCA== +RUQ7BKXJqGX2jQyEfCC7acWFPW4i0xzH+tV631w8DdlyPDhuPeyQeY/fU8z+RE7pHqYNYN9Cai23iqQcdwcTKUdALP8Z0cdbtA0= +trusted comment: gpu-kitchen channel v0.1.14 +vTS8e6v1YszeBVVrPU3jGLG8leCTrRhCzjat9K3NO4UPrJaMgFYNmS+STyw9imKO2QN/1+nhMKLQTleyIoSzCQ==