Command Exit Code 1 Encountered While Upgrading Harbor CNF in TCA
search cancel

Command Exit Code 1 Encountered While Upgrading Harbor CNF in TCA

book

Article ID: 449714

calendar_today

Updated On:

Products

VMware Telco Cloud Automation VMware Telco Cloud Platform

Issue/Introduction

In VMware Telco Cloud Automation (TCA), a Harbor Cloud Native Network Function (CNF) upgrade fails at the UpgradeStart workflow step.

The TCA task shows the exact error messages:

  • Commands exit code is 1

  • The execution of the k8s step failed

The detailed step log shows that the metallb ipaddresspool and l2advertisement CRD annotation completed successfully, but the step ultimately fails. Note that "not labeled" messages visible in the UpgradeStart log output (e.g., customresourcedefinition.apiextensions.k8s.io/ipaddresspools.metallb.io not labeled) are not errors. They indicate the label already existed with the same value and no change was needed. These lines do not contribute to the failure.

Environment

TCA 3.4

TCP 5.1.x

Cause

The UpgradeStart workflow in the shipped Harbor 2.13.1.1 CSAR attempts to clean up metallb IP Address Pool resources before the upgrade using incorrect resource names.

Resolution

A fixed Harbor 2.13.1.1 CSAR is available that corrects the UpgradeStart workflow script.

  1. Download the fixed CSAR: Harbor-2.13.1.1-25600951.csar.

  2. In TCA, navigate to Catalog > Network Function and onboard the fixed CSAR file.

    • Once onboarded, a new catalog entry will appear with Descriptor Version 3.1.0 and Software Version 2.13.1.1.

  3. Navigate to Inventory > Network Function.

  4. Locate the Harbor CNF instance that is currently instantiated.

  5. Click the actions menu (vertical ellipsis) next to the instance and select Upgrade.

  6. Select the newly onboarded harbor-2.13.1.1 package as the upgrade target and proceed through the wizard.

  7. When the Inputs tab prompts for the namespace value, provide the namespace where the metallb helm chart and Harbor IP Address Pool resource are deployed.

    • To identify the correct namespace, run: helm list -A | grep metallb.

    • Use the namespace from the output as the input value.

  8. Complete the upgrade.

    • Once the upgrade completes, verify all pods are running by executing: kubectl get pods -n <metallb-namespace>.

  9. Confirm the Harbor IP Address Pool resources are present:

    • kubectl get IPAddressPool,L2Advertisement -n <metallb-namespace>.

  10. Confirm Harbor is healthy by executing:

    • curl -sk https://<REDACTED_HOSTNAME>/api/v2.0/health | python3 -m json.tool.

    • All components should report "status": "healthy"

Additional Information

Note: The "not labeled" messages visible in the UpgradeStart log output (e.g., customresourcedefinition.apiextensions.k8s.io/ipaddresspools.metallb.io not labeled) are not errors.

They indicate the label already existed with the same value and no change was needed. These lines do not contribute to the failure

Attachments

Harbor-2.13.1.1-25600951.csar get_app