flatcar-scripts/core_roller_upload
Michael Marineau ce9d1c95a9 fix(core_roller_upload): Use new payload names and upload path.
As of 4e85b172 the build system generates the update payload using the
coreos_production_update prefix, so use that instead. Use the release
version in the storage path instead of a disk image MD5; the version is
sufficiently unique and the no need for the obfuscation.

Drop the disk image copy in the download storage that I tacked in, that
will go into a new core_promote script that I have written but not
tested yet (need an alpha release to promote!!).
2014-05-06 13:04:36 -07:00

66 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# Copyright (c) 2013 The CoreOS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
SCRIPT_ROOT=$(dirname $(readlink -f "$0"))
# We have to simple-mindedly set GCLIENT_ROOT in case we're running from
# au-generator.zip because common.sh will fail while auto-detect it.
export GCLIENT_ROOT=$(readlink -f "${SCRIPT_ROOT}/../../")
. "${SCRIPT_ROOT}/common.sh" || exit 1
DEFINE_string board "amd64-usr" \
"Board type of the image"
DEFINE_string payload "coreos_production_update.gz" \
"Path to the update payload"
DEFINE_string metadata "coreos_production_update.meta" \
"Path to the update metadata"
DEFINE_string version "${COREOS_VERSION_STRING}" \
"Version number of this build."
DEFINE_string app_id "e96281a6-d1af-4bde-9a0a-97b76e56dc57" \
"CoreOS AppId in roller."
DEFINE_string user "" \
"User for roller."
DEFINE_string api_key "" \
"API key for roller."
DEFINE_string endpoint "https://public.update.core-os.net" \
"Roller endpoint to update."
DEFINE_string storage "gs://update-storage.core-os.net" \
"Google Storage location to host the payload."
FLAGS_HELPS="usage: $SCRIPTNAME [flags]
Setting everything up for use\n
1) Run 'gsutil config' and use project id coreos.com:core-update-storage\n
2) Ensure rollerctl is installed in your path\n
"
# Parse flags
FLAGS "$@" || exit 1
eval set -- "${FLAGS_ARGV}"
switch_to_strict_mode
[[ -z "${FLAGS_api_key}" ]] && die "--api_key is required"
[[ -z "${FLAGS_user}" ]] && die "--user is required"
# Ensure GS URL doesn't have a trailing /
FLAGS_storage="${FLAGS_storage%%/}"
GS_URL="${FLAGS_storage}/${FLAGS_board}/${FLAGS_version}/update.gz"
HTTP_URL="http://${GS_URL#gs://}"
gsutil cp "${FLAGS_payload}" "${GS_URL}"
rollerctl \
-s ${FLAGS_endpoint} \
-u ${FLAGS_user} \
-k ${FLAGS_api_key} \
new-package \
--url "${HTTP_URL}" \
--file "${FLAGS_payload}" \
--meta "${FLAGS_metadata}" \
--version "${FLAGS_version}" \
"${FLAGS_app_id}"