bugfix
This commit is contained in:
parent
2a1b15170d
commit
c2439c2e5d
50
dl-kubevirt-image.sh
Normal file
50
dl-kubevirt-image.sh
Normal 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"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user