
Overview
VMware Tanzu Application Platform (TAP) is an application development platform with a rich set of developer tools. It offers developers a paved path to production to build and deploy software quickly and securely on any compliant public cloud or on-premises Kubernetes cluster. TAP can be installed in various topologies to reflect your existing landscape and it is highly recommended by VMware to use multicluster topology for production use.
In this series of post, I will be covering the steps to install TAP (multi cluster) on 4 different kubernetes clusters each adopting one of following multicluster-aligned profiles:
- Iterate: Intended for inner-loop iterative application development.
- Build: Transforms source revisions to workload revisions; specifically, hosting workloads and supply chains.
- Run: Transforms workload revisions to running pods; specifically, hosting deliveries and deliverables.
- View: For applications related to centralized developer experiences; specifically, Tanzu Application Platform GUI and metadata store.
Prerequisites
- A Tanzu Network account to download Tanzu Application Platform packages.
- A container image registry, such as Harbor or Docker Hub with at least 10 GB of available storage for application images, base images, and runtime dependencies. When available, VMware recommends using a paid registry account to avoid potential rate-limiting associated with some free registry offerings.
- Registry credentials with push and write access made available to Tanzu Application Platform to store images.
- Network access to https://registry.tanzu.vmware.com
- Network access to your chosen container image registry.
There are some optional prerequisites as well, refer to official doc for more details.
Note: For this demo, I have used ubuntu machine as jumpbox to install TAP.
Create Kubernetes Cluster
- Steps to create AKS cluster is documented here (includes kubectl, az cli), but to install TAP with multi cluster topology, you need each kubernetes cluster with min 8 CPUs, 8 GB RAM. So ensure to deploy AKS cluster accordingly.
- For this post, I have created 4 AKS clusters and named it as
-
- tap-build-cluster
- tap-run-cluster
- tap-view-cluster
- tap-iterate-cluster
-
- Once the cluster is created and status turns green, click on the cluster > connect > “Run the following commands”
Install Tanzu CLI, plugins
Install Docker
- Refer to Docker page to get the detailed steps of Installing Docker.
Install Tanzu CLI
Sign to Tanzu Network and accept below EULAs:
- Cluster Essentials for VMware Tanzu
- Tanzu Application Platform
- Tanzu Build Service and its associated components:
Sign in to Tanzu Network and download tanzu-framework-bundle-linux (for Linux) into local machine and copy to destination jumpbox using scp or download directly using pivnet cli.
Install cluster essentials:
Sign in to Tanzu Network , Download tanzu-cluster-essentials-darwin-amd64-1.3.0.tgz
(for OS X) or tanzu-cluster-essentials-linux-amd64-1.3.0.tgz
(for Linux) into local machine and copy to destination jumpbox using scp or download directly using pivnet cli and install tanzu cluster essentials in all 4 kubernetes clusters as mentioned in below steps:
Install imgpkg, kapp CLIs
Create ACR (Optional)
In this demo, I will be using ACR (Azure Container Registries) to store the images. You can deploy the application with images located in any registry of your choice.
- Login to Azure portal > Container registries > Create container registry
- In Resource Group, create new as shown below and give it a name
- Give a registry name and select the Location from drop down.
- Review + Create
- Create
Once registry is successfully created, navigate to container registries > click on created registry > Settings > Access keys > Enable Admin user to get the password and collect below to authenticate using docker login, save it for future ref which will be used in TAP values file in later sections:
-
-
- Login server
- Username
- password
-
Relocate images to a registry
Add the Tanzu Application Platform package repository:
Execute the below commands on all the 4 kubernetes clusters by changing the contexts i.e., Build, Run, View and Iterate clusters.