This commit is contained in:
Flatcar Buildbot 2019-11-07 19:40:01 +01:00 committed by Iago López Galeiras
parent 913140d5d1
commit 1dad511f69
44 changed files with 281 additions and 275 deletions

View File

@ -33,7 +33,7 @@
SCRIPT_ROOT=$(dirname $(readlink -f "$0")) SCRIPT_ROOT=$(dirname $(readlink -f "$0"))
. "${SCRIPT_ROOT}/common.sh" || exit 1 . "${SCRIPT_ROOT}/common.sh" || exit 1
TYPE="coreos-sdk" TYPE="flatcar-sdk"
. "${BUILD_LIBRARY_DIR}/catalyst.sh" || exit 1 . "${BUILD_LIBRARY_DIR}/catalyst.sh" || exit 1
@ -63,7 +63,7 @@ catalyst_init "$@"
check_gsutil_opts check_gsutil_opts
if [[ "$STAGES" =~ stage4 ]]; then if [[ "$STAGES" =~ stage4 ]]; then
info "Setting release to ${COREOS_VERSION}" info "Setting release to ${FLATCAR_VERSION}"
rm -rf "${TEMPDIR}/stage4_overlay" rm -rf "${TEMPDIR}/stage4_overlay"
# need to setup the lib->lib64 symlink correctly # need to setup the lib->lib64 symlink correctly
libdir=$(get_sdk_libdir) libdir=$(get_sdk_libdir)

View File

@ -94,7 +94,7 @@ case "${version}" in
"/usr/bin/docker-containerd-shim" "/usr/bin/docker-containerd-shim"
"/usr/bin/docker-proxy" "/usr/bin/docker-proxy"
"/usr/bin/docker-runc" "/usr/bin/docker-runc"
"/usr/lib/coreos/dockerd" "/usr/lib/flatcar/dockerd"
) )
ebuild_aci_create "users.developer.core-os.net/skim/docker" \ ebuild_aci_create "users.developer.core-os.net/skim/docker" \
"coreos_docker-${BOARD}-${version}_coreos.${aci_version}" \ "coreos_docker-${BOARD}-${version}_coreos.${aci_version}" \

View File

@ -166,16 +166,16 @@ fix_mtab
if [[ "${CONTAINER}" -eq 1 ]]; then if [[ "${CONTAINER}" -eq 1 ]]; then
IMAGE_BUILD_TYPE="container" IMAGE_BUILD_TYPE="container"
create_dev_container "${COREOS_DEVELOPER_CONTAINER_NAME}" "${CONTAINER_LAYOUT}" "${FLAGS_group}" ${FLAGS_base_dev_pkg} create_dev_container "${FLATCAR_DEVELOPER_CONTAINER_NAME}" "${CONTAINER_LAYOUT}" "${FLAGS_group}" ${FLAGS_base_dev_pkg}
fi fi
if [[ "${PROD_IMAGE}" -eq 1 ]]; then if [[ "${PROD_IMAGE}" -eq 1 ]]; then
IMAGE_BUILD_TYPE="prod" IMAGE_BUILD_TYPE="prod"
create_prod_image ${COREOS_PRODUCTION_IMAGE_NAME} ${DISK_LAYOUT} ${FLAGS_group} ${FLAGS_base_pkg} create_prod_image ${FLATCAR_PRODUCTION_IMAGE_NAME} ${DISK_LAYOUT} ${FLAGS_group} ${FLAGS_base_pkg}
if [[ ${FLAGS_generate_update} -eq ${FLAGS_TRUE} ]]; then if [[ ${FLAGS_generate_update} -eq ${FLAGS_TRUE} ]]; then
generate_update "${COREOS_PRODUCTION_IMAGE_NAME}" ${DISK_LAYOUT} generate_update "${FLATCAR_PRODUCTION_IMAGE_NAME}" ${DISK_LAYOUT}
elif [[ ${FLAGS_extract_update} -eq ${FLAGS_TRUE} ]]; then elif [[ ${FLAGS_extract_update} -eq ${FLAGS_TRUE} ]]; then
extract_update "${COREOS_PRODUCTION_IMAGE_NAME}" "${DISK_LAYOUT}" extract_update "${FLATCAR_PRODUCTION_IMAGE_NAME}" "${DISK_LAYOUT}"
fi fi
fi fi
@ -186,15 +186,15 @@ then
fi fi
# Write out a version.txt file, this will be used by image_to_vm.sh # Write out a version.txt file, this will be used by image_to_vm.sh
split_ver "${COREOS_VERSION_ID}" SPLIT split_ver "${FLATCAR_VERSION_ID}" SPLIT
tee "${BUILD_DIR}/version.txt" <<EOF tee "${BUILD_DIR}/version.txt" <<EOF
COREOS_BUILD=${SPLIT[0]} FLATCAR_BUILD=${SPLIT[0]}
COREOS_BRANCH=${SPLIT[1]} FLATCAR_BRANCH=${SPLIT[1]}
COREOS_PATCH=${SPLIT[2]} FLATCAR_PATCH=${SPLIT[2]}
COREOS_VERSION=${COREOS_VERSION} FLATCAR_VERSION=${FLATCAR_VERSION}
COREOS_VERSION_ID=${COREOS_VERSION_ID} FLATCAR_VERSION_ID=${FLATCAR_VERSION_ID}
COREOS_BUILD_ID="${COREOS_BUILD_ID}" FLATCAR_BUILD_ID="${FLATCAR_BUILD_ID}"
COREOS_SDK_VERSION=${COREOS_SDK_VERSION} FLATCAR_SDK_VERSION=${FLATCAR_SDK_VERSION}
EOF EOF
upload_image "${BUILD_DIR}/version.txt" upload_image "${BUILD_DIR}/version.txt"
@ -220,7 +220,7 @@ EOF
# Print out the images we generated. # Print out the images we generated.
if [[ "${PROD_IMAGE}" -eq 1 ]]; then if [[ "${PROD_IMAGE}" -eq 1 ]]; then
echo "CoreOS Production image created as ${COREOS_PRODUCTION_IMAGE_NAME}" echo "Flatcar Production image created as ${FLATCAR_PRODUCTION_IMAGE_NAME}"
print_image_to_vm print_image_to_vm
fi fi

View File

@ -12,7 +12,7 @@
# Use canonical path since some tools (e.g. mount) do not like symlinks. # Use canonical path since some tools (e.g. mount) do not like symlinks.
# Append build attempt to output directory. # Append build attempt to output directory.
if [ -z "${FLAGS_version}" ]; then if [ -z "${FLAGS_version}" ]; then
IMAGE_SUBDIR="${FLAGS_group}-${COREOS_VERSION}-a${FLAGS_build_attempt}" IMAGE_SUBDIR="${FLAGS_group}-${FLATCAR_VERSION}-a${FLAGS_build_attempt}"
else else
IMAGE_SUBDIR="${FLAGS_group}-${FLAGS_version}" IMAGE_SUBDIR="${FLAGS_group}-${FLAGS_version}"
fi fi
@ -66,7 +66,7 @@ extract_update() {
zip_update_tools() { zip_update_tools() {
# There isn't a 'dev' variant of this zip, so always call it production. # There isn't a 'dev' variant of this zip, so always call it production.
local update_zip="coreos_production_update.zip" local update_zip="flatcar_production_update.zip"
info "Generating update tools zip" info "Generating update tools zip"
# Make sure some vars this script needs are exported # Make sure some vars this script needs are exported
@ -460,9 +460,9 @@ finish_image() {
esac esac
# Copy kernel to support dm-verity boots # Copy kernel to support dm-verity boots
sudo mkdir -p "${root_fs_dir}/boot/coreos" sudo mkdir -p "${root_fs_dir}/boot/flatcar"
sudo cp "${root_fs_dir}/usr/boot/vmlinuz" \ sudo cp "${root_fs_dir}/usr/boot/vmlinuz" \
"${root_fs_dir}/boot/coreos/vmlinuz-a" "${root_fs_dir}/boot/flatcar/vmlinuz-a"
# Record directories installed to the state partition. # Record directories installed to the state partition.
# Explicitly ignore entries covered by existing configs. # Explicitly ignore entries covered by existing configs.
@ -483,14 +483,14 @@ finish_image() {
# Create first-boot flag for grub and Ignition # Create first-boot flag for grub and Ignition
info "Writing first-boot flag" info "Writing first-boot flag"
sudo_clobber "${root_fs_dir}/boot/coreos/first_boot" <<EOF sudo_clobber "${root_fs_dir}/boot/flatcar/first_boot" <<EOF
If this file exists, Ignition will run and then delete the file. If this file exists, Ignition will run and then delete the file.
EOF EOF
fi fi
if [[ -n "${FLAGS_developer_data}" ]]; then if [[ -n "${FLAGS_developer_data}" ]]; then
local data_path="/usr/share/coreos/developer_data" local data_path="/usr/share/flatcar/developer_data"
local unit_path="usr-share-coreos-developer_data" local unit_path="usr-share-flatcar-developer_data"
sudo cp "${FLAGS_developer_data}" "${root_fs_dir}/${data_path}" sudo cp "${FLAGS_developer_data}" "${root_fs_dir}/${data_path}"
systemd_enable "${root_fs_dir}" system-config.target \ systemd_enable "${root_fs_dir}" system-config.target \
"system-cloudinit@.service" "system-cloudinit@${unit_path}.service" "system-cloudinit@.service" "system-cloudinit@${unit_path}.service"
@ -529,7 +529,7 @@ EOF
# For amd64 the rdev error message is used. # For amd64 the rdev error message is used.
# Our modified GRUB extracts the hash and adds it to the cmdline. # Our modified GRUB extracts the hash and adds it to the cmdline.
printf %s "$(cat ${BUILD_DIR}/${image_name%.bin}_verity.txt)" | \ printf %s "$(cat ${BUILD_DIR}/${image_name%.bin}_verity.txt)" | \
sudo dd of="${root_fs_dir}/boot/coreos/vmlinuz-a" conv=notrunc \ sudo dd of="${root_fs_dir}/boot/flatcar/vmlinuz-a" conv=notrunc \
seek=${verity_offset} count=64 bs=1 status=none seek=${verity_offset} count=64 bs=1 status=none
fi fi
@ -537,22 +537,22 @@ EOF
if [[ ${COREOS_OFFICIAL:-0} -ne 1 ]]; then if [[ ${COREOS_OFFICIAL:-0} -ne 1 ]]; then
sudo sbsign --key /usr/share/sb_keys/DB.key \ sudo sbsign --key /usr/share/sb_keys/DB.key \
--cert /usr/share/sb_keys/DB.crt \ --cert /usr/share/sb_keys/DB.crt \
"${root_fs_dir}/boot/coreos/vmlinuz-a" "${root_fs_dir}/boot/flatcar/vmlinuz-a"
sudo mv "${root_fs_dir}/boot/coreos/vmlinuz-a.signed" \ sudo mv "${root_fs_dir}/boot/flatcar/vmlinuz-a.signed" \
"${root_fs_dir}/boot/coreos/vmlinuz-a" "${root_fs_dir}/boot/flatcar/vmlinuz-a"
fi fi
if [[ -n "${image_kernel}" ]]; then if [[ -n "${image_kernel}" ]]; then
# copying kernel from vfat so ignore the permissions # copying kernel from vfat so ignore the permissions
cp --no-preserve=mode \ cp --no-preserve=mode \
"${root_fs_dir}/boot/coreos/vmlinuz-a" \ "${root_fs_dir}/boot/flatcar/vmlinuz-a" \
"${BUILD_DIR}/${image_kernel}" "${BUILD_DIR}/${image_kernel}"
fi fi
if [[ -n "${pcr_policy}" ]]; then if [[ -n "${pcr_policy}" ]]; then
mkdir -p "${BUILD_DIR}/pcrs" mkdir -p "${BUILD_DIR}/pcrs"
${BUILD_LIBRARY_DIR}/generate_kernel_hash.sh \ ${BUILD_LIBRARY_DIR}/generate_kernel_hash.sh \
"${root_fs_dir}/boot/coreos/vmlinuz-a" ${COREOS_VERSION} \ "${root_fs_dir}/boot/flatcar/vmlinuz-a" ${FLATCAR_VERSION} \
>"${BUILD_DIR}/pcrs/kernel.config" >"${BUILD_DIR}/pcrs/kernel.config"
fi fi
@ -587,7 +587,7 @@ EOF
if [[ -n "${pcr_policy}" ]]; then if [[ -n "${pcr_policy}" ]]; then
${BUILD_LIBRARY_DIR}/generate_grub_hashes.py \ ${BUILD_LIBRARY_DIR}/generate_grub_hashes.py \
"${disk_img}" /usr/lib/grub/ "${BUILD_DIR}/pcrs" ${COREOS_VERSION} "${disk_img}" /usr/lib/grub/ "${BUILD_DIR}/pcrs" ${FLATCAR_VERSION}
info "Generating $pcr_policy" info "Generating $pcr_policy"
pushd "${BUILD_DIR}" >/dev/null pushd "${BUILD_DIR}" >/dev/null

View File

@ -12,7 +12,7 @@
: ${TYPE:="coreos-sdk"} : ${TYPE:="coreos-sdk"}
: ${ARCH:=$(get_sdk_arch)} : ${ARCH:=$(get_sdk_arch)}
: ${DEFAULT_CATALYST_ROOT:="${DEFAULT_BUILD_ROOT}/catalyst"} : ${DEFAULT_CATALYST_ROOT:="${DEFAULT_BUILD_ROOT}/catalyst"}
: ${DEFAULT_SEED:=${COREOS_SDK_TARBALL_PATH}} : ${DEFAULT_SEED:=${FLATCAR_SDK_TARBALL_PATH}}
: ${DEFAULT_PROFILE:=$(get_sdk_profile)} : ${DEFAULT_PROFILE:=$(get_sdk_profile)}
# Set to something like "stage4" to restrict what to build # Set to something like "stage4" to restrict what to build
# FORCE_STAGES= # FORCE_STAGES=
@ -34,7 +34,7 @@ DEFINE_string coreos_overlay "${SRC_ROOT}/third_party/coreos-overlay" \
"Path to the coreos-overlay git checkout." "Path to the coreos-overlay git checkout."
DEFINE_string seed_tarball "${DEFAULT_SEED}" \ DEFINE_string seed_tarball "${DEFAULT_SEED}" \
"Path to an existing stage tarball to start from." "Path to an existing stage tarball to start from."
DEFINE_string version "${COREOS_VERSION}" \ DEFINE_string version "${FLATCAR_VERSION}" \
"Version to use for portage snapshot and stage tarballs." "Version to use for portage snapshot and stage tarballs."
DEFINE_string profile "${DEFAULT_PROFILE}" \ DEFINE_string profile "${DEFAULT_PROFILE}" \
"Portage profile, may be prefixed with repo:" "Portage profile, may be prefixed with repo:"
@ -196,7 +196,7 @@ catalyst_init() {
DISTDIR="$CATALYST_ROOT/distfiles" DISTDIR="$CATALYST_ROOT/distfiles"
# automatically download the current SDK if it is the seed tarball. # automatically download the current SDK if it is the seed tarball.
if [[ "$FLAGS_seed_tarball" == "${COREOS_SDK_TARBALL_PATH}" ]]; then if [[ "$FLAGS_seed_tarball" == "${FLATCAR_SDK_TARBALL_PATH}" ]]; then
sdk_download_tarball sdk_download_tarball
fi fi

View File

@ -88,7 +88,9 @@ IGNORE_SYMLINK = (
b"/etc/motd", b"/etc/motd",
# Other # Other
b"/etc/lsb-release" # set later in the build process b"/etc/lsb-release", # set later in the build process
b"/usr/share/coreos", # set later in the build process
b"/etc/coreos" # set later in the build process
) )

View File

@ -45,11 +45,11 @@ configure_pvgrub() {
sudo_clobber "${GRUB_DIR}/menu.lst.A" <<EOF sudo_clobber "${GRUB_DIR}/menu.lst.A" <<EOF
timeout 0 timeout 0
title CoreOS A Root title Flatcar A Root
root (hd0,0) root (hd0,0)
kernel /syslinux/vmlinuz.A ${grub_args} ${slot_a_args} kernel /syslinux/vmlinuz.A ${grub_args} ${slot_a_args}
title CoreOS B Root title Flatcar B Root
root (hd0,0) root (hd0,0)
kernel /syslinux/vmlinuz.B ${grub_args} ${slot_b_args} kernel /syslinux/vmlinuz.B ${grub_args} ${slot_b_args}
EOF EOF

View File

@ -15,7 +15,7 @@ configure_dev_portage() {
sudo mkdir -p "$1/etc/portage/repos.conf" sudo mkdir -p "$1/etc/portage/repos.conf"
sudo_clobber "$1/etc/portage/make.conf" <<EOF sudo_clobber "$1/etc/portage/make.conf" <<EOF
# make.conf for CoreOS dev images # make.conf for Flatcar dev images
ARCH=$(get_board_arch $BOARD) ARCH=$(get_board_arch $BOARD)
CHOST=$(get_board_chost $BOARD) CHOST=$(get_board_chost $BOARD)
@ -25,8 +25,8 @@ PKGDIR="/var/lib/portage/pkgs"
PORT_LOGDIR="/var/log/portage" PORT_LOGDIR="/var/log/portage"
PORTDIR="/var/lib/portage/portage-stable" PORTDIR="/var/lib/portage/portage-stable"
PORTDIR_OVERLAY="/var/lib/portage/coreos-overlay" PORTDIR_OVERLAY="/var/lib/portage/coreos-overlay"
PORTAGE_BINHOST="http://builds.developer.core-os.net/boards/${BOARD}/${COREOS_VERSION_ID}/pkgs/ PORTAGE_BINHOST="http://builds.developer.core-os.net/boards/${BOARD}/${FLATCAR_VERSION_ID}/pkgs/
http://builds.developer.core-os.net/boards/${BOARD}/${COREOS_VERSION_ID}/toolchain/" http://builds.developer.core-os.net/boards/${BOARD}/${FLATCAR_VERSION_ID}/toolchain/"
EOF EOF
sudo_clobber "$1/etc/portage/repos.conf/coreos.conf" <<EOF sudo_clobber "$1/etc/portage/repos.conf/coreos.conf" <<EOF

View File

@ -131,7 +131,7 @@
"label":"ROOT", "label":"ROOT",
"fs_label":"ROOT", "fs_label":"ROOT",
"type":"4f68bce3-e8cd-4db1-96e7-fbcaf984b709", "type":"4f68bce3-e8cd-4db1-96e7-fbcaf984b709",
"blocks":"8388608" "blocks":"12582912"
} }
}, },
"interoute":{ "interoute":{

View File

@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# Expects BOARD, BUILD_DIR, BUILD_LIBRARY_DIR, and COREOS_VERSION in env. # Expects BOARD, BUILD_DIR, BUILD_LIBRARY_DIR, and FLATCAR_VERSION in env.
# Copied from create_prod_image() # Copied from create_prod_image()
create_ebuild_aci_image() { create_ebuild_aci_image() {
@ -59,7 +59,7 @@ ebuild_aci_create() {
local extra_version="${1?No extra version number given}"; shift local extra_version="${1?No extra version number given}"; shift
local pkg_files=( "${@}" ) local pkg_files=( "${@}" )
local staging_image="coreos_pkg_staging_aci_stage.bin" local staging_image="flatcar_pkg_staging_aci_stage.bin"
local ebuild_atom="=${pkg}-${version}" local ebuild_atom="=${pkg}-${version}"
@ -78,7 +78,7 @@ ebuild_aci_create() {
ebuild_aci_write_manifest \ ebuild_aci_write_manifest \
"${aciroot}/manifest" \ "${aciroot}/manifest" \
"${aci_name}" \ "${aci_name}" \
"${version}_coreos.${extra_version}" "${version}_flatcar.${extra_version}"
local pkg_files_in_rootfs=( "${pkg_files[@]/#/rootfs}" ) local pkg_files_in_rootfs=( "${pkg_files[@]/#/rootfs}" )

View File

@ -19,9 +19,9 @@ with open(filename, "rb") as f:
corelen = bytearray(diskboot)[508] | bytearray(diskboot)[509] << 8 corelen = bytearray(diskboot)[508] | bytearray(diskboot)[509] << 8
f.seek(bootoffset+512) f.seek(bootoffset+512)
core = f.read(corelen * 512) core = f.read(corelen * 512)
hashes = {"4": {"binaryvalues": [{"values": [{"value": hashlib.sha1(boot).hexdigest(), "description": "CoreOS Grub boot.img %s" % version}]}]}, hashes = {"4": {"binaryvalues": [{"values": [{"value": hashlib.sha1(boot).hexdigest(), "description": "Flatcar Grub boot.img %s" % version}]}]},
"8": {"binaryvalues" : [{"values": [{"value": hashlib.sha1(diskboot).hexdigest(), "description": "CoreOS Grub diskboot.img %s" % version}]}]}, "8": {"binaryvalues" : [{"values": [{"value": hashlib.sha1(diskboot).hexdigest(), "description": "Flatcar Grub diskboot.img %s" % version}]}]},
"9": {"binaryvalues": [{"values": [{"value": hashlib.sha1(core).hexdigest(), "description": "CoreOS Grub core.img %s" % version}]}]}} "9": {"binaryvalues": [{"values": [{"value": hashlib.sha1(core).hexdigest(), "description": "Flatcar Grub core.img %s" % version}]}]}}
with open(os.path.join(outputdir, "grub_loader.config"), "w") as f: with open(os.path.join(outputdir, "grub_loader.config"), "w") as f:
f.write(json.dumps(hashes, sort_keys=True)) f.write(json.dumps(hashes, sort_keys=True))
@ -33,25 +33,25 @@ for folder, subs, files in os.walk(grubdir):
with open(os.path.join(folder, filename), "rb") as f: with open(os.path.join(folder, filename), "rb") as f:
mod = f.read() mod = f.read()
value = hashlib.sha1(mod).hexdigest() value = hashlib.sha1(mod).hexdigest()
description = "CoreOS Grub %s %s" % (filename, version) description = "Flatcar Grub %s %s" % (filename, version)
hashvalues.append({"value": value, "description": description}) hashvalues.append({"value": value, "description": description})
with open(os.path.join(outputdir, "grub_modules.config"), "w") as f: with open(os.path.join(outputdir, "grub_modules.config"), "w") as f:
f.write(json.dumps({"9": {"binaryvalues": [{"prefix": "grub_module", "values": hashvalues}]}})) f.write(json.dumps({"9": {"binaryvalues": [{"prefix": "grub_module", "values": hashvalues}]}}))
with open(os.path.join(outputdir, "kernel_cmdline.config"), "w") as f: with open(os.path.join(outputdir, "kernel_cmdline.config"), "w") as f:
f.write(json.dumps({"8": {"asciivalues": [{"prefix": "grub_kernel_cmdline", "values": [{"value": "rootflags=rw mount.usrflags=ro BOOT_IMAGE=/coreos/vmlinuz-[ab] mount.usr=PARTUUID=\S{36} rootflags=rw mount.usrflags=ro consoleblank=0 root=LABEL=ROOT (console=\S+)? (coreos.autologin=\S+)? verity.usrhash=\\S{64}", "description": "CoreOS kernel command line %s" % version}]}]}})) f.write(json.dumps({"8": {"asciivalues": [{"prefix": "grub_kernel_cmdline", "values": [{"value": "rootflags=rw mount.usrflags=ro BOOT_IMAGE=/flatcar/vmlinuz-[ab] mount.usr=PARTUUID=\S{36} rootflags=rw mount.usrflags=ro consoleblank=0 root=LABEL=ROOT (console=\S+)? (flatcar.autologin=\S+)? verity.usrhash=\\S{64}", "description": "Flatcar kernel command line %s" % version}]}]}}))
commands = [{"value": '\[.*\]', "description": "CoreOS Grub configuration %s" % version}, commands = [{"value": '\[.*\]', "description": "Flatcar Grub configuration %s" % version},
{"value": 'gptprio.next -d usr -u usr_uuid', "description": "CoreOS Grub configuration %s" % version}, {"value": 'gptprio.next -d usr -u usr_uuid', "description": "Flatcar Grub configuration %s" % version},
{"value": 'insmod all_video', "description": "CoreOS Grub configuration %s" % version}, {"value": 'insmod all_video', "description": "Flatcar Grub configuration %s" % version},
{"value": 'linux /coreos/vmlinuz-[ab] rootflags=rw mount.usrflags=ro consoleblank=0 root=LABEL=ROOT (console=\S+)? (coreos.autologin=\S+)?', "description": "CoreOS Grub configuration %s" % version}, {"value": 'linux /flatcar/vmlinuz-[ab] rootflags=rw mount.usrflags=ro consoleblank=0 root=LABEL=ROOT (console=\S+)? (flatcar.autologin=\S+)?', "description": "Flatcar Grub configuration %s" % version},
{"value": 'menuentry CoreOS \S+ --id=coreos\S* {', "description": "CoreOS Grub configuration %s" % version}, {"value": 'menuentry Flatcar \S+ --id=flatcar\S* {', "description": "Flatcar Grub configuration %s" % version},
{"value": 'search --no-floppy --set randomize_disk_guid --disk-uuid 00000000-0000-0000-0000-000000000001', "description": "CoreOS Grub configuration %s" % version}, {"value": 'search --no-floppy --set randomize_disk_guid --disk-uuid 00000000-0000-0000-0000-000000000001', "description": "Flatcar Grub configuration %s" % version},
{"value": 'search --no-floppy --set oem --part-label OEM --hint hd0,gpt1', "description": "CoreOS Grub configuration %s" % version}, {"value": 'search --no-floppy --set oem --part-label OEM --hint hd0,gpt1', "description": "Flatcar Grub configuration %s" % version},
{"value": 'set .+', "description": "CoreOS Grub configuration %s" % version}, {"value": 'set .+', "description": "Flatcar Grub configuration %s" % version},
{"value": 'setparams CoreOS default', "description": "CoreOS Grub configuration %s" % version}, {"value": 'setparams Flatcar default', "description": "Flatcar Grub configuration %s" % version},
{"value": 'source (hd0,gpt6)/grub.cfg', "description": "CoreOS Grub configuration %s" % version}] {"value": 'source (hd0,gpt6)/grub.cfg', "description": "Flatcar Grub configuration %s" % version}]
with open(os.path.join(outputdir, "grub_commands.config"), "w") as f: with open(os.path.join(outputdir, "grub_commands.config"), "w") as f:
f.write(json.dumps({"8": {"asciivalues": [{"prefix": "grub_cmd", "values": commands}]}})) f.write(json.dumps({"8": {"asciivalues": [{"prefix": "grub_cmd", "values": commands}]}}))

View File

@ -10,4 +10,4 @@ version=sys.argv[2]
with open(path, "rb") as f: with open(path, "rb") as f:
kernel = f.read() kernel = f.read()
print json.dumps({"9": {"binaryvalues": [{"prefix": "grub_linux", "values": [{"value": hashlib.sha1(kernel).hexdigest(), "description": "coreos-%s" % version}]}]}}) print json.dumps({"9": {"binaryvalues": [{"prefix": "grub_linux", "values": [{"value": hashlib.sha1(kernel).hexdigest(), "description": "flatcar-%s" % version}]}]}})

View File

@ -1,17 +1,17 @@
# Main GRUB config # Main GRUB config
# Set the prefix back to the correct value after we're done with memdisk # Set the prefix back to the correct value after we're done with memdisk
set prefix=($root)/coreos/grub set prefix=($root)/flatcar/grub
# Load any and all video drivers. # Load any and all video drivers.
# Required under UEFI to boot Linux with a working console. # Required under UEFI to boot Linux with a working console.
insmod all_video insmod all_video
# Default menuentry id and boot timeout # Default menuentry id and boot timeout
set default="coreos" set default="flatcar"
set timeout=1 set timeout=1
# Default kernel args for root filesystem, console, and CoreOS. # Default kernel args for root filesystem, console, and Flatcar.
set linux_root="root=LABEL=ROOT" set linux_root="root=LABEL=ROOT"
set linux_console="" set linux_console=""
set first_boot="" set first_boot=""
@ -66,20 +66,20 @@ if [ "$secure_boot" = "0" ]; then
fi fi
# Determine if this is a first boot. # Determine if this is a first boot.
if [ -f "($root)/coreos/first_boot" ]; then if [ -f "($root)/flatcar/first_boot" ]; then
set first_boot="coreos.first_boot=detected" set first_boot="flatcar.first_boot=detected"
fi fi
# Determine if the disk GUID needs to be randomized. # Determine if the disk GUID needs to be randomized.
search --no-floppy --set randomize_disk_guid \ search --no-floppy --set randomize_disk_guid \
--disk-uuid 00000000-0000-0000-0000-000000000001 --disk-uuid 00000000-0000-0000-0000-000000000001
if [ -n "$randomize_disk_guid" ]; then if [ -n "$randomize_disk_guid" ]; then
set randomize_disk_guid="coreos.randomize_disk_guid=00000000-0000-0000-0000-000000000001" set randomize_disk_guid="flatcar.randomize_disk_guid=00000000-0000-0000-0000-000000000001"
fi fi
set oem="" set oem=""
if [ -n "$oem_id" ]; then if [ -n "$oem_id" ]; then
set oem="coreos.oem.id=$oem_id" set oem="flatcar.oem.id=$oem_id"
fi fi
# If no specific console has been set by the OEM then select based on # If no specific console has been set by the OEM then select based on
@ -122,28 +122,28 @@ function gptprio {
if [ $? -ne 0 -o -z "$usr_uuid" ]; then if [ $? -ne 0 -o -z "$usr_uuid" ]; then
echo echo
echo "Reading or updating the GPT failed!" echo "Reading or updating the GPT failed!"
echo "Please file a bug with any messages above to CoreOS:" echo "Please file a bug with any messages above to Flatcar:"
echo " https://issues.coreos.com" echo " https://issues.flatcar-linux.org"
abort abort
fi fi
set gptprio_cmdline="@@MOUNTUSR@@=PARTUUID=$usr_uuid" set gptprio_cmdline="@@MOUNTUSR@@=PARTUUID=$usr_uuid"
if [ "$usr_uuid" = "7130c94a-213a-4e5a-8e26-6cce9662f132" ]; then if [ "$usr_uuid" = "7130c94a-213a-4e5a-8e26-6cce9662f132" ]; then
set gptprio_kernel="/coreos/vmlinuz-a" set gptprio_kernel="/flatcar/vmlinuz-a"
else else
set gptprio_kernel="/coreos/vmlinuz-b" set gptprio_kernel="/flatcar/vmlinuz-b"
fi fi
} }
menuentry "CoreOS default" --id=coreos --unrestricted { menuentry "Flatcar default" --id=flatcar --unrestricted {
gptprio gptprio
linux$suf $gptprio_kernel $gptprio_cmdline $linux_cmdline linux$suf $gptprio_kernel $gptprio_cmdline $linux_cmdline
} }
menuentry "CoreOS USR-A" --id=coreos-a { menuentry "Flatcar USR-A" --id=flatcar-a {
linux$suf /coreos/vmlinuz-a @@MOUNTUSR@@=PARTLABEL=USR-A $linux_cmdline linux$suf /flatcar/vmlinuz-a @@MOUNTUSR@@=PARTLABEL=USR-A $linux_cmdline
} }
menuentry "CoreOS USR-B" --id=coreos-b { menuentry "Flatcar USR-B" --id=flatcar-b {
linux$suf /coreos/vmlinuz-b @@MOUNTUSR@@=PARTLABEL=USR-B $linux_cmdline linux$suf /flatcar/vmlinuz-b @@MOUNTUSR@@=PARTLABEL=USR-B $linux_cmdline
} }

View File

@ -36,8 +36,8 @@ switch_to_strict_mode
. "${BUILD_LIBRARY_DIR}/toolchain_util.sh" || exit 1 . "${BUILD_LIBRARY_DIR}/toolchain_util.sh" || exit 1
. "${BUILD_LIBRARY_DIR}/board_options.sh" || exit 1 . "${BUILD_LIBRARY_DIR}/board_options.sh" || exit 1
# Our GRUB lives under coreos/grub so new pygrub versions cannot find grub.cfg # Our GRUB lives under flatcar/grub so new pygrub versions cannot find grub.cfg
GRUB_DIR="coreos/grub/${FLAGS_target}" GRUB_DIR="flatcar/grub/${FLAGS_target}"
# GRUB install location inside the SDK # GRUB install location inside the SDK
GRUB_SRC="/usr/lib/grub/${FLAGS_target}" GRUB_SRC="/usr/lib/grub/${FLAGS_target}"
@ -138,7 +138,7 @@ EOF
# this because we need conflicting default behaviors between verity and # this because we need conflicting default behaviors between verity and
# non-verity images. # non-verity images.
GRUB_TEMP_DIR=$(mktemp -d) GRUB_TEMP_DIR=$(mktemp -d)
if [[ ! -f "${ESP_DIR}/coreos/grub/grub.cfg.tar" ]]; then if [[ ! -f "${ESP_DIR}/flatcar/grub/grub.cfg.tar" ]]; then
info "Generating grub.cfg memdisk" info "Generating grub.cfg memdisk"
if [[ ${FLAGS_verity} -eq ${FLAGS_TRUE} ]]; then if [[ ${FLAGS_verity} -eq ${FLAGS_TRUE} ]]; then
@ -152,7 +152,7 @@ if [[ ! -f "${ESP_DIR}/coreos/grub/grub.cfg.tar" ]]; then
sed 's/@@MOUNTUSR@@/mount.usr/' > "${GRUB_TEMP_DIR}/grub.cfg" sed 's/@@MOUNTUSR@@/mount.usr/' > "${GRUB_TEMP_DIR}/grub.cfg"
fi fi
sudo tar cf "${ESP_DIR}/coreos/grub/grub.cfg.tar" \ sudo tar cf "${ESP_DIR}/flatcar/grub/grub.cfg.tar" \
-C "${GRUB_TEMP_DIR}" "grub.cfg" -C "${GRUB_TEMP_DIR}" "grub.cfg"
fi fi
@ -162,7 +162,7 @@ sudo grub-mkimage \
--format "${FLAGS_target}" \ --format "${FLAGS_target}" \
--directory "${GRUB_SRC}" \ --directory "${GRUB_SRC}" \
--config "${ESP_DIR}/${GRUB_DIR}/load.cfg" \ --config "${ESP_DIR}/${GRUB_DIR}/load.cfg" \
--memdisk "${ESP_DIR}/coreos/grub/grub.cfg.tar" \ --memdisk "${ESP_DIR}/flatcar/grub/grub.cfg.tar" \
--output "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" \ --output "${ESP_DIR}/${GRUB_DIR}/${CORE_NAME}" \
"${CORE_MODULES[@]}" "${CORE_MODULES[@]}"

View File

@ -14,7 +14,7 @@ start_modify_image() {
FLAGS_from="$(readlink -f "${FLAGS_from}")" FLAGS_from="$(readlink -f "${FLAGS_from}")"
fi fi
local src_image="${FLAGS_from}/${COREOS_PRODUCTION_IMAGE_NAME}" local src_image="${FLAGS_from}/${FLATCAR_PRODUCTION_IMAGE_NAME}"
if [[ ! -f "${src_image}" ]]; then if [[ ! -f "${src_image}" ]]; then
die_notrace "Source image does not exist: ${src_image}" die_notrace "Source image does not exist: ${src_image}"
fi fi
@ -24,7 +24,7 @@ start_modify_image() {
die_notrace "Source version info does not exist: ${FLAGS_from}/version.txt" die_notrace "Source version info does not exist: ${FLAGS_from}/version.txt"
fi fi
source "${FLAGS_from}/version.txt" source "${FLAGS_from}/version.txt"
COREOS_VERSION_STRING="${COREOS_VERSION}" FLATCAR_VERSION_STRING="${FLATCAR_VERSION}"
# Load after version.txt to set the correct output paths # Load after version.txt to set the correct output paths
. "${BUILD_LIBRARY_DIR}/toolchain_util.sh" . "${BUILD_LIBRARY_DIR}/toolchain_util.sh"
@ -44,7 +44,7 @@ start_modify_image() {
fi fi
# Create the output directory and temporary mount points. # Create the output directory and temporary mount points.
DST_IMAGE="${BUILD_DIR}/${COREOS_PRODUCTION_IMAGE_NAME}" DST_IMAGE="${BUILD_DIR}/${FLATCAR_PRODUCTION_IMAGE_NAME}"
ROOT_FS_DIR="${BUILD_DIR}/rootfs" ROOT_FS_DIR="${BUILD_DIR}/rootfs"
mkdir -p "${ROOT_FS_DIR}" mkdir -p "${ROOT_FS_DIR}"
@ -52,10 +52,10 @@ start_modify_image() {
cp "${src_image}" "${DST_IMAGE}" cp "${src_image}" "${DST_IMAGE}"
# Copy all extra useful things, these do not need to be modified. # Copy all extra useful things, these do not need to be modified.
local update_prefix="${COREOS_PRODUCTION_IMAGE_NAME%_image.bin}_update" local update_prefix="${FLATCAR_PRODUCTION_IMAGE_NAME%_image.bin}_update"
local production_prefix="${COREOS_PRODUCTION_IMAGE_NAME%.bin}" local production_prefix="${FLATCAR_PRODUCTION_IMAGE_NAME%.bin}"
local container_prefix="${COREOS_DEVELOPER_CONTAINER_NAME%.bin}" local container_prefix="${FLATCAR_DEVELOPER_CONTAINER_NAME%.bin}"
local pcr_data="${COREOS_PRODUCTION_IMAGE_NAME%.bin}_pcr_policy.zip" local pcr_data="${FLATCAR_PRODUCTION_IMAGE_NAME%.bin}_pcr_policy.zip"
EXTRA_FILES=( EXTRA_FILES=(
"version.txt" "version.txt"
"${update_prefix}.bin" "${update_prefix}.bin"
@ -64,7 +64,7 @@ start_modify_image() {
"${production_prefix}_contents.txt" "${production_prefix}_contents.txt"
"${production_prefix}_packages.txt" "${production_prefix}_packages.txt"
"${production_prefix}_kernel_config.txt" "${production_prefix}_kernel_config.txt"
"${COREOS_DEVELOPER_CONTAINER_NAME}" "${FLATCAR_DEVELOPER_CONTAINER_NAME}"
"${container_prefix}_contents.txt" "${container_prefix}_contents.txt"
"${container_prefix}_packages.txt" "${container_prefix}_packages.txt"
) )

View File

@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
# Expects BOARD, BUILD_DIR, BUILD_LIBRARY_DIR, and COREOS_VERSION in env. # Expects BOARD, BUILD_DIR, BUILD_LIBRARY_DIR, and FLATCAR_VERSION in env.
# There must be a manifest template included with the ebuild at # There must be a manifest template included with the ebuild at
# files/manifest.in, which will have some variable values substituted before # files/manifest.in, which will have some variable values substituted before
@ -80,7 +80,7 @@ oem_aci_write_manifest() {
sudo cp "${manifest_template}" "${manifest}" sudo cp "${manifest_template}" "${manifest}"
sudo sed "${manifest}" -i \ sudo sed "${manifest}" -i \
-e "s,@ACI_NAME@,${name}," \ -e "s,@ACI_NAME@,${name}," \
-e "s,@ACI_VERSION@,${COREOS_VERSION}," \ -e "s,@ACI_VERSION@,${FLATCAR_VERSION}," \
-e "s,@ACI_ARCH@,${appc_arch}," -e "s,@ACI_ARCH@,${appc_arch},"
} }
@ -112,7 +112,7 @@ oem_aci_create() {
"coreos.com/oem-${oem}" "coreos.com/oem-${oem}"
# Write a tar ACI file containing the manifest and mounted rootfs contents. # Write a tar ACI file containing the manifest and mounted rootfs contents.
sudo tar -C "${aciroot}" -czf "${BUILD_DIR}/coreos-oem-${oem}.aci" \ sudo tar -C "${aciroot}" -czf "${BUILD_DIR}/flatcar-oem-${oem}.aci" \
manifest rootfs manifest rootfs
# Unmount the staging image, and delete it to save space. # Unmount the staging image, and delete it to save space.

View File

@ -201,7 +201,7 @@ if [ -n "${VM_PFLASH_RO}" ] && [ -n "${VM_PFLASH_RW}" ]; then
fi fi
if [ -n "${IGNITION_CONFIG_FILE}" ]; then if [ -n "${IGNITION_CONFIG_FILE}" ]; then
set -- -fw_cfg name=opt/com.coreos/config,file="${IGNITION_CONFIG_FILE}" "$@" set -- -fw_cfg name=opt/org.flatcar-linux/config,file="${IGNITION_CONFIG_FILE}" "$@"
fi fi
case "${VM_BOARD}" in case "${VM_BOARD}" in

View File

@ -11,8 +11,8 @@ UPLOAD_DEFAULT=${FLAGS_FALSE}
# Default upload root can be overridden from the environment. # Default upload root can be overridden from the environment.
_user="${USER}" _user="${USER}"
[[ ${USER} == "root" ]] && _user="${SUDO_USER}" [[ ${USER} == "root" ]] && _user="${SUDO_USER}"
: ${COREOS_UPLOAD_ROOT:=gs://users.developer.core-os.net/${_user}} : ${FLATCAR_UPLOAD_ROOT:=gs://users.developer.core-os.net/${_user}}
: ${COREOS_TORCX_UPLOAD_ROOT:=${COREOS_UPLOAD_ROOT}/torcx} : ${FLATCAR_TORCX_UPLOAD_ROOT:=${FLATCAR_UPLOAD_ROOT}/torcx}
unset _user unset _user
IMAGE_ZIPPER="lbzip2 --compress --keep" IMAGE_ZIPPER="lbzip2 --compress --keep"
@ -22,7 +22,7 @@ DEFINE_boolean parallel ${FLAGS_TRUE} \
"Enable parallelism in gsutil." "Enable parallelism in gsutil."
DEFINE_boolean upload ${UPLOAD_DEFAULT} \ DEFINE_boolean upload ${UPLOAD_DEFAULT} \
"Upload all packages/images via gsutil." "Upload all packages/images via gsutil."
DEFINE_string upload_root "${COREOS_UPLOAD_ROOT}" \ DEFINE_string upload_root "${FLATCAR_UPLOAD_ROOT}" \
"Upload prefix, board/version/etc will be appended. Must be a gs:// URL." "Upload prefix, board/version/etc will be appended. Must be a gs:// URL."
DEFINE_string upload_path "" \ DEFINE_string upload_path "" \
"Full upload path, overrides --upload_root. Must be a full gs:// URL." "Full upload path, overrides --upload_root. Must be a full gs:// URL."
@ -30,7 +30,7 @@ DEFINE_string download_root "" \
"HTTP download prefix, board/version/etc will be appended." "HTTP download prefix, board/version/etc will be appended."
DEFINE_string download_path "" \ DEFINE_string download_path "" \
"HTTP download path, overrides --download_root." "HTTP download path, overrides --download_root."
DEFINE_string torcx_upload_root "${COREOS_TORCX_UPLOAD_ROOT}" \ DEFINE_string torcx_upload_root "${FLATCAR_TORCX_UPLOAD_ROOT}" \
"Tectonic torcx package and manifest Upload prefix. Must be a gs:// URL." "Tectonic torcx package and manifest Upload prefix. Must be a gs:// URL."
DEFINE_string tectonic_torcx_download_root "" \ DEFINE_string tectonic_torcx_download_root "" \
"HTTP download prefix for tectonic torcx packages and manifests." "HTTP download prefix for tectonic torcx packages and manifests."
@ -155,7 +155,7 @@ upload_packages() {
[[ -n "${BOARD}" ]] || die "board_options.sh must be sourced first" [[ -n "${BOARD}" ]] || die "board_options.sh must be sourced first"
local board_packages="${1:-"${BOARD_ROOT}/packages"}" local board_packages="${1:-"${BOARD_ROOT}/packages"}"
local def_upload_path="${UPLOAD_ROOT}/boards/${BOARD}/${COREOS_VERSION}" local def_upload_path="${UPLOAD_ROOT}/boards/${BOARD}/${FLATCAR_VERSION}"
sign_and_upload_files packages ${def_upload_path} "pkgs/" \ sign_and_upload_files packages ${def_upload_path} "pkgs/" \
"${board_packages}"/* "${board_packages}"/*
} }
@ -214,7 +214,7 @@ upload_image() {
fi fi
local log_msg=$(basename "$digests" .DIGESTS) local log_msg=$(basename "$digests" .DIGESTS)
local def_upload_path="${UPLOAD_ROOT}/boards/${BOARD}/${COREOS_VERSION}" local def_upload_path="${UPLOAD_ROOT}/boards/${BOARD}/${FLATCAR_VERSION}"
sign_and_upload_files "${log_msg}" "${def_upload_path}" "" "${uploads[@]}" sign_and_upload_files "${log_msg}" "${def_upload_path}" "" "${uploads[@]}"
} }
@ -229,18 +229,21 @@ download_image_url() {
local download_root="${FLAGS_download_root:-${UPLOAD_ROOT}}" local download_root="${FLAGS_download_root:-${UPLOAD_ROOT}}"
local download_path local download_path
local download_channel
if [[ -n "${FLAGS_download_path}" ]]; then if [[ -n "${FLAGS_download_path}" ]]; then
download_path="${FLAGS_download_path%%/}" download_path="${FLAGS_download_path%%/}"
elif [[ "${download_root}" = *release.core-os.net* ]]; then elif [[ "${download_root}" == *flatcar-jenkins* ]]; then
download_channel="${download_root##*/}"
download_root="gs://${download_channel}.release.flatcar-linux.net"
# Official release download paths don't include the boards directory # Official release download paths don't include the boards directory
download_path="${download_root%%/}/${BOARD}/${COREOS_VERSION}" download_path="${download_root%%/}/${BOARD}/${FLATCAR_VERSION}"
else else
download_path="${download_root%%/}/boards/${BOARD}/${COREOS_VERSION}" download_path="${download_root%%/}/boards/${BOARD}/${FLATCAR_VERSION}"
fi fi
# Just in case download_root was set from UPLOAD_ROOT # Just in case download_root was set from UPLOAD_ROOT
if [[ "${download_path}" == gs://* ]]; then if [[ "${download_path}" == gs://* ]]; then
download_path="http://${download_path#gs://}" download_path="https://${download_path#gs://}"
fi fi
echo "${download_path}/$1" echo "${download_path}/$1"

View File

@ -25,52 +25,54 @@ ROOT_FS_DIR="$FLAGS_root"
[ -n "$ROOT_FS_DIR" ] || die "--root is required." [ -n "$ROOT_FS_DIR" ] || die "--root is required."
[ -d "$ROOT_FS_DIR" ] || die "Root FS does not exist? ($ROOT_FS_DIR)" [ -d "$ROOT_FS_DIR" ] || die "Root FS does not exist? ($ROOT_FS_DIR)"
OS_NAME="Container Linux by CoreOS" OS_NAME="Flatcar Linux by Kinvolk"
OS_CODENAME="Rhyolite" OS_CODENAME="Rhyolite"
OS_ID="coreos" OS_ID="flatcar"
OS_PRETTY_NAME="$OS_NAME $COREOS_VERSION (${OS_CODENAME})" OS_ID_LIKE="coreos"
OS_PRETTY_NAME="$OS_NAME $FLATCAR_VERSION (${OS_CODENAME})"
COREOS_APPID="{e96281a6-d1af-4bde-9a0a-97b76e56dc57}" FLATCAR_APPID="{e96281a6-d1af-4bde-9a0a-97b76e56dc57}"
# DISTRIB_* are the standard lsb-release names # DISTRIB_* are the standard lsb-release names
sudo mkdir -p "${ROOT_FS_DIR}/usr/share/coreos" "${ROOT_FS_DIR}/etc/coreos" sudo mkdir -p "${ROOT_FS_DIR}/usr/share/flatcar" "${ROOT_FS_DIR}/etc/flatcar"
sudo_clobber "${ROOT_FS_DIR}/usr/share/coreos/lsb-release" <<EOF sudo_clobber "${ROOT_FS_DIR}/usr/share/flatcar/lsb-release" <<EOF
DISTRIB_ID="$OS_NAME" DISTRIB_ID="$OS_NAME"
DISTRIB_RELEASE=$COREOS_VERSION DISTRIB_RELEASE=$FLATCAR_VERSION
DISTRIB_CODENAME="$OS_CODENAME" DISTRIB_CODENAME="$OS_CODENAME"
DISTRIB_DESCRIPTION="$OS_PRETTY_NAME" DISTRIB_DESCRIPTION="$OS_PRETTY_NAME"
EOF EOF
sudo ln -sf "../usr/share/coreos/lsb-release" "${ROOT_FS_DIR}/etc/lsb-release" sudo ln -sf "../usr/share/flatcar/lsb-release" "${ROOT_FS_DIR}/etc/lsb-release"
# And the new standard, os-release # And the new standard, os-release
# https://www.freedesktop.org/software/systemd/man/os-release.html # https://www.freedesktop.org/software/systemd/man/os-release.html
sudo_clobber "${ROOT_FS_DIR}/usr/lib/os-release" <<EOF sudo_clobber "${ROOT_FS_DIR}/usr/lib/os-release" <<EOF
NAME="$OS_NAME" NAME="$OS_NAME"
ID=$OS_ID ID=$OS_ID
VERSION=$COREOS_VERSION ID_LIKE=$OS_ID_LIKE
VERSION_ID=$COREOS_VERSION_ID VERSION=$FLATCAR_VERSION
BUILD_ID=$COREOS_BUILD_ID VERSION_ID=$FLATCAR_VERSION_ID
BUILD_ID=$FLATCAR_BUILD_ID
PRETTY_NAME="$OS_PRETTY_NAME" PRETTY_NAME="$OS_PRETTY_NAME"
ANSI_COLOR="38;5;75" ANSI_COLOR="38;5;75"
HOME_URL="https://coreos.com/" HOME_URL="https://flatcar-linux.org/"
BUG_REPORT_URL="https://issues.coreos.com" BUG_REPORT_URL="https://issues.flatcar-linux.org"
COREOS_BOARD="$FLAGS_board" FLATCAR_BOARD="$FLAGS_board"
EOF EOF
sudo ln -sf "../usr/lib/os-release" "${ROOT_FS_DIR}/etc/os-release" sudo ln -sf "../usr/lib/os-release" "${ROOT_FS_DIR}/etc/os-release"
sudo ln -sf "../../lib/os-release" "${ROOT_FS_DIR}/usr/share/coreos/os-release" sudo ln -sf "../../lib/os-release" "${ROOT_FS_DIR}/usr/share/flatcar/os-release"
# Create the defaults for the coreos configuration files in the usr directory # Create the defaults for the coreos configuration files in the usr directory
sudo_clobber "${ROOT_FS_DIR}/usr/share/coreos/release" <<EOF sudo_clobber "${ROOT_FS_DIR}/usr/share/flatcar/release" <<EOF
COREOS_RELEASE_VERSION=$COREOS_VERSION FLATCAR_RELEASE_VERSION=$FLATCAR_VERSION
COREOS_RELEASE_BOARD=$FLAGS_board FLATCAR_RELEASE_BOARD=$FLAGS_board
COREOS_RELEASE_APPID=$COREOS_APPID FLATCAR_RELEASE_APPID=$FLATCAR_APPID
EOF EOF
sudo_clobber "${ROOT_FS_DIR}/usr/share/coreos/update.conf" <<EOF sudo_clobber "${ROOT_FS_DIR}/usr/share/flatcar/update.conf" <<EOF
SERVER=https://public.update.core-os.net/v1/update/ SERVER=https://public.update.flatcar-linux.net/v1/update/
GROUP=$FLAGS_group GROUP=$FLAGS_group
EOF EOF
sudo_clobber "${ROOT_FS_DIR}/etc/coreos/update.conf" <<EOF sudo_clobber "${ROOT_FS_DIR}/etc/flatcar/update.conf" <<EOF
GROUP=$FLAGS_group GROUP=$FLAGS_group
EOF EOF

View File

@ -39,7 +39,6 @@ declare -r \
# Usage: get_portage_arch chost # Usage: get_portage_arch chost
get_portage_arch() { get_portage_arch() {
case "$1" in case "$1" in
aarch64*) echo arm64;;
alpha*) echo alpha;; alpha*) echo alpha;;
arm*) echo arm;; arm*) echo arm;;
hppa*) echo hppa;; hppa*) echo hppa;;
@ -139,14 +138,14 @@ get_board_binhost() {
shift shift
if [[ $# -eq 0 ]]; then if [[ $# -eq 0 ]]; then
set -- "${COREOS_SDK_VERSION}" "${COREOS_VERSION_ID}" set -- "${FLATCAR_SDK_VERSION}" "${FLATCAR_VERSION_ID}"
fi fi
for ver in "$@"; do for ver in "$@"; do
if [[ $toolchain_only -eq 0 ]]; then if [[ $toolchain_only -eq 0 ]]; then
echo "${COREOS_DEV_BUILDS}/boards/${board}/${ver}/pkgs/" echo "${FLATCAR_DEV_BUILDS}/boards/${board}/${ver}/pkgs/"
fi fi
echo "${COREOS_DEV_BUILDS}/boards/${board}/${ver}/toolchain/" echo "${FLATCAR_DEV_BUILDS}/boards/${board}/${ver}/toolchain/"
done done
} }
@ -168,12 +167,12 @@ get_sdk_libdir() {
get_sdk_binhost() { get_sdk_binhost() {
local arch=$(get_sdk_arch) ver local arch=$(get_sdk_arch) ver
if [[ $# -eq 0 ]]; then if [[ $# -eq 0 ]]; then
set -- "${COREOS_SDK_VERSION}" "${COREOS_VERSION_ID}" set -- "${FLATCAR_SDK_VERSION}" "${FLATCAR_VERSION_ID}"
fi fi
for ver in "$@"; do for ver in "$@"; do
echo "${COREOS_DEV_BUILDS}/sdk/${arch}/${ver}/pkgs/" echo "${FLATCAR_DEV_BUILDS}/sdk/${arch}/${ver}/pkgs/"
echo "${COREOS_DEV_BUILDS}/sdk/${arch}/${ver}/toolchain/" echo "${FLATCAR_DEV_BUILDS}/sdk/${arch}/${ver}/toolchain/"
done done
} }

View File

@ -352,7 +352,7 @@ set_vm_paths() {
VM_TMP_DIR="${dst_dir}/${dst_name}.vmtmpdir" VM_TMP_DIR="${dst_dir}/${dst_name}.vmtmpdir"
VM_TMP_IMG="${VM_TMP_DIR}/disk_image.bin" VM_TMP_IMG="${VM_TMP_DIR}/disk_image.bin"
VM_TMP_ROOT="${VM_TMP_DIR}/rootfs" VM_TMP_ROOT="${VM_TMP_DIR}/rootfs"
VM_NAME="$(_src_to_dst_name "${src_name}" "")-${COREOS_VERSION}" VM_NAME="$(_src_to_dst_name "${src_name}" "")-${FLATCAR_VERSION}"
VM_README="${dst_dir}/$(_src_to_dst_name "${src_name}" ".README")" VM_README="${dst_dir}/$(_src_to_dst_name "${src_name}" ".README")"
# Make VM_NAME safe for use as a hostname # Make VM_NAME safe for use as a hostname
@ -438,8 +438,8 @@ setup_disk_image() {
sudo mount -o remount,ro "${VM_TMP_ROOT}" sudo mount -o remount,ro "${VM_TMP_ROOT}"
VM_GROUP=$(grep --no-messages --no-filename ^GROUP= \ VM_GROUP=$(grep --no-messages --no-filename ^GROUP= \
"${VM_TMP_ROOT}/usr/share/coreos/update.conf" \ "${VM_TMP_ROOT}/usr/share/flatcar/update.conf" \
"${VM_TMP_ROOT}/etc/coreos/update.conf" | \ "${VM_TMP_ROOT}/etc/flatcar/update.conf" | \
tail -n 1 | sed -e 's/^GROUP=//') tail -n 1 | sed -e 's/^GROUP=//')
if [[ -z "${VM_GROUP}" ]]; then if [[ -z "${VM_GROUP}" ]]; then
die "Unable to determine update group for this image." die "Unable to determine update group for this image."
@ -483,7 +483,7 @@ install_oem_package() {
install_oem_aci() { install_oem_aci() {
local oem_aci=$(_get_vm_opt OEM_ACI) local oem_aci=$(_get_vm_opt OEM_ACI)
local aci_dir="${FLAGS_to}/oem-${oem_aci}-aci" local aci_dir="${FLAGS_to}/oem-${oem_aci}-aci"
local aci_path="${aci_dir}/coreos-oem-${oem_aci}.aci" local aci_path="${aci_dir}/flatcar-oem-${oem_aci}.aci"
local binpkgflags=(--nogetbinpkg) local binpkgflags=(--nogetbinpkg)
[ -n "${oem_aci}" ] || return 0 [ -n "${oem_aci}" ] || return 0
@ -503,7 +503,7 @@ install_oem_aci() {
info "Installing ${oem_aci} OEM ACI" info "Installing ${oem_aci} OEM ACI"
sudo install -Dpm 0644 \ sudo install -Dpm 0644 \
"${aci_path}" \ "${aci_path}" \
"${VM_TMP_ROOT}/usr/share/oem/coreos-oem-${oem_aci}.aci" || "${VM_TMP_ROOT}/usr/share/oem/flatcar-oem-${oem_aci}.aci" ||
die "Could not install ${oem_aci} OEM ACI" die "Could not install ${oem_aci} OEM ACI"
} }
@ -593,8 +593,8 @@ _write_cpio_common() {
echo "/.noupdate f 444 root root echo -n" >"${VM_TMP_DIR}/extra" echo "/.noupdate f 444 root root echo -n" >"${VM_TMP_DIR}/extra"
# Set correct group for PXE/ISO, which has no writeable /etc # Set correct group for PXE/ISO, which has no writeable /etc
echo /usr/share/coreos/update.conf f 644 root root \ echo /usr/share/flatcar/update.conf f 644 root root \
"sed -e 's/GROUP=.*$/GROUP=${VM_GROUP}/' ${base_dir}/share/coreos/update.conf" \ "sed -e 's/GROUP=.*$/GROUP=${VM_GROUP}/' ${base_dir}/share/flatcar/update.conf" \
>> "${VM_TMP_DIR}/extra" >> "${VM_TMP_DIR}/extra"
# Build the squashfs, embed squashfs into a gzipped cpio # Build the squashfs, embed squashfs into a gzipped cpio
@ -614,14 +614,14 @@ _write_cpio_disk() {
local grub_name="$(_dst_name "_grub.efi")" local grub_name="$(_dst_name "_grub.efi")"
_write_cpio_common $@ _write_cpio_common $@
# Pull the kernel and loader out of the filesystem # Pull the kernel and loader out of the filesystem
cp "${base_dir}"/boot/coreos/vmlinuz-a "${dst_dir}/${vmlinuz_name}" cp "${base_dir}"/boot/flatcar/vmlinuz-a "${dst_dir}/${vmlinuz_name}"
local grub_arch local grub_arch
case $BOARD in case $BOARD in
amd64-usr) grub_arch="x86_64-efi" ;; amd64-usr) grub_arch="x86_64-efi" ;;
esac esac
cp "${base_dir}/boot/coreos/grub/${grub_arch}/core.efi" "${dst_dir}/${grub_name}" cp "${base_dir}/boot/flatcar/grub/${grub_arch}/core.efi" "${dst_dir}/${grub_name}"
VM_GENERATED_FILES+=( "${dst_dir}/${vmlinuz_name}" "${dst_dir}/${grub_name}" ) VM_GENERATED_FILES+=( "${dst_dir}/${vmlinuz_name}" "${dst_dir}/${grub_name}" )
} }
@ -633,22 +633,22 @@ _write_iso_disk() {
mkdir "${iso_target}" mkdir "${iso_target}"
pushd "${iso_target}" >/dev/null pushd "${iso_target}" >/dev/null
mkdir isolinux syslinux coreos mkdir isolinux syslinux flatcar
_write_cpio_common "$1" "${iso_target}/coreos/cpio.gz" _write_cpio_common "$1" "${iso_target}/flatcar/cpio.gz"
cp "${base_dir}"/boot/vmlinuz "${iso_target}/coreos/vmlinuz" cp "${base_dir}"/boot/vmlinuz "${iso_target}/flatcar/vmlinuz"
cp -R /usr/share/syslinux/* isolinux/ cp -R /usr/share/syslinux/* isolinux/
cat<<EOF > isolinux/isolinux.cfg cat<<EOF > isolinux/isolinux.cfg
INCLUDE /syslinux/syslinux.cfg INCLUDE /syslinux/syslinux.cfg
EOF EOF
cat<<EOF > syslinux/syslinux.cfg cat<<EOF > syslinux/syslinux.cfg
default coreos default flatcar
prompt 1 prompt 1
timeout 15 timeout 15
label coreos label flatcar
menu default menu default
kernel /coreos/vmlinuz kernel /flatcar/vmlinuz
append initrd=/coreos/cpio.gz coreos.autologin append initrd=/flatcar/cpio.gz flatcar.autologin
EOF EOF
mkisofs -v -l -r -J -o $2 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table . mkisofs -v -l -r -J -o $2 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
isohybrid $2 isohybrid $2
@ -1091,10 +1091,10 @@ EOF
cat >"${json}" <<EOF cat >"${json}" <<EOF
{ {
"name": "coreos-${VM_GROUP}", "name": "flatcar-${VM_GROUP}",
"description": "CoreOS ${VM_GROUP}", "description": "Flatcar ${VM_GROUP}",
"versions": [{ "versions": [{
"version": "${COREOS_VERSION_ID}", "version": "${FLATCAR_VERSION_ID}",
"providers": [{ "providers": [{
"name": "${provider}", "name": "${provider}",
"url": "$(download_image_url "$(_dst_name ".box")")", "url": "$(download_image_url "$(_dst_name ".box")")",
@ -1186,7 +1186,7 @@ vm_upload() {
cp "${digests}.asc" "${legacy_digests}.asc" cp "${digests}.asc" "${legacy_digests}.asc"
fi fi
local def_upload_path="${UPLOAD_ROOT}/boards/${BOARD}/${COREOS_VERSION}" local def_upload_path="${UPLOAD_ROOT}/boards/${BOARD}/${FLATCAR_VERSION}"
upload_files "$(_dst_name)" "${def_upload_path}" "" "${legacy_uploads[@]}" upload_files "$(_dst_name)" "${def_upload_path}" "" "${legacy_uploads[@]}"
} }

View File

@ -190,7 +190,7 @@ function torcx_package() {
fi fi
tmpfile="${BUILD_DIR}/${name}:${version}.torcx.tgz" tmpfile="${BUILD_DIR}/${name}:${version}.torcx.tgz"
tar --force-local -C "${tmppkgroot}" -czf "${tmpfile}" . tar --force-local --selinux --xattrs -C "${tmppkgroot}" -czf "${tmpfile}" .
sha512sum=$(sha512sum "${tmpfile}" | awk '{print $1}') sha512sum=$(sha512sum "${tmpfile}" | awk '{print $1}')
# TODO(euank): this opaque digest, if it were reproducible, could save # TODO(euank): this opaque digest, if it were reproducible, could save
@ -277,7 +277,7 @@ done
# order to get signed. # order to get signed.
sign_and_upload_files \ sign_and_upload_files \
'torcx manifest' \ 'torcx manifest' \
"${UPLOAD_ROOT}/torcx/manifests/${BOARD}/${COREOS_VERSION}" \ "${UPLOAD_ROOT}/torcx/manifests/${BOARD}/${FLATCAR_VERSION}" \
"" \ "" \
"${manifest_path}" "${manifest_path}"

View File

@ -233,7 +233,7 @@ get_gclient_root() {
# Populate the ENVIRONMENT_WHITELIST array. # Populate the ENVIRONMENT_WHITELIST array.
load_environment_whitelist() { load_environment_whitelist() {
ENVIRONMENT_WHITELIST=( ENVIRONMENT_WHITELIST=(
COREOS_BUILD_ID FLATCAR_BUILD_ID
COREOS_OFFICIAL COREOS_OFFICIAL
GIT_AUTHOR_EMAIL GIT_AUTHOR_EMAIL
GIT_AUTHOR_NAME GIT_AUTHOR_NAME
@ -287,39 +287,39 @@ BUILD_LIBRARY_DIR="${SCRIPTS_DIR}/build_library"
REPO_CACHE_DIR="${REPO_ROOT}/.cache" REPO_CACHE_DIR="${REPO_ROOT}/.cache"
REPO_MANIFESTS_DIR="${REPO_ROOT}/.repo/manifests" REPO_MANIFESTS_DIR="${REPO_ROOT}/.repo/manifests"
# Source COREOS_VERSION_ID from manifest. # Source FLATCAR_VERSION_ID from manifest.
if [[ -f "${REPO_MANIFESTS_DIR}/version.txt" ]]; then if [[ -f "${REPO_MANIFESTS_DIR}/version.txt" ]]; then
# The build id may be provided externally by the build system. # The build id may be provided externally by the build system.
if [[ -n ${COREOS_BUILD_ID} ]]; then if [[ -n ${FLATCAR_BUILD_ID} ]]; then
load_environment_var "${REPO_MANIFESTS_DIR}/version.txt" \ load_environment_var "${REPO_MANIFESTS_DIR}/version.txt" \
COREOS_VERSION_ID COREOS_SDK_VERSION FLATCAR_VERSION_ID FLATCAR_SDK_VERSION
else else
load_environment_var "${REPO_MANIFESTS_DIR}/version.txt" \ load_environment_var "${REPO_MANIFESTS_DIR}/version.txt" \
COREOS_VERSION_ID COREOS_BUILD_ID COREOS_SDK_VERSION FLATCAR_VERSION_ID FLATCAR_BUILD_ID FLATCAR_SDK_VERSION
# Don't promote COREOS_BUILD_ID into an environment variable when it # Don't promote FLATCAR_BUILD_ID into an environment variable when it
# didn't start as one, since we don't want it leaking into the SDK # didn't start as one, since we don't want it leaking into the SDK
# chroot environment via ENVIRONMENT_WHITELIST. # chroot environment via ENVIRONMENT_WHITELIST.
declare +x COREOS_BUILD_ID declare +x FLATCAR_BUILD_ID
fi fi
: ${COREOS_BUILD_ID:=$(date +%Y-%m-%d-%H%M)} : ${FLATCAR_BUILD_ID:=$(date +%Y-%m-%d-%H%M)}
elif [[ -f "${SCRIPT_LOCATION}/version.txt" ]]; then elif [[ -f "${SCRIPT_LOCATION}/version.txt" ]]; then
# This only happens in update.zip where we must use the current build id. # This only happens in update.zip where we must use the current build id.
load_environment_var "${SCRIPT_LOCATION}/version.txt" \ load_environment_var "${SCRIPT_LOCATION}/version.txt" \
COREOS_VERSION_ID COREOS_BUILD_ID COREOS_SDK_VERSION FLATCAR_VERSION_ID FLATCAR_BUILD_ID FLATCAR_SDK_VERSION
else else
die "Unable to locate version.txt" die "Unable to locate version.txt"
fi fi
# Official builds must set COREOS_OFFICIAL=1 to use an official version. # Official builds must set COREOS_OFFICIAL=1 to use an official version.
# Unofficial builds always appended the build identifier. # Unofficial builds always appended the build identifier.
if [[ ${COREOS_OFFICIAL:-0} -ne 1 && -n "${COREOS_BUILD_ID}" ]]; then if [[ ${COREOS_OFFICIAL:-0} -ne 1 && -n "${FLATCAR_BUILD_ID}" ]]; then
COREOS_VERSION="${COREOS_VERSION_ID}+${COREOS_BUILD_ID}" FLATCAR_VERSION="${FLATCAR_VERSION_ID}+${FLATCAR_BUILD_ID}"
else else
COREOS_VERSION="${COREOS_VERSION_ID}" FLATCAR_VERSION="${FLATCAR_VERSION_ID}"
fi fi
# Compatibility alias # Compatibility alias
COREOS_VERSION_STRING="${COREOS_VERSION}" FLATCAR_VERSION_STRING="${FLATCAR_VERSION}"
# Calculate what today's build version should be, used by release # Calculate what today's build version should be, used by release
# scripts to provide a reasonable default value. The value is the number # scripts to provide a reasonable default value. The value is the number
@ -328,7 +328,7 @@ readonly COREOS_EPOCH=1372636800
TODAYS_VERSION=$(( (`date +%s` - ${COREOS_EPOCH}) / 86400 )) TODAYS_VERSION=$(( (`date +%s` - ${COREOS_EPOCH}) / 86400 ))
# Download URL prefix for SDK and board binary packages # Download URL prefix for SDK and board binary packages
: ${COREOS_DEV_BUILDS:=http://builds.developer.core-os.net} : ${FLATCAR_DEV_BUILDS:=https://storage.googleapis.com/flatcar-jenkins}
# Load developer's custom settings. Default location is in scripts dir, # Load developer's custom settings. Default location is in scripts dir,
# since that's available both inside and outside the chroot. By convention, # since that's available both inside and outside the chroot. By convention,
@ -391,8 +391,8 @@ fi
BUILD_DIR= BUILD_DIR=
# Standard filenames # Standard filenames
COREOS_DEVELOPER_CONTAINER_NAME="coreos_developer_container.bin" FLATCAR_DEVELOPER_CONTAINER_NAME="flatcar_developer_container.bin"
COREOS_PRODUCTION_IMAGE_NAME="coreos_production_image.bin" FLATCAR_PRODUCTION_IMAGE_NAME="flatcar_production_image.bin"
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Functions # Functions

View File

@ -4,16 +4,16 @@ VERSION_ID=stable
USAGE="Usage: $0 [-V version] [-d /target/path] USAGE="Usage: $0 [-V version] [-d /target/path]
Options: Options:
-d DEST Create CoreOS VDI image to the given path. -d DEST Create Flatcar VDI image to the given path.
-V VERSION Version to install (e.g. alpha) [default: ${VERSION_ID}] -V VERSION Version to install (e.g. alpha) [default: ${VERSION_ID}]
-h This help -h This help
This tool creates a CoreOS VDI image to be used with VirtualBox. This tool creates a Flatcar VDI image to be used with VirtualBox.
" "
# Image signing key: buildbot@coreos.com # Image signing key: buildbot@flatcar-linux.org
GPG_KEY_URL="https://coreos.com/security/image-signing-key/CoreOS_Image_Signing_Key.pem" GPG_KEY_URL="https://flatcar-linux.org/security/image-signing-key/Flatcar_Image_Signing_Key.pem"
GPG_LONG_ID="50E0885593D2DCB4" GPG_LONG_ID="E25D9AED0593B34A"
GPG_KEY="$(wget -qO- $GPG_KEY_URL)" GPG_KEY="$(wget -qO- $GPG_KEY_URL)"
while getopts "V:d:a:h" OPTION while getopts "V:d:a:h" OPTION
@ -52,15 +52,15 @@ WORKDIR="${DEST}/tmp.${RANDOM}"
mkdir "$WORKDIR" mkdir "$WORKDIR"
trap "rm -rf '${WORKDIR}'" EXIT trap "rm -rf '${WORKDIR}'" EXIT
RAW_IMAGE_NAME="coreos_production_image.bin" RAW_IMAGE_NAME="flatcar_production_image.bin"
IMAGE_NAME="${RAW_IMAGE_NAME}.bz2" IMAGE_NAME="${RAW_IMAGE_NAME}.bz2"
DIGESTS_NAME="${IMAGE_NAME}.DIGESTS.asc" DIGESTS_NAME="${IMAGE_NAME}.DIGESTS.asc"
case ${VERSION_ID} in case ${VERSION_ID} in
stable) BASE_URL="https://stable.release.core-os.net/amd64-usr/current" ;; stable) BASE_URL="https://stable.release.flatcar-linux.net/amd64-usr/current" ;;
alpha) BASE_URL="https://alpha.release.core-os.net/amd64-usr/current" ;; alpha) BASE_URL="https://alpha.release.flatcar-linux.net/amd64-usr/current" ;;
beta) BASE_URL="https://beta.release.core-os.net/amd64-usr/current" ;; beta) BASE_URL="https://beta.release.flatcar-linux.net/amd64-usr/current" ;;
*) BASE_URL="https://alpha.release.core-os.net/amd64-usr/${VERSION_ID}" ;; *) BASE_URL="https://alpha.release.flatcar-linux.net/amd64-usr/${VERSION_ID}" ;;
esac esac
IMAGE_URL="${BASE_URL}/${IMAGE_NAME}" IMAGE_URL="${BASE_URL}/${IMAGE_NAME}"
@ -77,12 +77,12 @@ if ! wget --spider --quiet "${DIGESTS_URL}"; then
exit 1 exit 1
fi fi
# Gets CoreOS verion from version.txt file # Gets Flatcar verion from version.txt file
VERSION_NAME="version.txt" VERSION_NAME="version.txt"
VERSION_URL="${BASE_URL}/${VERSION_NAME}" VERSION_URL="${BASE_URL}/${VERSION_NAME}"
wget --no-verbose -O "${WORKDIR}/${VERSION_NAME}" "${VERSION_URL}" wget --no-verbose -O "${WORKDIR}/${VERSION_NAME}" "${VERSION_URL}"
. "${WORKDIR}/${VERSION_NAME}" . "${WORKDIR}/${VERSION_NAME}"
VDI_IMAGE_NAME="coreos_production_${COREOS_BUILD}.${COREOS_BRANCH}.${COREOS_PATCH}.vdi" VDI_IMAGE_NAME="flatcar_production_${FLATCAR_BUILD}.${FLATCAR_BRANCH}.${FLATCAR_PATCH}.vdi"
VDI_IMAGE="${DEST}/${VDI_IMAGE_NAME}" VDI_IMAGE="${DEST}/${VDI_IMAGE_NAME}"
# Setup GnuPG for verifying the image signature # Setup GnuPG for verifying the image signature
@ -118,6 +118,6 @@ VBoxManage convertdd "${DOWN_IMAGE}" "${VDI_IMAGE}" --format VDI
rm -rf "${WORKDIR}" rm -rf "${WORKDIR}"
trap - EXIT trap - EXIT
echo "Success! CoreOS ${VERSION_ID} VDI image was created on ${VDI_IMAGE_NAME}" echo "Success! Flatcar ${VERSION_ID} VDI image was created on ${VDI_IMAGE_NAME}"
# vim: ts=4 et # vim: ts=4 et

View File

@ -35,7 +35,7 @@ case "$1" in
v="$1" v="$1"
shift shift
else else
v="${COREOS_VERSION}" v="${FLATCAR_VERSION}"
fi fi
# strip of a v prefix or .0.0 suffix # strip of a v prefix or .0.0 suffix

View File

@ -12,7 +12,7 @@ export GCLIENT_ROOT=$(readlink -f "${SCRIPT_ROOT}/../../")
DEFINE_string board "amd64-usr" \ DEFINE_string board "amd64-usr" \
"Board type of the image" "Board type of the image"
DEFINE_string version "${COREOS_VERSION}" \ DEFINE_string version "${FLATCAR_VERSION}" \
"Version number to promote." "Version number to promote."
DEFINE_string build_storage "gs://builds.release.core-os.net" \ DEFINE_string build_storage "gs://builds.release.core-os.net" \

View File

@ -14,7 +14,7 @@ DEFINE_string board "amd64-usr" \
"Board type of the image" "Board type of the image"
DEFINE_string payload "coreos_production_update.gz" \ DEFINE_string payload "coreos_production_update.gz" \
"Path to the update payload" "Path to the update payload"
DEFINE_string version "${COREOS_VERSION}" \ DEFINE_string version "${FLATCAR_VERSION}" \
"Version number of this build." "Version number of this build."
DEFINE_string app_id "e96281a6-d1af-4bde-9a0a-97b76e56dc57" \ DEFINE_string app_id "e96281a6-d1af-4bde-9a0a-97b76e56dc57" \
"CoreOS AppId in roller." "CoreOS AppId in roller."

View File

@ -28,7 +28,7 @@ DEFINE_string board "${DEFAULT_BOARD}" \
DEFINE_string disk_layout "base" \ DEFINE_string disk_layout "base" \
"The disk layout type to use for this image." "The disk layout type to use for this image."
DEFINE_string from "" \ DEFINE_string from "" \
"Directory containing ${COREOS_PRODUCTION_IMAGE_NAME}" "Directory containing ${FLATCAR_PRODUCTION_IMAGE_NAME}"
DEFINE_string output_root "${DEFAULT_BUILD_ROOT}/images" \ DEFINE_string output_root "${DEFAULT_BUILD_ROOT}/images" \
"Directory in which to place image result directories (named by version)" "Directory in which to place image result directories (named by version)"
DEFINE_boolean replace ${FLAGS_FALSE} \ DEFINE_boolean replace ${FLAGS_FALSE} \
@ -74,7 +74,7 @@ do_copy() {
start_modify_image start_modify_image
if [[ -n "${FLAGS_kernel_path}" ]]; then if [[ -n "${FLAGS_kernel_path}" ]]; then
do_copy "${FLAGS_kernel_path}" "/boot/coreos/vmlinuz-a" do_copy "${FLAGS_kernel_path}" "/boot/flatcar/vmlinuz-a"
fi fi
if [[ -n "${FLAGS_efi_grub_path}" ]]; then if [[ -n "${FLAGS_efi_grub_path}" ]]; then

View File

@ -20,7 +20,7 @@ DEFINE_string board "${DEFAULT_BOARD}" \
DEFINE_string disk_layout "base" \ DEFINE_string disk_layout "base" \
"The disk layout type to use for this image." "The disk layout type to use for this image."
DEFINE_string from "" \ DEFINE_string from "" \
"Directory containing ${COREOS_PRODUCTION_IMAGE_NAME}" "Directory containing ${FLATCAR_PRODUCTION_IMAGE_NAME}"
DEFINE_string output_root "${DEFAULT_BUILD_ROOT}/images" \ DEFINE_string output_root "${DEFAULT_BUILD_ROOT}/images" \
"Directory in which to place image result directories (named by version)" "Directory in which to place image result directories (named by version)"
DEFINE_boolean replace ${FLAGS_FALSE} \ DEFINE_boolean replace ${FLAGS_FALSE} \
@ -56,9 +56,9 @@ fi
start_modify_image start_modify_image
info "Replacing /etc/coreos/update.conf" info "Replacing /etc/flatcar/update.conf"
sudo mkdir -p "${ROOT_FS_DIR}/etc/coreos" sudo mkdir -p "${ROOT_FS_DIR}/etc/flatcar"
sudo_clobber "${ROOT_FS_DIR}/etc/coreos/update.conf" <<EOF sudo_clobber "${ROOT_FS_DIR}/etc/flatcar/update.conf" <<EOF
GROUP=${FLAGS_group} GROUP=${FLAGS_group}
EOF EOF

View File

@ -31,7 +31,7 @@ DEFINE_string board "${DEFAULT_BOARD}" \
DEFINE_string format "" \ DEFINE_string format "" \
"Output format, one of: ${VALID_IMG_TYPES[*]}" "Output format, one of: ${VALID_IMG_TYPES[*]}"
DEFINE_string from "" \ DEFINE_string from "" \
"Directory containing coreos_production_image.bin." "Directory containing flatcar_production_image.bin."
DEFINE_string disk_layout "" \ DEFINE_string disk_layout "" \
"The disk layout type to use for this image." "The disk layout type to use for this image."
DEFINE_integer mem "${DEFAULT_MEM}" \ DEFINE_integer mem "${DEFAULT_MEM}" \
@ -102,10 +102,10 @@ FLAGS_to=`eval readlink -f $FLAGS_to`
# If source includes version.txt switch to its version information # If source includes version.txt switch to its version information
if [ -f "${FLAGS_from}/version.txt" ]; then if [ -f "${FLAGS_from}/version.txt" ]; then
source "${FLAGS_from}/version.txt" source "${FLAGS_from}/version.txt"
COREOS_VERSION_STRING="${COREOS_VERSION}" FLATCAR_VERSION_STRING="${FLATCAR_VERSION}"
fi fi
set_vm_paths "${FLAGS_from}" "${FLAGS_to}" "${COREOS_PRODUCTION_IMAGE_NAME}" set_vm_paths "${FLAGS_from}" "${FLAGS_to}" "${FLATCAR_PRODUCTION_IMAGE_NAME}"
# Make sure things are cleaned up on failure # Make sure things are cleaned up on failure
trap vm_cleanup EXIT trap vm_cleanup EXIT

View File

@ -11,7 +11,7 @@ enter() {
verify_key=--verify-key=/etc/portage/gangue.asc verify_key=--verify-key=/etc/portage/gangue.asc
sudo ln -f "${GS_DEVEL_CREDS}" chroot/etc/portage/gangue.json sudo ln -f "${GS_DEVEL_CREDS}" chroot/etc/portage/gangue.json
bin/cork enter --bind-gpg-agent=false -- env \ bin/cork enter --bind-gpg-agent=false -- env \
COREOS_DEV_BUILDS="${DOWNLOAD_ROOT}" \ FLATCAR_DEV_BUILDS="${DOWNLOAD_ROOT}" \
{FETCH,RESUME}COMMAND_GS="/usr/bin/gangue get \ {FETCH,RESUME}COMMAND_GS="/usr/bin/gangue get \
--json-key=/etc/portage/gangue.json $verify_key \ --json-key=/etc/portage/gangue.json $verify_key \
"'"${URI}" "${DISTDIR}/${FILE}"' \ "'"${URI}" "${DISTDIR}/${FILE}"' \
@ -23,14 +23,14 @@ script() {
} }
source .repo/manifests/version.txt source .repo/manifests/version.txt
export COREOS_BUILD_ID export FLATCAR_BUILD_ID
# Set up GPG for signing uploads. # Set up GPG for signing uploads.
gpg --import "${GPG_SECRET_KEY_FILE}" gpg --import "${GPG_SECRET_KEY_FILE}"
script setup_board \ script setup_board \
--board="${BOARD}" \ --board="${BOARD}" \
--getbinpkgver="${COREOS_VERSION}" \ --getbinpkgver="${FLATCAR_VERSION}" \
--regen_configs_only --regen_configs_only
if [ "x${COREOS_OFFICIAL}" == x1 ] if [ "x${COREOS_OFFICIAL}" == x1 ]
@ -43,7 +43,7 @@ fi
# Retrieve this version's torcx manifest # Retrieve this version's torcx manifest
mkdir -p torcx/pkgs mkdir -p torcx/pkgs
enter gsutil cp -r \ enter gsutil cp -r \
"${DOWNLOAD_ROOT}/torcx/manifests/${BOARD}/${COREOS_VERSION}/torcx_manifest.json"{,.sig} \ "${DOWNLOAD_ROOT}/torcx/manifests/${BOARD}/${FLATCAR_VERSION}/torcx_manifest.json"{,.sig} \
/mnt/host/source/torcx/ /mnt/host/source/torcx/
gpg --verify torcx/torcx_manifest.json.sig gpg --verify torcx/torcx_manifest.json.sig
@ -67,7 +67,7 @@ script build_image \
--board="${BOARD}" \ --board="${BOARD}" \
--group="${GROUP}" \ --group="${GROUP}" \
--getbinpkg \ --getbinpkg \
--getbinpkgver="${COREOS_VERSION}" \ --getbinpkgver="${FLATCAR_VERSION}" \
--sign="${SIGNING_USER}" \ --sign="${SIGNING_USER}" \
--sign_digests="${SIGNING_USER}" \ --sign_digests="${SIGNING_USER}" \
--torcx_manifest=/mnt/host/source/torcx/torcx_manifest.json \ --torcx_manifest=/mnt/host/source/torcx/torcx_manifest.json \

View File

@ -15,7 +15,7 @@ enter() {
bin/cork enter --bind-gpg-agent=false -- env \ bin/cork enter --bind-gpg-agent=false -- env \
CCACHE_DIR=/mnt/host/source/ccache \ CCACHE_DIR=/mnt/host/source/ccache \
CCACHE_MAXSIZE=5G \ CCACHE_MAXSIZE=5G \
COREOS_DEV_BUILDS="${DOWNLOAD_ROOT}" \ FLATCAR_DEV_BUILDS="${DOWNLOAD_ROOT}" \
{FETCH,RESUME}COMMAND_GS="/usr/bin/gangue get \ {FETCH,RESUME}COMMAND_GS="/usr/bin/gangue get \
--json-key=/etc/portage/gangue.json $verify_key \ --json-key=/etc/portage/gangue.json $verify_key \
"'"${URI}" "${DISTDIR}/${FILE}"' \ "'"${URI}" "${DISTDIR}/${FILE}"' \
@ -27,7 +27,7 @@ script() {
} }
source .repo/manifests/version.txt source .repo/manifests/version.txt
export COREOS_BUILD_ID export FLATCAR_BUILD_ID
# Set up GPG for signing uploads. # Set up GPG for signing uploads.
gpg --import "${GPG_SECRET_KEY_FILE}" gpg --import "${GPG_SECRET_KEY_FILE}"
@ -37,13 +37,13 @@ enter ccache --zero-stats
script setup_board \ script setup_board \
--board="${BOARD}" \ --board="${BOARD}" \
--getbinpkgver=${RELEASE_BASE:-"${COREOS_VERSION}" --toolchainpkgonly} \ --getbinpkgver=${RELEASE_BASE:-"${FLATCAR_VERSION}" --toolchainpkgonly} \
--skip_chroot_upgrade \ --skip_chroot_upgrade \
--force --force
script build_packages \ script build_packages \
--board="${BOARD}" \ --board="${BOARD}" \
--getbinpkgver=${RELEASE_BASE:-"${COREOS_VERSION}" --toolchainpkgonly} \ --getbinpkgver=${RELEASE_BASE:-"${FLATCAR_VERSION}" --toolchainpkgonly} \
--skip_chroot_upgrade \ --skip_chroot_upgrade \
--skip_torcx_store \ --skip_torcx_store \
--sign="${SIGNING_USER}" \ --sign="${SIGNING_USER}" \

View File

@ -5,7 +5,7 @@ enter() {
} }
source .repo/manifests/version.txt source .repo/manifests/version.txt
export COREOS_BUILD_ID export FLATCAR_BUILD_ID
# Set up GPG for signing uploads. # Set up GPG for signing uploads.
gpg --import "${GPG_SECRET_KEY_FILE}" gpg --import "${GPG_SECRET_KEY_FILE}"

View File

@ -5,7 +5,7 @@ enter() {
} }
source .repo/manifests/version.txt source .repo/manifests/version.txt
export COREOS_BUILD_ID export FLATCAR_BUILD_ID
# Set up GPG for signing uploads. # Set up GPG for signing uploads.
gpg --import "${GPG_SECRET_KEY_FILE}" gpg --import "${GPG_SECRET_KEY_FILE}"

View File

@ -11,7 +11,7 @@ enter() {
verify_key=--verify-key=/etc/portage/gangue.asc verify_key=--verify-key=/etc/portage/gangue.asc
sudo ln -f "${GS_DEVEL_CREDS}" chroot/etc/portage/gangue.json sudo ln -f "${GS_DEVEL_CREDS}" chroot/etc/portage/gangue.json
bin/cork enter --bind-gpg-agent=false -- env \ bin/cork enter --bind-gpg-agent=false -- env \
COREOS_DEV_BUILDS="${GS_DEVEL_ROOT}" \ FLATCAR_DEV_BUILDS="${GS_DEVEL_ROOT}" \
{FETCH,RESUME}COMMAND_GS="/usr/bin/gangue get \ {FETCH,RESUME}COMMAND_GS="/usr/bin/gangue get \
--json-key=/etc/portage/gangue.json $verify_key \ --json-key=/etc/portage/gangue.json $verify_key \
"'"${URI}" "${DISTDIR}/${FILE}"' \ "'"${URI}" "${DISTDIR}/${FILE}"' \
@ -23,7 +23,7 @@ script() {
} }
source .repo/manifests/version.txt source .repo/manifests/version.txt
export COREOS_BUILD_ID export FLATCAR_BUILD_ID
# Set up GPG for signing uploads. # Set up GPG for signing uploads.
gpg --import "${GPG_SECRET_KEY_FILE}" gpg --import "${GPG_SECRET_KEY_FILE}"
@ -32,13 +32,13 @@ gpg --import "${GPG_SECRET_KEY_FILE}"
mkdir -p src tmp mkdir -p src tmp
bin/cork download-image \ bin/cork download-image \
--root="${UPLOAD_ROOT}/boards/${BOARD}/${COREOS_VERSION}" \ --root="${UPLOAD_ROOT}/boards/${BOARD}/${FLATCAR_VERSION}" \
--json-key="${GOOGLE_APPLICATION_CREDENTIALS}" \ --json-key="${GOOGLE_APPLICATION_CREDENTIALS}" \
--cache-dir=./src \ --cache-dir=./src \
--platform=qemu \ --platform=qemu \
--verify=true $verify_key --verify=true $verify_key
img=src/coreos_production_image.bin img=src/flatcar_production_image.bin
[[ "${img}.bz2" -nt "${img}" ]] && [[ "${img}.bz2" -nt "${img}" ]] &&
enter lbunzip2 -k -f "/mnt/host/source/${img}.bz2" enter lbunzip2 -k -f "/mnt/host/source/${img}.bz2"
@ -46,7 +46,7 @@ script image_to_vm.sh \
--board="${BOARD}" \ --board="${BOARD}" \
--format="${FORMAT}" \ --format="${FORMAT}" \
--getbinpkg \ --getbinpkg \
--getbinpkgver="${COREOS_VERSION}" \ --getbinpkgver="${FLATCAR_VERSION}" \
--from=/mnt/host/source/src \ --from=/mnt/host/source/src \
--to=/mnt/host/source/tmp \ --to=/mnt/host/source/tmp \
--sign="${SIGNING_USER}" \ --sign="${SIGNING_USER}" \

View File

@ -7,7 +7,7 @@
# Default values for creating VM's. # Default values for creating VM's.
DEFAULT_MEM="1024" DEFAULT_MEM="1024"
DEFAULT_VMDK="ide.vmdk" DEFAULT_VMDK="ide.vmdk"
DEFAULT_VMX="coreos.vmx" DEFAULT_VMX="flatcar.vmx"
DEFAULT_VBOX_DISK="os.vdi" DEFAULT_VBOX_DISK="os.vdi"
# Minimum sizes for full size vm images -- needed for update. # Minimum sizes for full size vm images -- needed for update.

View File

@ -15,7 +15,7 @@ release=${1:-"alpha"}
# If the argument is in the form http* allow for watching an arbitrary location # If the argument is in the form http* allow for watching an arbitrary location
if [[ $1 != http* ]]; then if [[ $1 != http* ]]; then
url="https://${release}.release.core-os.net/amd64-usr/current/version.txt" url="https://${release}.release.flatcar-linux.net/amd64-usr/current/version.txt"
else else
url=$1 url=$1
release=$(echo ${url} | sed -e 's/http:\/\///1' -e 's/\//-/g' ) release=$(echo ${url} | sed -e 's/http:\/\///1' -e 's/\//-/g' )

View File

@ -21,7 +21,7 @@ while [[ $# -gt 0 ]]; do
# For this convoluded trick, we take an arbitrary URL, chop it # For this convoluded trick, we take an arbitrary URL, chop it
# up, and try to turn it into usable input for the rest of the # up, and try to turn it into usable input for the rest of the
# script. This is based on urls of the form: # script. This is based on urls of the form:
# https://storage.core-os.net/coreos/amd64-usr/master/version.txt # https://storage.flatcar-linux.net/coreos/amd64-usr/master/version.txt
# where the following sed expression extracts the "master" # where the following sed expression extracts the "master"
# portion # portion
baseurl="${1%/*}" baseurl="${1%/*}"
@ -43,11 +43,11 @@ while [[ $# -gt 0 ]]; do
done done
if [[ -z "${baseurl}" ]]; then if [[ -z "${baseurl}" ]]; then
baseurl="https://${release}.release.core-os.net/${board}/current" baseurl="https://${release}.release.flatcar-linux.net/${board}/current"
fi fi
version_url="${baseurl}/version.txt" version_url="${baseurl}/version.txt"
image_url="${baseurl}/coreos_production_openstack_image.img.bz2" image_url="${baseurl}/flatcar_production_openstack_image.img.bz2"
# use the following location as our local work space # use the following location as our local work space
tmplocation=$(mktemp -d /var/tmp/glanceload.XXX) tmplocation=$(mktemp -d /var/tmp/glanceload.XXX)
@ -57,25 +57,25 @@ curl --fail -s -L -O ${version_url}
. version.txt . version.txt
# if we already have the image don't waste time # if we already have the image don't waste time
if glance image-show "CoreOS-${release}-v${COREOS_VERSION}"; then if glance image-show "Flatcar-${release}-v${Flatcar_VERSION}"; then
echo "Image already exists." echo "Image already exists."
rm -rf ${tmplocation} rm -rf ${tmplocation}
exit exit
fi fi
coreosimg="coreos_${COREOS_VERSION}_openstack_image.img" flatcarimg="flatcar_${FLATCAR_VERSION}_openstack_image.img"
# change the following line to reflect the image to be chosen, openstack # change the following line to reflect the image to be chosen, openstack
# is used by default # is used by default
curl --fail -s -L ${image_url} | bunzip2 > ${coreosimg} curl --fail -s -L ${image_url} | bunzip2 > ${flatcarimg}
# perform actual image creation # perform actual image creation
# here we set the os_release, os_verison, os_family, and os_distro variables # here we set the os_release, os_verison, os_family, and os_distro variables
# for intelligent consumption of images by scripts # for intelligent consumption of images by scripts
glance --os-image-api-version 1 image-create --name CoreOS-${release}-v${COREOS_VERSION} --progress \ glance --os-image-api-version 1 image-create --name Flatcar-${release}-v${FLATCAR_VERSION} --progress \
--is-public true --property os_distro=coreos --property os_family=coreos \ --is-public true --property os_distro=flatcar --property os_family=flatcar \
--property os_version=${COREOS_VERSION} \ --property os_version=${FLATCAR_VERSION} \
--disk-format qcow2 --container-format bare --min-disk 6 --file $coreosimg --disk-format qcow2 --container-format bare --min-disk 6 --file $flatcarimg
# optionally, set --property os_release=${release} in the glance image-create # optionally, set --property os_release=${release} in the glance image-create
# command above and uncomment the two commands below to support searching by # command above and uncomment the two commands below to support searching by

View File

@ -5,13 +5,13 @@
# found in the LICENSE file. # found in the LICENSE file.
# common.sh must be properly sourced before this file. # common.sh must be properly sourced before this file.
[[ -n "${COREOS_SDK_VERSION}" ]] || exit 1 [[ -n "${FLATCAR_SDK_VERSION}" ]] || exit 1
COREOS_SDK_ARCH="amd64" # We are unlikely to support anything else. FLATCAR_SDK_ARCH="amd64" # We are unlikely to support anything else.
COREOS_SDK_TARBALL="coreos-sdk-${COREOS_SDK_ARCH}-${COREOS_SDK_VERSION}.tar.bz2" FLATCAR_SDK_TARBALL="flatcar-sdk-${FLATCAR_SDK_ARCH}-${FLATCAR_SDK_VERSION}.tar.bz2"
COREOS_SDK_TARBALL_CACHE="${REPO_CACHE_DIR}/sdks" FLATCAR_SDK_TARBALL_CACHE="${REPO_CACHE_DIR}/sdks"
COREOS_SDK_TARBALL_PATH="${COREOS_SDK_TARBALL_CACHE}/${COREOS_SDK_TARBALL}" FLATCAR_SDK_TARBALL_PATH="${FLATCAR_SDK_TARBALL_CACHE}/${FLATCAR_SDK_TARBALL}"
COREOS_SDK_URL="${COREOS_DEV_BUILDS}/sdk/${COREOS_SDK_ARCH}/${COREOS_SDK_VERSION}/${COREOS_SDK_TARBALL}" FLATCAR_SDK_URL="${FLATCAR_DEV_BUILDS}/sdk/${FLATCAR_SDK_ARCH}/${FLATCAR_SDK_VERSION}/${FLATCAR_SDK_TARBALL}"
# Download the current SDK tarball (if required) and verify digests/sig # Download the current SDK tarball (if required) and verify digests/sig
sdk_download_tarball() { sdk_download_tarball() {
@ -19,13 +19,13 @@ sdk_download_tarball() {
return 0 return 0
fi fi
info "Downloading ${COREOS_SDK_TARBALL}" info "Downloading ${FLATCAR_SDK_TARBALL}"
info "URL: ${COREOS_SDK_URL}" info "URL: ${FLATCAR_SDK_URL}"
local suffix local suffix
for suffix in "" ".DIGESTS"; do # TODO(marineam): download .asc for suffix in "" ".DIGESTS"; do # TODO(marineam): download .asc
wget --tries=3 --timeout=30 --continue \ wget --tries=3 --timeout=30 --continue \
-O "${COREOS_SDK_TARBALL_PATH}${suffix}" \ -O "${FLATCAR_SDK_TARBALL_PATH}${suffix}" \
"${COREOS_SDK_URL}${suffix}" \ "${FLATCAR_SDK_URL}${suffix}" \
|| die_notrace "SDK download failed!" || die_notrace "SDK download failed!"
done done
@ -34,21 +34,21 @@ sdk_download_tarball() {
} }
sdk_verify_digests() { sdk_verify_digests() {
if [[ ! -f "${COREOS_SDK_TARBALL_PATH}" || \ if [[ ! -f "${FLATCAR_SDK_TARBALL_PATH}" || \
! -f "${COREOS_SDK_TARBALL_PATH}.DIGESTS" ]]; then ! -f "${FLATCAR_SDK_TARBALL_PATH}.DIGESTS" ]]; then
return 1 return 1
fi fi
# TODO(marineam): Add gpg signature verification too. # TODO(marineam): Add gpg signature verification too.
verify_digests "${COREOS_SDK_TARBALL_PATH}" || return 1 verify_digests "${FLATCAR_SDK_TARBALL_PATH}" || return 1
} }
sdk_clean_cache() { sdk_clean_cache() {
pushd "${COREOS_SDK_TARBALL_CACHE}" >/dev/null pushd "${FLATCAR_SDK_TARBALL_CACHE}" >/dev/null
local filename local filename
for filename in *; do for filename in *; do
if [[ "${filename}" == "${COREOS_SDK_TARBALL}"* ]]; then if [[ "${filename}" == "${FLATCAR_SDK_TARBALL}"* ]]; then
continue continue
fi fi
info "Cleaning up ${filename}" info "Cleaning up ${filename}"

View File

@ -120,9 +120,9 @@ EOF
generate_binhost_list() { generate_binhost_list() {
local t local t
[[ "${FLAGS_toolchainpkgonly}" -eq "${FLAGS_TRUE}" ]] && t="-t" [[ "${FLAGS_toolchainpkgonly}" -eq "${FLAGS_TRUE}" ]] && t="-t"
FLAGS_getbinpkgver="${FLAGS_getbinpkgver/current/${COREOS_VERSION_ID}}" FLAGS_getbinpkgver="${FLAGS_getbinpkgver/current/${FLATCAR_VERSION_ID}}"
FLAGS_getbinpkgver="${FLAGS_getbinpkgver/latest/${COREOS_VERSION_ID}}" FLAGS_getbinpkgver="${FLAGS_getbinpkgver/latest/${FLATCAR_VERSION_ID}}"
FLAGS_getbinpkgver="${FLAGS_getbinpkgver/sdk/${COREOS_SDK_VERSION}}" FLAGS_getbinpkgver="${FLAGS_getbinpkgver/sdk/${FLATCAR_SDK_VERSION}}"
get_board_binhost $t "${BOARD}" ${FLAGS_getbinpkgver} get_board_binhost $t "${BOARD}" ${FLAGS_getbinpkgver}
} }

View File

@ -14,12 +14,12 @@ SERVER_ADDR="${3:-10.7.68.102}"
SERVER_PORT="${4:-50051}" SERVER_PORT="${4:-50051}"
echo "=== Verifying update payload... ===" echo "=== Verifying update payload... ==="
gpg2 --verify "${DATA_DIR}/coreos_production_update.bin.bz2.sig" gpg2 --verify "${DATA_DIR}/flatcar_production_update.bin.bz2.sig"
gpg2 --verify "${DATA_DIR}/coreos_production_image.vmlinuz.sig" gpg2 --verify "${DATA_DIR}/flatcar_production_image.vmlinuz.sig"
gpg2 --verify "${DATA_DIR}/coreos_production_update.zip.sig" gpg2 --verify "${DATA_DIR}/flatcar_production_update.zip.sig"
echo "=== Decompressing update payload... ===" echo "=== Decompressing update payload... ==="
bunzip2 --keep "${DATA_DIR}/coreos_production_update.bin.bz2" bunzip2 --keep "${DATA_DIR}/flatcar_production_update.bin.bz2"
unzip "${DATA_DIR}/coreos_production_update.zip" -d "${DATA_DIR}" unzip "${DATA_DIR}/flatcar_production_update.zip" -d "${DATA_DIR}"
payload_signature_files="" payload_signature_files=""
for i in ${SIGS_DIR}/update.sig.*; do for i in ${SIGS_DIR}/update.sig.*; do
@ -29,10 +29,10 @@ payload_signature_files="${payload_signature_files:1:${#payload_signature_files}
pushd "${DATA_DIR}" pushd "${DATA_DIR}"
./core_sign_update \ ./core_sign_update \
--image "${DATA_DIR}/coreos_production_update.bin" \ --image "${DATA_DIR}/flatcar_production_update.bin" \
--kernel "${DATA_DIR}/coreos_production_image.vmlinuz" \ --kernel "${DATA_DIR}/flatcar_production_image.vmlinuz" \
--output "${DATA_DIR}/coreos_production_update.gz" \ --output "${DATA_DIR}/flatcar_production_update.gz" \
--private_keys "${KEYS_DIR}/devel.key.pem+fero:coreos-image-signing-key" \ --private_keys "${KEYS_DIR}/devel.key.pem+fero:flatcar-image-signing-key" \
--public_keys "${KEYS_DIR}/devel.pub.pem+${KEYS_DIR}/prod-2.pub.pem" \ --public_keys "${KEYS_DIR}/devel.pub.pem+${KEYS_DIR}/prod-2.pub.pem" \
--keys_separator "+" \ --keys_separator "+" \
--signing_server_address "$SERVER_ADDR" \ --signing_server_address "$SERVER_ADDR" \
@ -53,7 +53,7 @@ fero-client \
sign \ sign \
--file "${DATA_DIR}/torcx_manifest.json" \ --file "${DATA_DIR}/torcx_manifest.json" \
--output "${DATA_DIR}/torcx_manifest.json.sig-fero" \ --output "${DATA_DIR}/torcx_manifest.json.sig-fero" \
--secret-key coreos-app-signing-key \ --secret-key flatcar-app-signing-key \
${torcx_signature_arg} ${torcx_signature_arg}
gpg2 --enarmor \ gpg2 --enarmor \
--output - \ --output - \

View File

@ -20,27 +20,27 @@ download() {
pushd "${dir}" >/dev/null pushd "${dir}" >/dev/null
gsutil -m cp \ gsutil -m cp \
"${gs}/coreos_production_image.vmlinuz" \ "${gs}/flatcar_production_image.vmlinuz" \
"${gs}/coreos_production_image.vmlinuz.sig" \ "${gs}/flatcar_production_image.vmlinuz.sig" \
"${gs}/coreos_production_update.bin.bz2" \ "${gs}/flatcar_production_update.bin.bz2" \
"${gs}/coreos_production_update.bin.bz2.sig" \ "${gs}/flatcar_production_update.bin.bz2.sig" \
"${gs}/coreos_production_update.zip" \ "${gs}/flatcar_production_update.zip" \
"${gs}/coreos_production_update.zip.sig" ./ "${gs}/flatcar_production_update.zip.sig" ./
# torcx manifest: try embargoed release bucket first # torcx manifest: try embargoed release bucket first
local torcx_base="gs://builds.release.core-os.net/embargoed/devfiles/torcx/manifests/${BOARD}/${version}" local torcx_base="gs://builds.release.core-os.net/embargoed/devfiles/torcx/manifests/${board}/${version}"
if ! gsutil -q stat "${torcx_base}/torcx_manifest.json"; then if ! gsutil -q stat "${torcx_base}/torcx_manifest.json"; then
# Non-embargoed release # Non-embargoed release
local torcx_base="gs://builds.developer.core-os.net/torcx/manifests/${BOARD}/${version}" local torcx_base="gs://builds.developer.core-os.net/torcx/manifests/${board}/${version}"
fi fi
gsutil -m cp \ gsutil -m cp \
"${torcx_base}/torcx_manifest.json" \ "${torcx_base}/torcx_manifest.json" \
"${torcx_base}/torcx_manifest.json.sig" \ "${torcx_base}/torcx_manifest.json.sig" \
./ ./
gpg2 --verify "coreos_production_image.vmlinuz.sig" gpg2 --verify "flatcar_production_image.vmlinuz.sig"
gpg2 --verify "coreos_production_update.bin.bz2.sig" gpg2 --verify "flatcar_production_update.bin.bz2.sig"
gpg2 --verify "coreos_production_update.zip.sig" gpg2 --verify "flatcar_production_update.zip.sig"
gpg2 --verify "torcx_manifest.json.sig" gpg2 --verify "torcx_manifest.json.sig"
popd >/dev/null popd >/dev/null
@ -73,7 +73,7 @@ upload() {
local version="$2" local version="$2"
local dir="${BASEDIR}/${BOARD}/${version}" local dir="${BASEDIR}/${BOARD}/${version}"
local payload="${dir}/coreos_production_update.gz" local payload="${dir}/flatcar_production_update.gz"
local torcx_manifest="${dir}/torcx_manifest.json" local torcx_manifest="${dir}/torcx_manifest.json"
local torcx_manifest_sig="${dir}/torcx_manifest.json.asc" local torcx_manifest_sig="${dir}/torcx_manifest.json.asc"
local path local path

View File

@ -28,7 +28,7 @@ DEFAULT_MINOR=0
DEFAULT_BRANCH=${FLAGS_FALSE} DEFAULT_BRANCH=${FLAGS_FALSE}
DEFAULT_BRANCH_PROJECTS= DEFAULT_BRANCH_PROJECTS=
CURRENT_VERSION=( ${COREOS_VERSION_ID//./ } ) CURRENT_VERSION=( ${FLATCAR_VERSION_ID//./ } )
# Detect if we are on a branch or still tracking master. # Detect if we are on a branch or still tracking master.
DEFAULT_MANIFEST=$(readlink "${REPO_MANIFESTS_DIR}/default.xml") \ DEFAULT_MANIFEST=$(readlink "${REPO_MANIFESTS_DIR}/default.xml") \
@ -48,8 +48,8 @@ fi
DEFINE_integer major ${DEFAULT_MAJOR} "Branch major version (aka 'build')" DEFINE_integer major ${DEFAULT_MAJOR} "Branch major version (aka 'build')"
DEFINE_integer minor ${DEFAULT_MINOR} "Branch revision or minor version" DEFINE_integer minor ${DEFAULT_MINOR} "Branch revision or minor version"
DEFINE_integer patch 0 "Branch patch id, normally 0" DEFINE_integer patch 0 "Branch patch id, normally 0"
DEFINE_string sdk_version "${COREOS_VERSION_ID}" \ DEFINE_string sdk_version "${FLATCAR_VERSION_ID}" \
"SDK version to use, or 'keep'. (current: ${COREOS_SDK_VERSION})" "SDK version to use, or 'keep'. (current: ${FLATCAR_SDK_VERSION})"
DEFINE_boolean branch ${DEFAULT_BRANCH} "Release branch, diverge from master" DEFINE_boolean branch ${DEFAULT_BRANCH} "Release branch, diverge from master"
DEFINE_string branch_projects "${DEFAULT_BRANCH_PROJECTS}" \ DEFINE_string branch_projects "${DEFAULT_BRANCH_PROJECTS}" \
"Branch the named projects (with a 'coreos/' prefix) in the manifest." "Branch the named projects (with a 'coreos/' prefix) in the manifest."
@ -82,7 +82,7 @@ TAG_NAME="v${BRANCH_VERSION}"
if [[ "${FLAGS_sdk_version}" == keep || "${FLAGS_sdk_version}" == current ]] if [[ "${FLAGS_sdk_version}" == keep || "${FLAGS_sdk_version}" == current ]]
then then
FLAGS_sdk_version="${COREOS_SDK_VERSION}" FLAGS_sdk_version="${FLATCAR_SDK_VERSION}"
fi fi
if [[ "${FLAGS_sdk_version}" == "${BRANCH_VERSION}" ]]; then if [[ "${FLAGS_sdk_version}" == "${BRANCH_VERSION}" ]]; then
@ -92,9 +92,9 @@ if [[ "${FLAGS_sdk_version}" == "${BRANCH_VERSION}" ]]; then
fi fi
# Verify that the specified SDK version exists # Verify that the specified SDK version exists
COREOS_SDK_VERSION="${FLAGS_sdk_version}" FLATCAR_SDK_VERSION="${FLAGS_sdk_version}"
. "${SCRIPT_ROOT}/sdk_lib/sdk_util.sh" . "${SCRIPT_ROOT}/sdk_lib/sdk_util.sh"
if ! curl --head --fail --silent "${COREOS_SDK_URL}" > /dev/null ; then if ! curl --head --fail --silent "${FLATCAR_SDK_URL}" > /dev/null ; then
die_notrace "SDK version does not exist." \ die_notrace "SDK version does not exist." \
"Try --sdk_version keep to use the existing SDK." "Try --sdk_version keep to use the existing SDK."
fi fi
@ -140,10 +140,10 @@ if [[ ${FLAGS_branch} -eq ${FLAGS_TRUE} ]]; then
fi fi
tee version.txt <<EOF tee version.txt <<EOF
COREOS_VERSION=${BRANCH_VERSION} FLATCAR_VERSION=${BRANCH_VERSION}
COREOS_VERSION_ID=${BRANCH_VERSION} FLATCAR_VERSION_ID=${BRANCH_VERSION}
COREOS_BUILD_ID="" FLATCAR_BUILD_ID=""
COREOS_SDK_VERSION=${FLAGS_sdk_version} FLATCAR_SDK_VERSION=${FLAGS_sdk_version}
EOF EOF
git add version.txt git add version.txt
@ -154,7 +154,7 @@ export GPG_TTY
info "Creating ${BRANCH_NAME} and tag ${TAG_NAME}" info "Creating ${BRANCH_NAME} and tag ${TAG_NAME}"
git commit -m "${BRANCH_NAME}: release ${TAG_NAME}" git commit -m "${BRANCH_NAME}: release ${TAG_NAME}"
git branch -f "${BRANCH_NAME}" git branch -f "${BRANCH_NAME}"
git tag "${sign_args[@]}" -m "CoreOS ${TAG_NAME}" "${TAG_NAME}" git tag "${sign_args[@]}" -m "Flatcar ${TAG_NAME}" "${TAG_NAME}"
# Unpin and branch the important projects, if requested and they are pinned. # Unpin and branch the important projects, if requested and they are pinned.
if [[ -n "${FLAGS_branch_projects}" ]]; then if [[ -n "${FLAGS_branch_projects}" ]]; then

View File

@ -159,14 +159,14 @@ fi
info "Updating chroot:" info "Updating chroot:"
info " chroot version: $OLDVER" info " chroot version: $OLDVER"
info " CoreOS version: $COREOS_VERSION" info " Flatcar version: $FLATCAR_VERSION"
# Updates should be of the form 1.2.3_desc.sh # Updates should be of the form 1.2.3_desc.sh
for update_script in ${SCRIPTS_DIR}/sdk_lib/updates/*.sh; do for update_script in ${SCRIPTS_DIR}/sdk_lib/updates/*.sh; do
update_name="${update_script##*/}" update_name="${update_script##*/}"
update_ver="${update_name%%_*}" update_ver="${update_name%%_*}"
# Run newer updates but don't pass our current version # Run newer updates but don't pass our current version
if ! cmp_ver le "$update_ver" "$COREOS_VERSION"; then if ! cmp_ver le "$update_ver" "$FLATCAR_VERSION"; then
warn "Skipping update from the future: $update_name" warn "Skipping update from the future: $update_name"
warn "Perhaps it is time to run a repo sync?" warn "Perhaps it is time to run a repo sync?"
elif ! cmp_ver ge "$OLDVER" "$update_ver"; then elif ! cmp_ver ge "$OLDVER" "$update_ver"; then