Skip to main content
logoTetrate Global Load BalancerVersion: Latest

Acquire Images

Before installation, you will first need to copy the Tetrate GSLB images from the Tetrate repository (an account and API key is needed) into your private repository.

Configure the Helm repository

# Add the Tetrate TSB Helm repo
helm repo add tetrate-tsb-helm 'https://charts.dl.tetrate.io/public/helm/charts/'
helm repo update

# List the available versions
helm search repo tetrate-tsb-helm -l | grep -i gslb

Expect to see output resembling:

Repos for tetrate-gslb chart
tetrate-tsb-helm/tetrate-gslb        	1.2.1        	1.2.1      	A Helm chart for Kubernetes
tetrate-tsb-helm/tetrate-gslb 1.2.0 1.2.0 A Helm chart for Kubernetes
...

Acquire the Tetrate GSLB Controller and External DNS images and dependencies

Pull the Tetrate GSLB images to a private repository. You can obtain the appropriate container version tags from the Helm chart; the following is appropriate for release 1.2.1:

TETRATE_GSLB_VERSION=v1.2.1
EXTERNAL_DNS_VERSION=v0.21.0-4200000f24
BUSYBOX_VERSION=1.36.1

REGISTRY=https://PRIVATE_REGISTRY_LOCATION

# Login to the Docker repository using your username and APIKEY
docker login containers.dl.tetrate.io

# ${REGISTRY} is your private Docker registry
# Make sure to run the command from an architecture compatible machine, say amd64, or use --platform linux/amd64
docker pull containers.dl.tetrate.io/tetrate-gslb:${TETRATE_GSLB_VERSION}
docker tag containers.dl.tetrate.io/tetrate-gslb:${TETRATE_GSLB_VERSION} ${REGISTRY}/tetrate-gslb:${TETRATE_GSLB_VERSION}
docker push ${REGISTRY}/tetrate-gslb:${TETRATE_GSLB_VERSION}

docker pull containers.dl.tetrate.io/external-dns:${EXTERNAL_DNS_VERSION}
docker tag containers.dl.tetrate.io/external-dns:${EXTERNAL_DNS_VERSION} ${REGISTRY}/external-dns:${EXTERNAL_DNS_VERSION}
docker push ${REGISTRY}/external-dns:${EXTERNAL_DNS_VERSION}

docker pull containers.dl.tetrate.io/busybox:${BUSYBOX_VERSION}
docker tag containers.dl.tetrate.io/busybox:${BUSYBOX_VERSION} ${REGISTRY}/busybox:${BUSYBOX_VERSION}
docker push ${REGISTRY}/busybox:${BUSYBOX_VERSION}

Example: Pull images to the Azure Container Registry

For this example, we used the container registry created with one of the Kubernetes clusters in one of the Edge Gateway resource groups. Note that the registry name must be in lower-case, and contain the .azurecr.io part of the FQDN:

# Make sure to run the command from an architecture compatible machine, say amd64

az login
az account set --subscription 8a42948e-6087-47d2-bdb8-b530d558db22

# The lowercased version of your registry name; also note the .azurecr.io suffix used below
az acr login --name glbdemo010tsbacr6lfmcxsbybkkvopl

docker pull containers.dl.tetrate.io/tetrate-gslb:${TETRATE_GSLB_VERSION}
docker tag containers.dl.tetrate.io/tetrate-gslb:${TETRATE_GSLB_VERSION} glbdemo010tsbacr6lfmcxsbybkkvopk.azurecr.io/tetrate-gslb/tetrate-gslb:${TETRATE_GSLB_VERSION}
docker push glbdemo010tsbacr6lfmcxsbybkkvopk.azurecr.io/tetrate-gslb/tetrate-gslb:${TETRATE_GSLB_VERSION}

docker pull containers.dl.tetrate.io/external-dns:${EXTERNAL_DNS_VERSION}
docker tag containers.dl.tetrate.io/external-dns:${EXTERNAL_DNS_VERSION} glbdemo010tsbacr6lfmcxsbybkkvopk.azurecr.io/tetrate-gslb/external-dns:${EXTERNAL_DNS_VERSION}
docker push glbdemo010tsbacr6lfmcxsbybkkvopk.azurecr.io/tetrate-gslb/external-dns:${EXTERNAL_DNS_VERSION}

docker pull containers.dl.tetrate.io/busybox:${BUSYBOX_VERSION}
docker tag containers.dl.tetrate.io/busybox:${BUSYBOX_VERSION} glbdemo010tsbacr6lfmcxsbybkkvopk.azurecr.io/tetrate-gslb/busybox:${BUSYBOX_VERSION}
docker push glbdemo010tsbacr6lfmcxsbybkkvopk.azurecr.io/tetrate-gslb/busybox:${BUSYBOX_VERSION}

You will need to create a pull secret on each cluster in order to pull the images from the container registry. If you're using the Azure CR, the following instructions (based on the Azure documentation) are representative:

  • In the Azure portal, go to your selected registry, then Access Keys. Take note of the server, username and password.
  • Create the secret in each Edge Gateway cluster (repeat the commands below, using the appropriate kubectl context for each cluster):
kubectl config use-context aks-glbdemo01-eastus-0

kubectl create ns tetrate-gslb-system
kubectl create secret docker-registry glbdemo010tsbacr6lfmcxsbybkkvopk-secret \
--namespace tetrate-gslb-system \
--docker-server=glbdemo010tsbacr6lfmcxsbybkkvopl.azurecr.io \
--docker-username=glbdemo010tsbacr6LfMCxsBybkKVOPL \
--docker-password=5whHMbnCNTUq+uT7PrrLHNZXaWt85NiYSUUgSr6lv6+ACRBBmZUz

You have now configured each cluster with the required credentials to pull images from the Azure container registry.