#!/bin/sh
# 
if [ -z "$1" ]; then
    echo Usage: $0 [REGISTRY]
    exit 1
fi

set -e
REGISTRY=$1
KUBLR_REPO="https://dl.kublr.com"
agent_VERSION="${agent_VERSION:-1.21.8-25}"
IMAGES_ARCHIVE="${KUBLR_REPO}/agent/${agent_VERSION%%-*}/kublr-agent-images-${agent_VERSION}.tar.gz"

if [[ ! -f "kublr-agent-images-${agent_VERSION}.tar.gz" ]]; then
    # Download artifacts from https://dl.kublr.com
    HTTP_RESPONSE=$(curl --silent --head --write-out "HTTPSTATUS:%{http_code}" -X GET ${IMAGES_ARCHIVE})
    HTTP_STATUS=$(echo "${HTTP_RESPONSE}" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
    if [ ! "${HTTP_STATUS}" -eq "200"  ]; then
	echo "Error getting file with version ${agent_VERSION}. HTTP status ${HTTP_STATUS}, nothing to do, exit."
	exit 1;
    fi

    echo "Processing kublr-agent-images-${agent_VERSION}.tar.gz: "
    wget --show-progress=yes --progress=dot:giga ${IMAGES_ARCHIVE} -O kublr-agent-images-${agent_VERSION}.tar.gz
    
    if [[ ! -f "kublr-agent-images-${agent_VERSION}.tar.gz" ]]; then
	echo "No file download found!"
	exit 1;
    fi
fi

MD5SUM=$(md5sum kublr-agent-images-${agent_VERSION}.tar.gz)
if [[ "${MD5SUM}" != "0c34643d1dfd3fde0407664416e1e79a  kublr-agent-images-${agent_VERSION}.tar.gz" ]]; then
    echo "Wrong md5 checksum!"
    echo "md5 checksum must be 0c34643d1dfd3fde0407664416e1e79a for kublr-agent-images-${agent_VERSION}.tar.gz"
    #exit 1;
fi


echo "Loading docker images..."
docker load --input kublr-agent-images-${agent_VERSION}.tar.gz
docker tag cr.kublr.com/addon-manager/kube-addon-manager:v9.1.4 ${REGISTRY}/addon-manager/kube-addon-manager:v9.1.4
docker push ${REGISTRY}/addon-manager/kube-addon-manager:v9.1.4
docker tag cr.kublr.com/addon-resizer:1.8.11 ${REGISTRY}/addon-resizer:1.8.11
docker push ${REGISTRY}/addon-resizer:1.8.11
docker tag cr.kublr.com/bitnami/kubectl:1.21.5 ${REGISTRY}/bitnami/kubectl:1.21.5
docker push ${REGISTRY}/bitnami/kubectl:1.21.5
docker tag cr.kublr.com/calico/cni:v3.20.1 ${REGISTRY}/calico/cni:v3.20.1
docker push ${REGISTRY}/calico/cni:v3.20.1
docker tag cr.kublr.com/calico/kube-controllers:v3.20.1 ${REGISTRY}/calico/kube-controllers:v3.20.1
docker push ${REGISTRY}/calico/kube-controllers:v3.20.1
docker tag cr.kublr.com/calico/node:v3.20.1 ${REGISTRY}/calico/node:v3.20.1
docker push ${REGISTRY}/calico/node:v3.20.1
docker tag cr.kublr.com/calico/pod2daemon-flexvol:v3.20.1 ${REGISTRY}/calico/pod2daemon-flexvol:v3.20.1
docker push ${REGISTRY}/calico/pod2daemon-flexvol:v3.20.1
docker tag cr.kublr.com/cluster-proportional-autoscaler-amd64:1.8.1 ${REGISTRY}/cluster-proportional-autoscaler-amd64:1.8.1
docker push ${REGISTRY}/cluster-proportional-autoscaler-amd64:1.8.1
docker tag cr.kublr.com/coredns/coredns:v1.8.0 ${REGISTRY}/coredns/coredns:v1.8.0
docker push ${REGISTRY}/coredns/coredns:v1.8.0
docker tag cr.kublr.com/coreos/flannel:v0.14.0 ${REGISTRY}/coreos/flannel:v0.14.0
docker push ${REGISTRY}/coreos/flannel:v0.14.0
docker tag cr.kublr.com/dns/k8s-dns-node-cache:1.17.0 ${REGISTRY}/dns/k8s-dns-node-cache:1.17.0
docker push ${REGISTRY}/dns/k8s-dns-node-cache:1.17.0
docker tag cr.kublr.com/etcd:3.4.13-0 ${REGISTRY}/etcd:3.4.13-0
docker push ${REGISTRY}/etcd:3.4.13-0
docker tag cr.kublr.com/haproxy:1.9-alpine ${REGISTRY}/haproxy:1.9-alpine
docker push ${REGISTRY}/haproxy:1.9-alpine
docker tag cr.kublr.com/helmpack/tiller:v2.17.0 ${REGISTRY}/helmpack/tiller:v2.17.0
docker push ${REGISTRY}/helmpack/tiller:v2.17.0
docker tag cr.kublr.com/kube-apiserver-amd64:v1.21.8 ${REGISTRY}/kube-apiserver-amd64:v1.21.8
docker push ${REGISTRY}/kube-apiserver-amd64:v1.21.8
docker tag cr.kublr.com/kube-controller-manager-amd64:v1.21.8 ${REGISTRY}/kube-controller-manager-amd64:v1.21.8
docker push ${REGISTRY}/kube-controller-manager-amd64:v1.21.8
docker tag cr.kublr.com/kube-proxy-amd64:v1.21.8 ${REGISTRY}/kube-proxy-amd64:v1.21.8
docker push ${REGISTRY}/kube-proxy-amd64:v1.21.8
docker tag cr.kublr.com/kubernetesui/dashboard:v2.2.0 ${REGISTRY}/kubernetesui/dashboard:v2.2.0
docker push ${REGISTRY}/kubernetesui/dashboard:v2.2.0
docker tag cr.kublr.com/kubernetesui/metrics-scraper:v1.0.6 ${REGISTRY}/kubernetesui/metrics-scraper:v1.0.6
docker push ${REGISTRY}/kubernetesui/metrics-scraper:v1.0.6
docker tag cr.kublr.com/kube-scheduler-amd64:v1.21.8 ${REGISTRY}/kube-scheduler-amd64:v1.21.8
docker push ${REGISTRY}/kube-scheduler-amd64:v1.21.8
docker tag cr.kublr.com/kublr/alpine-plus:3.11-1 ${REGISTRY}/kublr/alpine-plus:3.11-1
docker push ${REGISTRY}/kublr/alpine-plus:3.11-1
docker tag cr.kublr.com/kublr/cert-updater:1.19.0-14 ${REGISTRY}/kublr/cert-updater:1.19.0-14
docker push ${REGISTRY}/kublr/cert-updater:1.19.0-14
docker tag cr.kublr.com/metrics-server-amd64:v0.3.6 ${REGISTRY}/metrics-server-amd64:v0.3.6
docker push ${REGISTRY}/metrics-server-amd64:v0.3.6
docker tag cr.kublr.com/pause-amd64:3.2 ${REGISTRY}/pause-amd64:3.2
docker push ${REGISTRY}/pause-amd64:3.2
