This commit is contained in:
yumoqing 2025-11-21 17:55:30 +08:00
parent 2a1b15170d
commit c2439c2e5d

50
dl-kubevirt-image.sh Normal file
View File

@ -0,0 +1,50 @@
#!/bin/bash
set -e
# ------------------------------
# 配置区
# ------------------------------
# KubeVirt 版本(例如 v0.90.1
KUBEVIRT_VERSION="v{{ kubevirt.version }}"
# 下载目录
DOWNLOAD_DIR="/tmp/kubevirt-images"
mkdir -p "$DOWNLOAD_DIR"
# quay.io 登录信息
QUAY_USERNAME="safecorner+safecorner"
QUAY_PASSWORD="9J4BXPCG0FY25P9KL8XYDIAH5V9GXAQKYCUKOE5QI2N5WIFWA0ZB914D0MNZXRCQ"
# ------------------------------
# 自动解析官方 release YAML 获取镜像列表
# ------------------------------
echo "Fetching KubeVirt release YAML..."
RELEASE_YAML_URL="https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/kubevirt-${KUBEVIRT_VERSION}.yaml"
IMAGE_LIST=$(curl -sL "$RELEASE_YAML_URL" | grep "image:" | awk '{print $2}' | sort -u)
if [ -z "$IMAGE_LIST" ]; then
echo "Error: No images found in release YAML."
exit 1
fi
echo "Found $(echo "$IMAGE_LIST" | wc -l) images."
# ------------------------------
# 下载镜像
# ------------------------------
for img in $IMAGE_LIST; do
IMAGE_NAME=$(basename "$img")
# 替换 : / 等特殊字符,保证 tar 文件名合法
SAFE_NAME=$(echo "$IMAGE_NAME" | tr '/:' '_')
TAR_FILE="${DOWNLOAD_DIR}/${SAFE_NAME}.tar"
echo "Downloading $img -> $TAR_FILE"
skopeo copy --src-creds "$QUAY_USERNAME:$QUAY_PASSWORD" \
"docker://$img" "docker-archive:${TAR_FILE}" || {
echo "Failed to download $img, skipping..."
continue
}
done
echo "All images downloaded to $DOWNLOAD_DIR"