Upgrading an NSX Application Platform deployment with a Harbor registry with private CA causes a certification verification error.

Problem

Attempting to upgrade the NSX Application Platform to the 4.1.2 version using a private Harbor registry with private CA fails because the self-signed private Harbor CA certificate cannot be verified.

Cause

The Harbor CA certificate in NSX Manager is not propagated to all components of the NSX Application Platform. Consequently, this certificate is not available on the NSX Application Platform upgrade coordinator.

The upgrade coordinator does not load the host certificates, making the certificates added to the Kubernetes cluster unavailable during the upgrade process. This causes the Helm certificate to fail verification as it is considered as being signed by an unknown authority.

Solution

  1. Execute the following command on the NSX Manager.
    napp-k edit deployment upgrade-coordinator
  2. Add the following to the volumes section in the upgrade-coordinator deployment YAML file.
    volumes:
      - hostPath:
          path: /etc/ssl/certs
          type: ""
        name: host-ssl-certs
  3. Add the following to the volumeMounts section in the upgrade-coordinator deployment YAML file.
    volumeMounts:
      - mountPath: /etc/ssl/certs
        name: host-ssl-certs
  4. Wait for the upgrade coordinator to restart, proceed with the upgrade.

What to do next

This error can also occur post-upgrade if you delete NSX Intelligence and attempt to reactivate it. Reactivation of NSX Intelligence fails until the certificates are manually added to the cluster-api pod by following the solution steps outlined.