Upgrading Tanzu Mission Control Self-Managed

To upgrade Tanzu Mission Control (TMC) Self-Managed, download the installer and follow the steps provided in Upgrade Tanzu Mission Control Self-Managed.

Upgrade Tanzu Mission Control Self-Managed

Do the following to upgrade Tanzu Mission Control Self-Managed.

  1. Download the installer to the bootstrap computer.

    You can download the installer from the Customer Connect download site.

  2. Extract the contents of the tarball to a new directory.

    mkdir tmc-sm-1.0.1
    tar -xf tmc-self-managed-1.0.1.tar -C ./tmc-sm-1.0.1
    
  3. Push the images to the project in the container registry that was set up for the initial installation.

    tmc-sm-1.0.1/tmc-sm push-images harbor --project {{harbor-instance}}/{{harbor-project}} --username {{username}} --password {{password}}

    After the command runs successfully, you will see the file pushed-package-repository.json in the tmc-sm-1.0.1 directory. The file includes the following contents:

    {"repositoryImage":"{{harbor-instance}}/{{harbor-project}}/package-repository","version":"1.0.1"}

  4. Make a note of the repositoryImage and version from the pushed-package-repository.json file.

  5. Update the package repository version for tanzu-mission-control-packages in the tmc-local namespace.

    tanzu package repository update tanzu-mission-control-packages --url "{{repositoryImage}}:{{version}}" --namespace tmc-local

  6. After kapp-controller reconciles the Tanzu packages in the repository, verify the package version.

    tanzu package repository list --namespace tmc-local

  7. Update the installed package with the new version.

    tanzu package installed update tanzu-mission-control -p tmc.tanzu.vmware.com --version "{{version}}" --values-file /home/kubo/values.yaml --namespace tmc-local

    Note

    Use the same values.yaml created during the initial installation.

    Use the version from the JSON file created in step 3.

  8. After kapp-controller reconciles the Tanzu packages in the repository, verify the package version.

    tanzu package repository list --namespace tmc-local

Troubleshooting TMC Self-Managed upgrade

The following describes how to troubleshoot if you encounter failures during the upgrade.

Package reconciliation failure

If the package upgrade fails indicating Reconcile failed, use the following command to get more details.

kubectl -n tmc-local describe packageinstall \<packageinstall-name\>

Occasionally, some services take a little longer to come up. This causes the failure during the upgrade for packageinstall/tanzu-mission-control when the package is in Reconciling state for more than 15 minutes.

Verify the failure by checking the status.usefulErrorMessage field in the output of the following command for the package that encountered failure

kubectl -n tmc-local describe packageinstall \<packageinstall-name\>

From the error message, note the service name and verify the status of the pod with the following command:

kubectl -n tmc-local get pods | grep service-name

kubectl -n tmc-local describe pod \<pod-name\>

kubectl -n tmc-local logs \<pod-name\>

Monitoring service failure

Upgrade can fail when the Prometheus service fails to start. You will see the following error:

Error: packageinstall/tanzu-mission-control (packaging.carvel.dev/v1alpha1) namespace: tmc-local: Reconciling: kapp: Error: waiting on reconcile packageinstall/tmc-local-monitoring (packaging.carvel.dev/v1alpha1) namespace: tmc-local:

Finished unsuccessfully (Reconcile failed: (message: Error (see .status.usefulErrorMessage for details))). Reconcile failed: Error (see .status.usefulErrorMessage for details)

If you see the error,

  1. Verify the status of the Prometheus pod.

    kubectl -n tmc-local get pod prometheus-server-tmc-local-monitoring-tmc-local-0

  2. If the pod is in CrashLoopBackOff state, retrieve the pod logs with the following command:

    kubectl -n tmc-local logs prometheus-server-tmc-local-monitoring-tmc-local-0

    If the logs show failure with the error panic: preallocate: no space left on device, then the PVC associated with the prometheus requires resizing.

  3. Update the size of the PVC. data-prometheus-server-tmc-local-monitoring-tmc-local-0 to 10 Gi and restart the pod.

    kubectl -n tmc-local edit pvc data-prometheus-server-tmc-local-monitoring-tmc-local-0
    
    kubectl -n tmc-local delete pod prometheus-server-tmc-local-monitoring-tmc-local-0
    
check-circle-line exclamation-circle-line close-line
Scroll to top icon