Skip to content

Commit 47113ad

Browse files
author
William Lam
committed
Adding TKG Container Mirror script
Fixing tkg check Fixing pull Need to pull KIND image
1 parent da2ea6a commit 47113ad

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

shell/mirror_tkg_containers.sh

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
#!/bin/bash
2+
# Modified script from (@fabiorapposelli) to mirror TKG 1.0 (GA) containers into local Harbor Registry
3+
4+
REGISTRY_URL=registry.virtuallyghetto.com
5+
TKG_CLI_PATH=/usr/local/bin/tkg
6+
7+
if [ ! -e ${TKG_CLI_PATH} ]; then
8+
echo "Unable to find tkg binary in ${TKG_CLI_PATH} ... exiting"
9+
exit 1
10+
fi
11+
12+
LIST=(
13+
registry.tkg.vmware.run/kind/node:v1.17.3_vmware.2
14+
registry.tkg.vmware.run/cluster-api/cluster-api-aws-controller:v0.5.2_vmware.1
15+
registry.tkg.vmware.run/cluster-api/kubeadm-control-plane-controller:v0.3.3_vmware.1
16+
registry.tkg.vmware.run/cluster-api/kubeadm-bootstrap-controller:v0.3.3_vmware.1
17+
registry.tkg.vmware.run/cluster-api/cluster-api-controller:v0.3.3_vmware.1
18+
registry.tkg.vmware.run/cluster-api/cluster-api-vsphere-controller:v0.6.3_vmware.1
19+
registry.tkg.vmware.run/csi/volume-metadata-syncer:v1.0.2_vmware.1
20+
registry.tkg.vmware.run/ccm/manager:v1.1.0_vmware.2
21+
registry.tkg.vmware.run/csi/vsphere-block-csi-driver:v1.0.2_vmware.1
22+
registry.tkg.vmware.run/csi/csi-provisioner:v1.4.0_vmware.2
23+
registry.tkg.vmware.run/csi/csi-attacher:v1.1.1_vmware.7
24+
registry.tkg.vmware.run/csi/csi-node-driver-registrar:v1.1.0_vmware.7
25+
registry.tkg.vmware.run/csi/csi-livenessprobe:v1.1.0_vmware.7
26+
registry.tkg.vmware.run/calico-all/node:v3.11.2_vmware.1
27+
registry.tkg.vmware.run/calico-all/pod2daemon:v3.11.2_vmware.1
28+
registry.tkg.vmware.run/calico-all/cni-plugin:v3.11.2_vmware.1
29+
registry.tkg.vmware.run/calico-all/kube-controllers:v3.11.2_vmware.1
30+
registry.tkg.vmware.run/cluster-api/kube-rbac-proxy:v0.4.1_vmware.2
31+
registry.tkg.vmware.run/cert-manager/cert-manager-controller:v0.11.0_vmware.1
32+
registry.tkg.vmware.run/cert-manager/cert-manager-cainjector:v0.11.0_vmware.1
33+
registry.tkg.vmware.run/cert-manager/cert-manager-webhook:v0.11.0_vmware.1
34+
)
35+
36+
newImageRepo="${REGISTRY_URL}\/library"
37+
sourceDir="/root/.tkg"
38+
39+
${TKG_CLI_PATH} get mc
40+
41+
echo '> Start mirroring process'
42+
for image in "${LIST[@]}"
43+
do
44+
:
45+
image=${image//[$'\t\r\n ']}
46+
origImageRepo=$(echo "$image" | awk -F/ '{ print $1 }')
47+
imageDestination=$(echo -n "$image" | sed "s/$origImageRepo/$newImageRepo/g")
48+
echo "> Pulling $image"
49+
docker pull "$image"
50+
# Do not push KIND container into Harbor as this is only used locally
51+
if [ "$image" != "registry.tkg.vmware.run/kind/node:v1.17.3_vmware.2" ]; then
52+
echo "> Tagging $image -> $imageDestination"
53+
docker tag "$image" "$imageDestination"
54+
echo "> Pushing $imageDestination"
55+
docker push "$imageDestination"
56+
docker rmi "$image"
57+
fi
58+
# Leaving these containers cached in Photon to speed up KIND deployment
59+
if [[ "$imageDestination" != "${REGISTRY_URL}/library/cert-manager/cert-manager-webhook:v0.11.0_vmware.1" ]] && [[ "$imageDestination" != "${REGISTRY_URL}/library/cert-manager/cert-manager-cainjector:v0.11.0_vmware.1" ]] && [[ "$imageDestination" != "${REGISTRY_URL}/library/cert-manager/cert-manager-controller:v0.11.0_vmware.1" ]]; then
60+
docker rmi "$imageDestination"
61+
fi
62+
done
63+
64+
echo "> Pointing all image repos to $newImageRepo"
65+
grep -RiIl 'mage: ' "$sourceDir" | xargs perl -i -pe "s/mage: .*?\/(.*)/mage: ${newImageRepo//./\\.}\/\1/"

0 commit comments

Comments
 (0)