#!/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.17.9-10}"
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}" != "49a4630f665595a0ef9c9d96bfa6ffce  kublr-agent-images-${agent_VERSION}.tar.gz" ]]; then
    echo "Wrong md5 checksum!"
    echo "md5 checksum must be 49a4630f665595a0ef9c9d96bfa6ffce 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-resizer:1.8.7 ${REGISTRY}/addon-resizer:1.8.7
docker push ${REGISTRY}/addon-resizer:1.8.7
docker tag cr.kublr.com/calico/cni:v3.14.1 ${REGISTRY}/calico/cni:v3.14.1
docker push ${REGISTRY}/calico/cni:v3.14.1
docker tag cr.kublr.com/calico/node:v3.14.1 ${REGISTRY}/calico/node:v3.14.1
docker push ${REGISTRY}/calico/node:v3.14.1
docker tag cr.kublr.com/calico/pod2daemon-flexvol:v3.14.1 ${REGISTRY}/calico/pod2daemon-flexvol:v3.14.1
docker push ${REGISTRY}/calico/pod2daemon-flexvol:v3.14.1
docker tag cr.kublr.com/cluster-proportional-autoscaler-amd64:1.7.1 ${REGISTRY}/cluster-proportional-autoscaler-amd64:1.7.1
docker push ${REGISTRY}/cluster-proportional-autoscaler-amd64:1.7.1
docker tag cr.kublr.com/coredns:1.6.5 ${REGISTRY}/coredns:1.6.5
docker push ${REGISTRY}/coredns:1.6.5
docker tag cr.kublr.com/coreos/flannel:v0.12.0 ${REGISTRY}/coreos/flannel:v0.12.0
docker push ${REGISTRY}/coreos/flannel:v0.12.0
docker tag cr.kublr.com/etcd:3.4.3 ${REGISTRY}/etcd:3.4.3
docker push ${REGISTRY}/etcd:3.4.3
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/hyperkube-amd64:v1.17.9 ${REGISTRY}/hyperkube-amd64:v1.17.9
docker push ${REGISTRY}/hyperkube-amd64:v1.17.9
docker tag cr.kublr.com/k8s-dns-node-cache:1.15.10 ${REGISTRY}/k8s-dns-node-cache:1.15.10
docker push ${REGISTRY}/k8s-dns-node-cache:1.15.10
docker tag cr.kublr.com/kube-addon-manager:v9.0.2 ${REGISTRY}/kube-addon-manager:v9.0.2
docker push ${REGISTRY}/kube-addon-manager:v9.0.2
docker tag cr.kublr.com/kube-apiserver-amd64:v1.17.9 ${REGISTRY}/kube-apiserver-amd64:v1.17.9
docker push ${REGISTRY}/kube-apiserver-amd64:v1.17.9
docker tag cr.kublr.com/kube-controller-manager-amd64:v1.17.9 ${REGISTRY}/kube-controller-manager-amd64:v1.17.9
docker push ${REGISTRY}/kube-controller-manager-amd64:v1.17.9
docker tag cr.kublr.com/kube-proxy-amd64:v1.17.9 ${REGISTRY}/kube-proxy-amd64:v1.17.9
docker push ${REGISTRY}/kube-proxy-amd64:v1.17.9
docker tag cr.kublr.com/kube-scheduler-amd64:v1.17.9 ${REGISTRY}/kube-scheduler-amd64:v1.17.9
docker push ${REGISTRY}/kube-scheduler-amd64:v1.17.9
docker tag cr.kublr.com/kubernetes-helm/tiller:v2.14.3 ${REGISTRY}/kubernetes-helm/tiller:v2.14.3
docker push ${REGISTRY}/kubernetes-helm/tiller:v2.14.3
docker tag cr.kublr.com/kubernetesui/dashboard:v2.0.0-rc5 ${REGISTRY}/kubernetesui/dashboard:v2.0.0-rc5
docker push ${REGISTRY}/kubernetesui/dashboard:v2.0.0-rc5
docker tag cr.kublr.com/kubernetesui/metrics-scraper:v1.0.3 ${REGISTRY}/kubernetesui/metrics-scraper:v1.0.3
docker push ${REGISTRY}/kubernetesui/metrics-scraper:v1.0.3
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/kublr/k8s-dashboard-auth-proxy:v1.0 ${REGISTRY}/kublr/k8s-dashboard-auth-proxy:v1.0
docker push ${REGISTRY}/kublr/k8s-dashboard-auth-proxy:v1.0
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.1 ${REGISTRY}/pause-amd64:3.1
docker push ${REGISTRY}/pause-amd64:3.1
