Deploy Tetrate Service Bridge Demo on Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE) and/or Elastic Kubernetes Service (EKS) using Terraform
The intention is to create a go-to demo from deploying underlying infra environment to deploying MP and CP and additional addons around usecases
The Makefile
in this directory provides ability to fastforward to anypoint of the automated provisioning of the TSB demo
graph TD;
A[make tsb] --> B[make k8s]
B[make k8s] --> C[make aws_k8s]
B[make k8s] --> CC[make azure_k8s]
B[make k8s] --> CCC[make gcp_k8s]
C[make aws_k8s] --> D[make tsb_mp]
CC[make azure_k8s] --> D[make tsb_mp]
CCC[make gcp_k8s] --> D[make tsb_mp]
D[make tsb_mp] --> DD[make tsb_cp]
D[make tsb_mp] --> G[make argocd]
D[make tsb_mp] --> F[make keycloak]
style F fill:lightgrey
- terraform >= 1.0.0
- AWS role configured and assumed(Route53 is used for TSB MP FQDN)
- (optional) Azure role configured and assumed
- (optional) GCP role configured and assumed
gcloud auth application-default login
- Clone the repo
git clone https://github.com/smarunich/tetrate-service-bridge-sandbox.git
- Copy
terraform.tfvars.json.sample
to the root directory asterraform.tfvars.json
{
"name_prefix": <YOUR UNIQUE PREFIX NAME TO BE CREATED>,
"tsb_fqdn": <YOUR UNIQUE PREFIX NAME TO BE CREATED>".cx.tetrate.info",
"tsb_version": "1.5.0",
"tsb_image_sync_username": <TSB_REPO_USERNAME>,
"tsb_image_sync_apikey": <TSB_REPO_APIKEY>,
"tsb_password": "Tetrate123",
"tsb_mp": {
"cloud": "azure",
"cluster_id": 0
},
"tsb_org": "tetrate",
"aws_k8s_regions": [
],
"azure_k8s_regions": [
"eastus"
],
"gcp_k8s_regions": [
"us-west1",
"us-east1"
]
}
All Make
commands should be executed from root of repo as this is where Make
file is.
- a) Stand up full demo
# Build full demo
make tsb
- b) Decouple demo/Deploy in stages
# setup underlying clusters, registries, jumpboxes
make k8s
# deploy tsb management plane
make tsb_mp
# onboard deployed clusters (dataplane/controlplane)
make tsb_cp
The completion of the above steps will result in:
- all the generated outputs will be provided under
./outputs
folder - output kubeconfig files for all the created aks clusters in format of: $cluster_name-kubeconfig
- output IP address and private key for the jumpbox (ssh username: tsbadmin), using shell scripts login to the jumpbox, for example to reach gcp jumpbox just run the script
ssh-to-gcp-jumpbox.sh
Infra Staging
TSB MP Fastforward
TSB CP Fastforward
When you are done with the environment, you can destroy it by running:
make destroy
- Terraform destroys only the resources it created (
make destroy
) - Terraform stores the
state
across workspaces in different folders locally - Cleanup of aws objects created by K8s loadbalancer services (ELB+SGs) is currently manual effort