Packages

This topic provides an overview of packages you can install and configure on workload clusters in Tanzu Kubernetes Grid.

Note

To associate versions of Tanzu Kubernetes Grid (TKG) with the versions of the Tanzu Standard package repository that they work with, see TKG, Tanzu CLI Plugin, and Tanzu Standard Package Repo Versions.

Installing a package on a workload cluster created by Tanzu Kubernetes Grid adds a functionality to the cluster. This functionality typically provides services to the workloads that the cluster hosts. For example, the Antrea package provides the Antrea container network interface (CNI), the Contour package ingress control services, the Harbor package a private container registry, and so on. Some packages support the operation of the cluster itself.

Internally, a package consists of configuration metadata and image references that inform the package manager what software the package contains and how to install it into a Kubernetes cluster. Packages are grouped into package repositories. Some packages are enabled in clusters automatically while others are installed explicitly by using the Tanzu CLI. For more information about how packages and package repositories are implemented in Tanzu Kubernetes Grid, see Carvel API Resources below.

Note

If you are using the vSphere IaaS control plane (formerly known as vSphere with Tanzu) Supervisor to create workload clusters, see the vSphere IaaS control plane docs for information about how to install packages.

Types of Packages

Tanzu Kubernetes Grid includes the following types of packages:

  • Auto-managed packages. These packages are installed and upgraded automatically by Tanzu Kubernetes Grid. See the Auto-Managed Packages section below.
  • CLI-managed packages. These packages are installed and upgraded explicitly by using the Tanzu CLI. Located in the tanzu-standard package repository or in other repositories that you add to your clusters. See the CLI-Managed Packages section below.

Auto-Managed Packages

These packages are typically required for basic cluster functionality. Tanzu Kubernetes Grid installs and upgrades them automatically when you create and upgrade a Kubernetes cluster.

Note

The tanzu package CLI plugin is intended only for CLI-managed packages. Do not use the tanzu package CLI plugin to install and manage auto-managed packages. Their lifecycle is managed by Tanzu Kubernetes Grid.

See View and Customize Auto-Managed Package Configuration for how to view and update auto-managed package configuration.

Installation and Version Updates

Tanzu Kubernetes Grid manages the lifecycle of auto-managed packages. This includes automatic package installation and version updates.

Auto-managed packages are installed during cluster creation. To determine which auto-managed packages to install in a workload cluster, Tanzu Kubernetes Grid reads the Tanzu Kubernetes release that is used to create the cluster and cluster-specific configuration information. When you upgrade a workload cluster, as part of the upgrade process, Tanzu Kubernetes Grid updates the versions of the auto-managed packages that are installed in the cluster.

List of Auto-Managed Packages

The table below lists the auto-managed packages that TKG installs and what types of clusters they are installed in.

Auto-managed packages are installed from the tanzu-core repository and run in the tkg-system namespace.

Package Installed in Description
ako-operator Management cluster (vSphere with NSX ALB only) Provides VMware NSX Advanced Load Balancer. This package is installed if NSX Advanced Load Balancer is enabled.
antrea Management and workload clusters Enables pod networking and enforces network policies for Kubernetes clusters. Installed by default, unless Calico is selected as the CNI provider.
calico Management and workload clusters Enables pod networking and enforces network policies for Kubernetes clusters. Installed if Calico is selected as the CNI provider. Not supported on Windows.
capabilities Workload clusters Enables the Capabilities API. A "capability" is anything a Kubernetes cluster can do or have, such as objects, and the API surface area. Capability discovery can be used to answer questions such as "is this a TKG cluster?" or "does this cluster have a resource X?", and so on.
kapp-controller Management and workload clusters Manages packages.
load-balancer-and-ingress-service (AKO) Management and workload clusters (vSphere with NSX ALB only) Provides L4+L7 load balancing for applications running in clusters created by Tanzu Kubernetes Grid; used for north-south traffic. This package is installed if NSX Advanced Load Balancer is enabled.
metrics-server Management and workload clusters Provides Metrics Server
pinniped Management and workload clusters Provides user authentication. Installed only if an identity provider is configured. Can be installed in a standalone management cluster after it is already created; see Enable and Configure Identity Management in an Existing Deployment.
secretgen-controller Workload clusters Enables carvel-secretgen-controller
tanzu-addons-manager Management clusters Manages the lifecycle of tanzu-core packages.
tkg-pkg Management clusters Installs tanzu-addons-manager, tkr-source-controller, ClusterClass definitions, and other components that TKG standalone management clusters require.
vsphere-cpi Management and workload clusters Provides the vSphere Cloud Provider Interface

CLI-Managed Packages

CLI-managed packages extend Kubernetes clusters created by Tanzu Kubernetes Grid. After creating a cluster, you can install packages from the tanzu-standard package repository or from other package repositories that you add to the cluster.

For a list of CLI-managed packages, the package repositories where they are published, and how to install them, see Installing and Using VMware Tanzu Packages.

Carvel API Resources

To make packages available in Kubernetes clusters, Tanzu Kubernetes Grid creates the following API resources in the target cluster:

  • PackageRepository, or pkgr, represents a single package repository. It points kapp-controller, a package manager, to the package repository that is defined in the resource. A package repository contains Package and PackageMetadata resources. After a PackageRepository is created in your target cluster, kapp-controller can install any of the packages that the package repository contains. This API resource is used only for CLI-managed packages.
  • Package, or pkg, contains version-specific information about a given package and defines how to install the package. kapp-controller uses the Package resource when installing the package.
  • PackageMetadata, or pkgm, contains version-agnostic information about a given package.
  • PackageInstall, or pkgi, represents an installed package in your target cluster. It also references the Package resource that was used to install the package.

You can list and view these resources by using the kubectl api-resources and kubectl get commands. For more information about the Carvel API resources, see Packaging in the Carvel documentation.

check-circle-line exclamation-circle-line close-line
Scroll to top icon