#!/usr/bin/env bash

# 判断环境平台
if [ -z "${ARCH}" ]; then
  case $(uname -m) in
    x86_64) ARCH=amd64 ;;
    aarch64) ARCH=arm64 ;;
    *) printf "$err: 不支持该平台 $(uname -m)"; exit 1 ;;
  esac
fi

package_name="kubernetes-1.20.15-images.${ARCH}.tar.xz"
image_path="k8s_images"

# 终端颜色定义
txtbld=$(tput bold)             # Bold
bldred=${txtbld}$(tput setaf 1) # red
bldgre=${txtbld}$(tput setaf 2) # green
bldylw=${txtbld}$(tput setaf 3) # yellow
txtrst=$(tput sgr0)             # Reset
err=${bldred}ERROR${txtrst}
info=${bldgre}INFO${txtrst}
warn=${bldylw}WARNING${txtrst}

k8s_images=(
    registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.20.15
    registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.20.15
    registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.20.15
    registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.20.15
    registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
    registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0
    registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0
    registry.cn-shenzhen.aliyuncs.com/shuhui/cni:v3.19.4
    registry.cn-shenzhen.aliyuncs.com/shuhui/kube-controllers:v3.19.4
    registry.cn-shenzhen.aliyuncs.com/shuhui/node:v3.19.4
    registry.cn-shenzhen.aliyuncs.com/shuhui/pod2daemon-flexvol:v3.19.4
    registry.cn-shenzhen.aliyuncs.com/shuhui/metrics-server:v0.6.2
    registry.cn-shenzhen.aliyuncs.com/shuhui/busybox:1.36-glibc
    registry.cn-shenzhen.aliyuncs.com/shuhui/local-path-provisioner:v0.0.24
    registry.cn-shenzhen.aliyuncs.com/shuhui/nfs-subdir-external-provisioner:v4.0.2
    registry.cn-shenzhen.aliyuncs.com/shuhui/operator:1.9.6
    registry.cn-shenzhen.aliyuncs.com/shuhui/pilot:1.9.6
    registry.cn-shenzhen.aliyuncs.com/shuhui/proxyv2:1.9.6
    #registry.cn-shenzhen.aliyuncs.com/shuhui/ansible-docker:2.9.13_amd64
)

imgSuccessful=0
imgFailed=0

install -d ${image_path}
for img in ${k8s_images[@]}
do
    printf "$info: 镜像导出 [ ${bldgre}${img}${txtrst} ]"

    skopeo copy docker://${img} docker-archive:$(realpath .)/${image_path}/$(echo ${img##*/} | sed 's/:/@/').tar  >/dev/null 2>/dev/null

    if [[ "$?" -eq "0" ]]; then
        printf " | ${bldgre}√${txtrst}\n"
        let imgSuccessful=${imgSuccessful}+1
    else
        printf " | ${bldred}×${txtrst}\n"
        let imgFailed=${imgFailed}+1
    fi
done

cd $(realpath .)/${image_path}/ && XZ_OPT='-T0 -9' tar -cvJf ${package_name} *.tar  --remove-files

