ClusterAPI.imageBuilder/packer/azure/scripts/new-disk-version.sh
Danny Bessems f2b0a5e7c7
Some checks failed
continuous-integration/drone Build is failing
Test dependencies
2023-02-22 21:24:42 +01:00

108 lines
2.4 KiB
Bash
Executable File

#!/bin/bash -e
[[ -n ${DEBUG:-} ]] && set -o xtrace
echo "PWD: $PWD"
OS=${OS:-"Ubuntu"}
OS_VERSION=${OS_VERSION:-"18.04"}
PUB_VERSION=${PUB_VERSION:-"v0.3.3"}
required_env_vars=(
"AZURE_CLIENT_ID"
"AZURE_CLIENT_SECRET"
"AZURE_TENANT_ID"
"OS"
"OS_VERSION"
"PUB_VERSION"
)
for v in "${required_env_vars[@]}"
do
if [ -z "${!v}" ]; then
echo "$v was not set!"
exit 1
fi
done
SKU_INFO="sku/sku-publishing-info.json"
VHD_INFO="vhd/vhd-publishing-info.json"
required_files=(
"SKU_INFO"
"VHD_INFO"
)
for f in "${required_files[@]}"
do
if [ ! -f "${!f}" ]; then
echo "could not find file: ${!f}"
exit 1
fi
done
echo "Getting pub..."
(set -x ; curl -fsSL https://github.com/devigned/pub/releases/download/${PUB_VERSION}/pub_${PUB_VERSION}_linux_amd64.tar.gz -o pub; tar -xzf pub)
echo "SKU publishing info:"
cat $SKU_INFO
echo
echo "VHD publishing info:"
cat $VHD_INFO
echo
# get Kubernetes version and split into major, minor, and patch
k8s_version=$(< $SKU_INFO jq -r ".k8s_version")
IFS='.' # set period (.) as delimiter
read -ra ADDR <<< "${k8s_version}" # str is read into an array as tokens separated by IFS
IFS=' ' # reset to default value after usage
major=${ADDR[0]}
minor=${ADDR[1]}
patch=${ADDR[2]}
# generate image version
image_version=${major}${minor}.${patch}.$(date +"%Y%m%d")
# generate media name
sku_id=$(< $SKU_INFO jq -r ".sku_id")
media_name="${sku_id}-${image_version}"
# generate published date
published_date=$(date +"%m/%d/%Y")
# get vhd url
vhd_url=$(< $VHD_INFO jq -r ".vhd_url")
label="Kubernetes $k8s_version $OS $OS_VERSION"
description="Kubernetes $k8s_version $OS $OS_VERSION"
# create version.json
cat <<EOF > version.json
{
"$image_version" : {
"mediaName": "$media_name",
"showInGui": false,
"publishedDate": "$published_date",
"label": "$label",
"description": "$description",
"osVHdUrl": "$vhd_url"
}
}
EOF
echo "Version info:"
cat version.json
publisher=$(< $SKU_INFO jq -r ".publisher")
offer=$(< $SKU_INFO jq -r ".offer")
sku=$(< $SKU_INFO jq -r ".sku_id")
# TODO: Update pub versions put to take in version.json as a file
echo "Create new disk version"
set -x
./pub_linux_amd64 versions put corevm -p $publisher -o $offer -s $sku --version $image_version --vhd-uri $vhd_url --media-name $media_name --label "$label" --desc "$description" --published-date "$published_date"
set +x
echo -e "\nCreated disk version"