This topic explains how to install cert-manager into a workload cluster in Tanzu Kubernetes Grid (TKG). cert-manager installs automatically in a standalone management cluster.
This topic applies to workload clusters running on vSphere, Amazon Web Services (AWS), and Azure.
NoteAs of v2.5, TKG does not support clusters on AWS or Azure. See the End of Support for TKG Management and Workload Clusters on AWS and Azure in the Tanzu Kubernetes Grid v2.5 Release Notes.
To prepare the cluster:
Get the admin credentials of the workload cluster into which you want to deploy cert-manager. For example:
tanzu cluster kubeconfig get my-cluster --admin
Set the context of kubectl to the cluster. For example:
kubectl config use-context my-cluster-admin@my-cluster
To install cert-manager:
If you are installing cert-manager to a single-node cluster as described in Single-Node Clusters on vSphere, patch the cert-manager
package annotations to prevent a conflict between the cert-manager
installed as a core package on single-node clusters and the cert-manager
in the Tanzu standard
repo:
kubectl annotate --overwrite package cert-manager.tanzu.vmware.com.1.12.2+vmware.1-tkg.1 tkg.tanzu.vmware.com/package-repo='standard'
If the cluster does not have a package repository with the cert-manager package installed, such as the tanzu-standard
repository, install one:
tanzu package repository add PACKAGE-REPO-NAME --url PACKAGE-REPO-ENDPOINT --namespace tkg-system
Where:
PACKAGE-REPO-NAME
is the name of the package repository, such as tanzu-standard
or the name of a private image registry configured with ADDITIONAL_IMAGE_REGISTRY
variables.PACKAGE-REPO-ENDPOINT
is the URL of the package repository.
tanzu-standard
URL is projects.registry.vmware.com/tkg/packages/standard/repo:v2024.4.12
. See List Package Repositories to obtain this value from the Tanzu CLI, or in Tanzu Mission Control see the Addons > Repositories list in the Cluster pane.Confirm that the cert-manager
package is available in your workload cluster:
tanzu package available list -A
Retrieve the version of the available package:
tanzu package available list cert-manager.tanzu.vmware.com -A
Install the cert-manager package:
tanzu package install cert-manager --package cert-manager.tanzu.vmware.com --namespace TARGET-NAMESPACE --version AVAILABLE-PACKAGE-VERSION
Where:
TARGET-NAMESPACE
is the namespace in which you want to install the cert-manager package. For example, the my-packages
or tanzu-cli-managed-packages
namespace.
--namespace
flag is not specified, the Tanzu CLI installs the package in the default
namespace.kubectl create namespace my-packages
.AVAILABLE-PACKAGE-VERSION
is the version that you retrieved above.For example:
tanzu package install cert-manager --package cert-manager.tanzu.vmware.com --namespace my-packages --version 1.12.2+vmware.1-tkg.1
Confirm that the cert-manager
package has been installed:
tanzu package installed list -A
The cert-manager
package and cert-manager
app are installed in the namespace that you specify when running the tanzu package install
command.
Confirm that the cert-manager
app has been successfully reconciled in your TARGET-NAMESPACE
. For example:
kubectl get apps -A
NAMESPACE NAME DESCRIPTION SINCE-DEPLOY AGE
my-packages cert-manager Reconcile succeeded 3m2s 3m12s
...
If the status is not Reconcile Succeeded
, view the full status details of the cert-manager
app. Viewing the full status can help you to troubleshoot the problem.
kubectl get app cert-manager --namespace TARGET-NAMESPACE -o yaml
Where TARGET-NAMESPACE
is the namespace in which you installed the package. If troubleshooting does not help you solve the problem, you must uninstall the package before installing it again:
tanzu package installed delete cert-manager --namespace TARGET-NAMESPACE
Confirm that the cert-manager-
pods are running:
kubectl get pods -A
The cert-manager pods and any other resources associated with the cert-manager component are created in the cert-manager
namespace.