This topic explains how to prepare Tanzu Kubernetes Grid (TKG) workload clusters before installing Tanzu packages on them. Tanzu packages are packaged services that extend workload cluster functionality.
Before you can install Tanzu packages to a workload cluster, you need to:
imgpkg
tool on your workstation.The sections below describe these steps.
Before preparing to install Tanzu packages to a workload cluster as described below, you need:
imgpkg
The Carvel imgpkg
command (https://carvel.dev/imgpkg/) lets you browse package repositories.
To install Carvel imgpkg
:
Install imgpkg
.
wget -O- https://carvel.dev/install.sh > install.sh
sudo bash install.sh
Verify installation:
imgpkg version
imgpkg version 0.37.1
Before you can install Tanzu packages to a cluster, you need to add the package repository from which the cluster downloads the package images.
The commands below refer to the Tanzu Standard package repository, which is distributed by VMware and contains the packages described in this publication. The Tanzu Standard repository is public, so you do not need to log in.
To add the package repository to a TKG workload cluster:
Log in to the target cluster with both the Tanzu CLI and Kubectl.
List the repository versions:
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/repo
This command returns the available TKG package repository versions, for example:
Tags
Name
...
v1.6.0
v1.6.0-update.1
v1.6.1
v1.6.1_update.1
v2.1.0
v2.1.1
v2.1.1_update.1
v2.1.1_update.2
v2.2.0
v2.2.0_update.1
v2.2.0_update.2
...
25 tags
Succeeded
The latest package repository for TKG 2.2 is v2.2.0_update.2. This is the version to use for TKG 2.2, assuming your environment meets the requirements. See Supervisor Version Requirements.
Add the package repository as follows, depending on your TKG deployment option:
Supervisor:
Create a packagerepo.yaml
specification file that references the target repository version.
apiVersion: packaging.carvel.dev/v1alpha1
kind: PackageRepository
metadata:
name: tanzu-standard
namespace: tkg-system
spec:
fetch:
imgpkgBundle:
image: projects.registry.vmware.com/tkg/packages/standard/repo:v2.2.0_update.2
Install the package repository on the TKG cluster:
kubectl apply -f packagerepo.yaml
Standalone management cluster: Run the tanzu package repository add
command as described in Add a Package Repository.
Use Tanzu CLI or Kubectl commands to confirm that the repository object is created:
tanzu package repository list -A
NAMESPACE NAME SOURCE STATUS
tkg-system tanzu-standard (imgpkg) projects.registry.vmware.com/tkg/packages/standard/repo:v2.2.0_update.2 Reconcile succeeded
kubectl get packagerepositories -A
NAMESPACE NAME AGE DESCRIPTION
tkg-system tanzu-standard 24s Reconcile succeeded
Use Tanzu CLI or Kubectl commands to list the packages in the repository:
tanzu package repository list -A
kubectl -n tkg-system get packages
This kubectl
command returns a list of all available packages and their versions in the repository by querying the packages CRD. Refer to this list to determine which package versions you want to install.
kubectl -n tkg-system get packages
NAME PACKAGEMETADATA NAME VERSION AGE
cert-manager.tanzu.vmware.com.1.1.0+vmware.1-tkg.2 cert-manager.tanzu.vmware.com 1.1.0+vmware.1-tkg.2 4h39m13s
cert-manager.tanzu.vmware.com.1.1.0+vmware.2-tkg.1 cert-manager.tanzu.vmware.com 1.1.0+vmware.2-tkg.1 4h39m13s
...
---
contour.tanzu.vmware.com.1.17.1+vmware.1-tkg.1 contour.tanzu.vmware.com 1.17.1+vmware.1-tkg.1 4h39m12s
contour.tanzu.vmware.com.1.17.2+vmware.1-tkg.2 contour.tanzu.vmware.com 1.17.2+vmware.1-tkg.2 4h39m12s
...
The TKG workload cluster where you deploy a Tanzu package should be provisioned with a default storage class. Specifically, the Prometheus and Grafana packages require a default storage class.
For Supervisor-deployed clusters provisioned without the default storage class, you can patch the existing storage class and add the required annotation to specify it as default. See Patching a Storage Class.
For Supervisor-deployed clusters, the storage limit for the vSphere namespace that contains the target workload cluster must be larger than the total persistent volume claim size. For more information on vSphere namespace storage quota, see Configuring vSphere Namespaces for TKG Clusters on Supervisor.
Component | Tanzu Package | Default Storage Size |
---|---|---|
Grafana | Grafana | 8 Gi |
Prometheus Server | Prometheus | 8 Gi |
Alertmanager | Prometheus | 8 Gi |
Harbor | Harbor Registry | Varies by PVC |
To adjust the storage limit for the vSphere Namespace where the TKG cluster is provisioned:
The TKG package repository is versioned. The table below maps the version of the repository to a particular vSphere with Tanzu release for Kubectl installations.
With vSphere 8, installing TKG Packages is simplified by the package-based TKR, which includes the Carvel packaging system and Kapp Controller. Both components are automatically managed as part the TKR image on which TKG 2.x nodes are based.
If you are installing packages on a vSphere 7 U3 instance of vSphere with Tanzu, you must first install Kapp Controller. See Install Kapp Controller Using Kubectl (vSphere 7 TKR only).
Refer to the TKR Release Notes for TKR compatibility with vSphere.
Package Repository Version | vSphere Version | Supervisor Version | TKR Version |
---|---|---|---|
v2.2.x | vSphere 8 U1c | 1.25 | vSphere 8 TKR 1.25 |
v2.1.x | vSphere 8 U1 | 1.24 | vSphere 8 TKR 1.24 |
v1.6.x | vSphere 8 | 1.23 | vSphere 8 TKR 1.23 |
v1.6.x | vSphere 7 U3 | 1.21+ | vSphere 7 TKR 1.21+ |
Proceed with installing the Tanzu Packages, starting with Cert Manager. See Install Cert Manager for Certificate Management.