From d8d4f82d4ce4114bdc6c34b05b55c92477af9222 Mon Sep 17 00:00:00 2001 From: nvazquez Date: Fri, 6 Jun 2025 17:04:49 -0300 Subject: [PATCH 1/6] [CKS] Create Kubernetes ISO support for ARCH optional parameter --- .../util/create-kubernetes-binaries-iso.sh | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/scripts/util/create-kubernetes-binaries-iso.sh b/scripts/util/create-kubernetes-binaries-iso.sh index e4364054d2af..c83b239569cf 100755 --- a/scripts/util/create-kubernetes-binaries-iso.sh +++ b/scripts/util/create-kubernetes-binaries-iso.sh @@ -19,7 +19,7 @@ set -e if [ $# -lt 6 ]; then - echo "Invalid input. Valid usage: ./create-kubernetes-binaries-iso.sh OUTPUT_PATH KUBERNETES_VERSION CNI_VERSION CRICTL_VERSION WEAVENET_NETWORK_YAML_CONFIG DASHBOARD_YAML_CONFIG BUILD_NAME" + echo "Invalid input. Valid usage: ./create-kubernetes-binaries-iso.sh OUTPUT_PATH KUBERNETES_VERSION CNI_VERSION CRICTL_VERSION WEAVENET_NETWORK_YAML_CONFIG DASHBOARD_YAML_CONFIG BUILD_NAME [ARCH]" echo "eg: ./create-kubernetes-binaries-iso.sh ./ 1.11.4 0.7.1 1.11.1 https://github.com/weaveworks/weave/releases/download/latest_release/weave-daemonset-k8s-1.11.yaml https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.0/src/deploy/recommended/kubernetes-dashboard.yaml setup-v1.11.4" exit 1 fi @@ -34,26 +34,35 @@ mkdir -p "${working_dir}" build_name="${7}.iso" [ -z "${build_name}" ] && build_name="setup-${RELEASE}.iso" +ARCH="amd64" +if [ -n "${8}" ]; then + ARCH="${8}" + if [ "$ARCH" != "amd64" ] && [ "$ARCH" != "arm64" ]; then + echo "ERROR: ARCH must be 'amd64' or 'arm64'. If the optional parameter ARCH is not set then 'amd64' is used." + exit 1 + fi +fi + CNI_VERSION="v${3}" echo "Downloading CNI ${CNI_VERSION}..." cni_dir="${working_dir}/cni/" mkdir -p "${cni_dir}" -cni_status_code=$(curl -L --write-out "%{http_code}\n" "https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-linux-amd64-${CNI_VERSION}.tgz" -o "${cni_dir}/cni-plugins-amd64.tgz") +cni_status_code=$(curl -L --write-out "%{http_code}\n" "https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-linux-${ARCH}-${CNI_VERSION}.tgz" -o "${cni_dir}/cni-plugins-${ARCH}.tgz") if [[ ${cni_status_code} -eq 404 ]] ; then - curl -L --write-out "%{http_code}\n" "https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-amd64-${CNI_VERSION}.tgz" -o "${cni_dir}/cni-plugins-amd64.tgz" + curl -L --write-out "%{http_code}\n" "https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-${ARCH}-${CNI_VERSION}.tgz" -o "${cni_dir}/cni-plugins-${ARCH}.tgz" fi CRICTL_VERSION="v${4}" echo "Downloading CRI tools ${CRICTL_VERSION}..." crictl_dir="${working_dir}/cri-tools/" mkdir -p "${crictl_dir}" -curl -L "https://github.com/kubernetes-incubator/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-amd64.tar.gz" -o "${crictl_dir}/crictl-linux-amd64.tar.gz" +curl -L "https://github.com/kubernetes-incubator/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-${ARCH}.tar.gz" -o "${crictl_dir}/crictl-linux-${ARCH}.tar.gz" echo "Downloading Kubernetes tools ${RELEASE}..." k8s_dir="${working_dir}/k8s" mkdir -p "${k8s_dir}" cd "${k8s_dir}" -curl -L --remote-name-all https://dl.k8s.io/release/${RELEASE}/bin/linux/amd64/{kubeadm,kubelet,kubectl} +curl -L --remote-name-all https://dl.k8s.io/release/${RELEASE}/bin/linux/${ARCH}/{kubeadm,kubelet,kubectl} kubeadm_file_permissions=`stat --format '%a' kubeadm` chmod +x kubeadm From e2beb9b6f7cfa7b4321be4b824be91b5de5536d2 Mon Sep 17 00:00:00 2001 From: nvazquez Date: Fri, 6 Jun 2025 17:14:55 -0300 Subject: [PATCH 2/6] Include arch on the build name --- .../util/create-kubernetes-binaries-iso.sh | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/scripts/util/create-kubernetes-binaries-iso.sh b/scripts/util/create-kubernetes-binaries-iso.sh index c83b239569cf..f84f3f721b69 100755 --- a/scripts/util/create-kubernetes-binaries-iso.sh +++ b/scripts/util/create-kubernetes-binaries-iso.sh @@ -24,16 +24,6 @@ if [ $# -lt 6 ]; then exit 1 fi -RELEASE="v${2}" -VAL="1.18.0" -output_dir="${1}" -start_dir="$PWD" -iso_dir="/tmp/iso" -working_dir="${iso_dir}/" -mkdir -p "${working_dir}" -build_name="${7}.iso" -[ -z "${build_name}" ] && build_name="setup-${RELEASE}.iso" - ARCH="amd64" if [ -n "${8}" ]; then ARCH="${8}" @@ -43,6 +33,16 @@ if [ -n "${8}" ]; then fi fi +RELEASE="v${2}" +VAL="1.18.0" +output_dir="${1}" +start_dir="$PWD" +iso_dir="/tmp/iso" +working_dir="${iso_dir}/" +mkdir -p "${working_dir}" +build_name="${7}-${ARCH}.iso" +[ -z "${build_name}" ] && build_name="setup-${RELEASE}-${ARCH}.iso" + CNI_VERSION="v${3}" echo "Downloading CNI ${CNI_VERSION}..." cni_dir="${working_dir}/cni/" From 2332092a74425c1811501737708e5e9fa55f6fad Mon Sep 17 00:00:00 2001 From: nvazquez Date: Mon, 9 Jun 2025 14:06:57 -0300 Subject: [PATCH 3/6] Refactor --- scripts/util/create-kubernetes-binaries-iso.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/util/create-kubernetes-binaries-iso.sh b/scripts/util/create-kubernetes-binaries-iso.sh index f84f3f721b69..e4d7192cf203 100755 --- a/scripts/util/create-kubernetes-binaries-iso.sh +++ b/scripts/util/create-kubernetes-binaries-iso.sh @@ -26,9 +26,12 @@ fi ARCH="amd64" if [ -n "${8}" ]; then - ARCH="${8}" - if [ "$ARCH" != "amd64" ] && [ "$ARCH" != "arm64" ]; then - echo "ERROR: ARCH must be 'amd64' or 'arm64'. If the optional parameter ARCH is not set then 'amd64' is used." + if [ "${8}" = "x86_64" ]; then + ARCH="amd64" + elif [ "${8}" = "aarch64" ]; then + ARCH="arm64" + else + echo "ERROR: ARCH must be 'x86_64' or 'aarch64'. If the optional parameter ARCH is not set then 'x86_64' is used." exit 1 fi fi From 68115b5dbf210f9a63dc0ec16b31bc84f3f6f812 Mon Sep 17 00:00:00 2001 From: nvazquez Date: Tue, 10 Jun 2025 08:21:43 -0300 Subject: [PATCH 4/6] Fix ISO naming --- scripts/util/create-kubernetes-binaries-iso.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/util/create-kubernetes-binaries-iso.sh b/scripts/util/create-kubernetes-binaries-iso.sh index e4d7192cf203..ef90a6ae7451 100755 --- a/scripts/util/create-kubernetes-binaries-iso.sh +++ b/scripts/util/create-kubernetes-binaries-iso.sh @@ -25,11 +25,14 @@ if [ $# -lt 6 ]; then fi ARCH="amd64" +ARCH_SUFFIX="x86_64" if [ -n "${8}" ]; then if [ "${8}" = "x86_64" ]; then ARCH="amd64" + ARCH_SUFFIX="x86_64" elif [ "${8}" = "aarch64" ]; then ARCH="arm64" + ARCH_SUFFIX="aarch64" else echo "ERROR: ARCH must be 'x86_64' or 'aarch64'. If the optional parameter ARCH is not set then 'x86_64' is used." exit 1 @@ -43,8 +46,8 @@ start_dir="$PWD" iso_dir="/tmp/iso" working_dir="${iso_dir}/" mkdir -p "${working_dir}" -build_name="${7}-${ARCH}.iso" -[ -z "${build_name}" ] && build_name="setup-${RELEASE}-${ARCH}.iso" +build_name="${7}-${ARCH_SUFFIX}.iso" +[ -z "${build_name}" ] && build_name="setup-${RELEASE}-${ARCH_SUFFIX}.iso" CNI_VERSION="v${3}" echo "Downloading CNI ${CNI_VERSION}..." From ced724eb8265cade2e04d029677aee888391575c Mon Sep 17 00:00:00 2001 From: Nicolas Vazquez Date: Thu, 12 Jun 2025 07:29:22 -0300 Subject: [PATCH 5/6] Apply suggestions from code review Co-authored-by: Wei Zhou --- scripts/util/create-kubernetes-binaries-iso.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/util/create-kubernetes-binaries-iso.sh b/scripts/util/create-kubernetes-binaries-iso.sh index ef90a6ae7451..000d2975c304 100755 --- a/scripts/util/create-kubernetes-binaries-iso.sh +++ b/scripts/util/create-kubernetes-binaries-iso.sh @@ -27,10 +27,10 @@ fi ARCH="amd64" ARCH_SUFFIX="x86_64" if [ -n "${8}" ]; then - if [ "${8}" = "x86_64" ]; then + if [ "${8}" = "x86_64" ] || [ "${8}" = "amd64" ]; then ARCH="amd64" ARCH_SUFFIX="x86_64" - elif [ "${8}" = "aarch64" ]; then + elif [ "${8}" = "aarch64" ] || [ "${8}" = "arm64" ]; then ARCH="arm64" ARCH_SUFFIX="aarch64" else From 441cfc48a32890d726dc7df1b433d350cd1419a8 Mon Sep 17 00:00:00 2001 From: nvazquez Date: Wed, 16 Jul 2025 20:05:56 -0300 Subject: [PATCH 6/6] Reorder parameters --- scripts/util/create-kubernetes-binaries-iso.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/util/create-kubernetes-binaries-iso.sh b/scripts/util/create-kubernetes-binaries-iso.sh index f1f8d8eaf3b2..58aec922b7f1 100755 --- a/scripts/util/create-kubernetes-binaries-iso.sh +++ b/scripts/util/create-kubernetes-binaries-iso.sh @@ -19,18 +19,18 @@ set -e if [ $# -lt 6 ]; then - echo "Invalid input. Valid usage: ./create-kubernetes-binaries-iso.sh OUTPUT_PATH KUBERNETES_VERSION CNI_VERSION CRICTL_VERSION WEAVENET_NETWORK_YAML_CONFIG DASHBOARD_YAML_CONFIG BUILD_NAME [ETCD_VERSION] [ARCH]" - echo "eg: ./create-kubernetes-binaries-iso.sh ./ 1.11.4 0.7.1 1.11.1 https://github.com/weaveworks/weave/releases/download/latest_release/weave-daemonset-k8s-1.11.yaml https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.0/src/deploy/recommended/kubernetes-dashboard.yaml setup-v1.11.4" + echo "Invalid input. Valid usage: ./create-kubernetes-binaries-iso.sh OUTPUT_PATH KUBERNETES_VERSION CNI_VERSION CRICTL_VERSION WEAVENET_NETWORK_YAML_CONFIG DASHBOARD_YAML_CONFIG BUILD_NAME [ARCH] [ETCD_VERSION]" + echo "eg: ./create-kubernetes-binaries-iso.sh ./ 1.11.4 0.7.1 1.11.1 https://github.com/weaveworks/weave/releases/download/latest_release/weave-daemonset-k8s-1.11.yaml https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.0/src/deploy/recommended/kubernetes-dashboard.yaml setup-v1.11.4 amd64" exit 1 fi ARCH="amd64" ARCH_SUFFIX="x86_64" -if [ -n "${9}" ]; then - if [ "${9}" = "x86_64" ] || [ "${9}" = "amd64" ]; then +if [ -n "${8}" ]; then + if [ "${8}" = "x86_64" ] || [ "${8}" = "amd64" ]; then ARCH="amd64" ARCH_SUFFIX="x86_64" - elif [ "${9}" = "aarch64" ] || [ "${9}" = "arm64" ]; then + elif [ "${8}" = "aarch64" ] || [ "${8}" = "arm64" ]; then ARCH="arm64" ARCH_SUFFIX="aarch64" else @@ -164,11 +164,11 @@ echo "Updating imagePullPolicy to IfNotPresent in yaml files..." sed -i "s/imagePullPolicy:.*/imagePullPolicy: IfNotPresent/g" ${working_dir}/*.yaml # Optional parameter ETCD_VERSION -if [ -n "${8}" ]; then +if [ -n "${9}" ]; then # Install etcd dependencies etcd_dir="${working_dir}/etcd" mkdir -p "${etcd_dir}" - ETCD_VERSION=v${8} + ETCD_VERSION=v${9} wget -q --show-progress "https://github.com/etcd-io/etcd/releases/download/${ETCD_VERSION}/etcd-${ETCD_VERSION}-linux-amd64.tar.gz" -O ${etcd_dir}/etcd-linux-amd64.tar.gz fi