Skip to content

Commit

Permalink
release_build: sync k3s, crio, rke w/ kubernetes
Browse files Browse the repository at this point in the history
This will sync those software with major kubernetes version at each
release. No need to maintain a version file for these components.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
  • Loading branch information
tormath1 committed Nov 19, 2024
1 parent d6916c1 commit 78ad048
Showing 1 changed file with 32 additions and 20 deletions.
52 changes: 32 additions & 20 deletions release_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,34 @@ fi
KBS_VERS_ARRAY=(${KBS_VERS})
printf "%s\n" "${KBS_VERS_ARRAY[@]}"

echo "Fetching list of latest CRI-O patch releases"
echo "================================================="

git ls-remote --tags --sort=-v:refname https://github.com/cri-o/cri-o \
| grep -v "{}" \
| awk '{ print $2}' \
| cut --delimiter='/' --fields=3 \
> crio.txt

CRIO=()
for r in "${KBS_VERS_ARRAY[@]}"; do
if ! grep -q "v${r%.*}" crio.txt; then
echo "Skipping $r"
continue
fi
version=$(cat crio.txt | grep "v${r%.*}" | head -n1)
CRIO+=( "crio-${version:1}" )
done
# fetch_releases returns available for a given software
# based on Kubernetes major versions.
function fetch_releases {
local software="${1}"
local file=$(mktemp)
local versions=()

git ls-remote --tags --sort=-v:refname https://github.com/${software} \
| grep -v "{}" \
| awk '{ print $2}' \
| cut --delimiter='/' --fields=3 \
> "${file}"

for r in "${KBS_VERS_ARRAY[@]}"; do
if ! grep -q "v${r%.*}" "${file}"; then
echo "Skipping $r"
continue
fi
version=$(cat "${file}" | grep "v${r%.*}" | grep -v "rc"| head -n1)
component="${software#*/}"

# remove extra '-' from component name (e.g cri-o -> crio)
component="${component//-/}"
versions+=( "${component}-v${version:1}" )
done

echo "${versions[@]}"
}

echo
echo "Fetching previous 'latest' release sysexts"
Expand Down Expand Up @@ -71,7 +81,9 @@ KUBERNETES=()
for v in "${KBS_VERS_ARRAY[@]}"; do
KUBERNETES+=( "kubernetes-v${v}" )
done
images+=( "${CRIO[@]}" )
images+=( $(fetch_releases "k3s-io/k3s") )
images+=( $(fetch_releases "cri-o/cri-o") )
images+=( $(fetch_releases "rancher/rke2") )
images+=( "${KUBERNETES[@]}" )

echo "building: ${images[@]}"
Expand All @@ -94,7 +106,7 @@ for image in "${images[@]}"; do
echo "* ${target}" >> Release.md
done
streams+=("${component}:-@v")
if [ "${component}" = "kubernetes" ] || [ "${component}" = "crio" ]; then
if [ "${component}" = "kubernetes" ] || [ "${component}" = "crio" ]|| [ "${component}" = "rke2" ]|| [ "${component}" = "k3s" ]; then
streams+=("${component}-${version%.*}:.@v")
# Should give, e.g., v1.28 for v1.28.2 (use ${version#*.*.} to get 2)
fi
Expand Down

0 comments on commit 78ad048

Please sign in to comment.