mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-08 21:46:58 +02:00
Merge pull request #746 from bgilbert/release
offline_signing: Mechanize more roller interactions
This commit is contained in:
commit
4b26f47d91
@ -2,6 +2,15 @@
|
|||||||
|
|
||||||
set -eux
|
set -eux
|
||||||
|
|
||||||
|
declare -A APPID
|
||||||
|
APPID[amd64-usr]=e96281a6-d1af-4bde-9a0a-97b76e56dc57
|
||||||
|
APPID[arm64-usr]=103867da-e3a2-4c92-b0b3-7fbd7f7d8b71
|
||||||
|
|
||||||
|
declare -A RELEASE_CHANNEL
|
||||||
|
RELEASE_CHANNEL[alpha]=Alpha
|
||||||
|
RELEASE_CHANNEL[beta]=Beta
|
||||||
|
RELEASE_CHANNEL[stable]=Stable
|
||||||
|
|
||||||
download() {
|
download() {
|
||||||
local channel="$1"
|
local channel="$1"
|
||||||
local version="$2"
|
local version="$2"
|
||||||
@ -12,7 +21,7 @@ download() {
|
|||||||
mkdir -p "${dir}"
|
mkdir -p "${dir}"
|
||||||
pushd "${dir}" >/dev/null
|
pushd "${dir}" >/dev/null
|
||||||
|
|
||||||
gsutil cp \
|
gsutil -m cp \
|
||||||
"${gs}/coreos_production_image.vmlinuz" \
|
"${gs}/coreos_production_image.vmlinuz" \
|
||||||
"${gs}/coreos_production_image.vmlinuz.sig" \
|
"${gs}/coreos_production_image.vmlinuz.sig" \
|
||||||
"${gs}/coreos_production_update.bin.bz2" \
|
"${gs}/coreos_production_update.bin.bz2" \
|
||||||
@ -38,33 +47,72 @@ upload() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
declare -A appid
|
|
||||||
appid[amd64-usr]=e96281a6-d1af-4bde-9a0a-97b76e56dc57
|
|
||||||
appid[arm64-usr]=103867da-e3a2-4c92-b0b3-7fbd7f7d8b71
|
|
||||||
|
|
||||||
"$(dirname $0)/../core_roller_upload" \
|
"$(dirname $0)/../core_roller_upload" \
|
||||||
--user="${ROLLER_USERNAME}" \
|
--user="${ROLLER_USERNAME}" \
|
||||||
--api_key="${ROLLER_API_KEY}" \
|
--api_key="${ROLLER_API_KEY}" \
|
||||||
--app_id="${appid[${board}]}" \
|
--app_id="${APPID[${board}]}" \
|
||||||
--board="${board}" \
|
--board="${board}" \
|
||||||
--version="${version}" \
|
--version="${version}" \
|
||||||
--payload="${payload}"
|
--payload="${payload}"
|
||||||
|
|
||||||
|
# Update version in a canary channel if one is defined.
|
||||||
|
local -n canary_channel="ROLLER_CANARY_CHANNEL_${channel^^}"
|
||||||
|
if [[ -n "${canary_channel}" ]]; then
|
||||||
|
updateservicectl \
|
||||||
|
--server="https://public.update.core-os.net" \
|
||||||
|
--user="${ROLLER_USERNAME}" \
|
||||||
|
--key="${ROLLER_API_KEY}" \
|
||||||
|
channel update \
|
||||||
|
--app-id="${APPID[${board}]}" \
|
||||||
|
--channel="${canary_channel}" \
|
||||||
|
--version="${version}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
roll() {
|
||||||
|
local channel="$1"
|
||||||
|
local version="$2"
|
||||||
|
local board="$3"
|
||||||
|
|
||||||
|
# Only ramp rollouts on AMD64; ARM64 is too small
|
||||||
|
if [[ "$board" = "amd64-usr" ]]; then
|
||||||
|
updateservicectl \
|
||||||
|
--server="https://public.update.core-os.net" \
|
||||||
|
--user="${ROLLER_USERNAME}" \
|
||||||
|
--key="${ROLLER_API_KEY}" \
|
||||||
|
group update \
|
||||||
|
--app-id="${APPID[${board}]}" \
|
||||||
|
--group-id="${channel}" \
|
||||||
|
--update-count=3 \
|
||||||
|
--update-interval=60
|
||||||
|
fi
|
||||||
|
|
||||||
|
# FIXME(bgilbert): We set --publish=true because there's no way to
|
||||||
|
# say --publish=unchanged
|
||||||
|
updateservicectl \
|
||||||
|
--server="https://public.update.core-os.net" \
|
||||||
|
--user="${ROLLER_USERNAME}" \
|
||||||
|
--key="${ROLLER_API_KEY}" \
|
||||||
|
channel update \
|
||||||
|
--app-id="${APPID[${board}]}" \
|
||||||
|
--channel="${RELEASE_CHANNEL[${channel}]}" \
|
||||||
|
--publish=true \
|
||||||
|
--version="${version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: $0 {download|upload} <ARTIFACT-DIR> [{-a|-b|-s} <VERSION>]..." >&2
|
echo "Usage: $0 {download|upload} <ARTIFACT-DIR> [{-a|-b|-s} <VERSION>]..." >&2
|
||||||
|
echo "Usage: $0 roll [{-a|-b|-s} <VERSION>]..." >&2
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Parse base arguments.
|
# Parse subcommand.
|
||||||
CMD="${1:-}"
|
CMD="${1:-}"
|
||||||
BASEDIR="${2:-}"
|
shift ||:
|
||||||
shift 2 ||:
|
|
||||||
|
|
||||||
case "${CMD}" in
|
case "${CMD}" in
|
||||||
download)
|
download)
|
||||||
;;
|
;;
|
||||||
upload)
|
upload|roll)
|
||||||
if [[ -e "${HOME}/.config/roller.conf" ]]; then
|
if [[ -e "${HOME}/.config/roller.conf" ]]; then
|
||||||
. "${HOME}/.config/roller.conf"
|
. "${HOME}/.config/roller.conf"
|
||||||
fi
|
fi
|
||||||
@ -79,6 +127,11 @@ case "${CMD}" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# Parse basedir if necessary.
|
||||||
|
case "${CMD}" in
|
||||||
|
download|upload)
|
||||||
|
BASEDIR="${1:-}"
|
||||||
|
shift ||:
|
||||||
if [[ -z "${BASEDIR}" ]]; then
|
if [[ -z "${BASEDIR}" ]]; then
|
||||||
usage
|
usage
|
||||||
fi
|
fi
|
||||||
@ -87,6 +140,8 @@ if [[ -d "${BASEDIR}" && ! -O "${BASEDIR}" ]]; then
|
|||||||
echo "Fixing ownership of ${BASEDIR}..."
|
echo "Fixing ownership of ${BASEDIR}..."
|
||||||
sudo chown -R "${USER}" "${BASEDIR}"
|
sudo chown -R "${USER}" "${BASEDIR}"
|
||||||
fi
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# Walk argument pairs.
|
# Walk argument pairs.
|
||||||
while [[ $# > 0 ]]; do
|
while [[ $# > 0 ]]; do
|
||||||
|
Loading…
Reference in New Issue
Block a user