mirror of
https://github.com/containers/podman
synced 2024-10-22 10:13:33 +00:00
8ca6706be0
Add necessary tweaks to base-image build/import process so that image can successfully boot with networking enabled. Build the base image and update ``.cirrus.yml`` accordingly. Also make a minor improvement to cache-image building to help save space in GCP image storage. Namely, instead of storing every produced image, export them into google storage buckets w/ life-cycle enabled. For production use, they may be converted back into GCE images, otherwise they will expire after a time. Signed-off-by: Chris Evich <cevich@redhat.com>
75 lines
2 KiB
Bash
Executable file
75 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -e
|
|
source $(dirname $0)/lib.sh
|
|
|
|
req_env_var "
|
|
CNI_COMMIT $CNI_COMMIT
|
|
CRIO_COMMIT $CRIO_COMMIT
|
|
RUNC_COMMIT $RUNC_COMMIT
|
|
PACKER_BUILDS $PACKER_BUILDS
|
|
BUILT_IMAGE_SUFFIX $BUILT_IMAGE_SUFFIX
|
|
CENTOS_BASE_IMAGE $CENTOS_BASE_IMAGE
|
|
UBUNTU_BASE_IMAGE $UBUNTU_BASE_IMAGE
|
|
FEDORA_BASE_IMAGE $FEDORA_BASE_IMAGE
|
|
FAH_BASE_IMAGE $FAH_BASE_IMAGE
|
|
RHEL_BASE_IMAGE $RHEL_BASE_IMAGE
|
|
RHSM_COMMAND $RHSM_COMMAND
|
|
SERVICE_ACCOUNT $SERVICE_ACCOUNT
|
|
GCE_SSH_USERNAME $GCE_SSH_USERNAME
|
|
GCP_PROJECT_ID $GCP_PROJECT_ID
|
|
PACKER_VER $PACKER_VER
|
|
SCRIPT_BASE $SCRIPT_BASE
|
|
PACKER_BASE $PACKER_BASE
|
|
"
|
|
|
|
record_timestamp "cache-image build start"
|
|
|
|
show_env_vars
|
|
|
|
# Everything here is running on the 'image-builder-image' GCE image
|
|
# Assume basic dependencies are all met, but there could be a newer version
|
|
# of the packer binary
|
|
PACKER_FILENAME="packer_${PACKER_VER}_linux_amd64.zip"
|
|
if [[ -d "$HOME/packer" ]]
|
|
then
|
|
cd "$HOME/packer"
|
|
# image_builder_image has packer pre-installed, check if same version requested
|
|
if [[ -r "$PACKER_FILENAME" ]]
|
|
then
|
|
cp $PACKER_FILENAME "$GOSRC/$PACKER_BASE/"
|
|
cp packer "$GOSRC/$PACKER_BASE/"
|
|
fi
|
|
fi
|
|
|
|
cd "$GOSRC/$PACKER_BASE"
|
|
|
|
# Separate PR-produced images from those produced on master.
|
|
if [[ "${CIRRUS_BRANCH:-}" == "master" ]]
|
|
then
|
|
POST_MERGE_BUCKET_SUFFIX="-master"
|
|
else
|
|
POST_MERGE_BUCKET_SUFFIX=""
|
|
fi
|
|
|
|
make libpod_images \
|
|
PACKER_BUILDS=$PACKER_BUILDS \
|
|
PACKER_VER=$PACKER_VER \
|
|
GOSRC=$GOSRC \
|
|
SCRIPT_BASE=$SCRIPT_BASE \
|
|
PACKER_BASE=$PACKER_BASE \
|
|
POST_MERGE_BUCKET_SUFFIX=$POST_MERGE_BUCKET_SUFFIX \
|
|
BUILT_IMAGE_SUFFIX=$BUILT_IMAGE_SUFFIX
|
|
|
|
record_timestamp "cache-image build end"
|
|
|
|
# When successful, upload manifest of produced images using a filename unique
|
|
# to this build.
|
|
URI="gs://packer-import${POST_MERGE_BUCKET_SUFFIX}/manifest${BUILT_IMAGE_SUFFIX}.json"
|
|
gsutil cp packer-manifest.json "$URI"
|
|
|
|
echo "Finished."
|
|
echo "Any tarball URI's referenced above at at $URI"
|
|
echo "may be used to create VM images suitable for use in"
|
|
echo ".cirrus.yml as values for the 'image_name' keys."
|