Management subsystem two data center upgrade to v10.0.5.5 and later

Upgrades to v10.0.5.5 and later: How to upgrade your management subsystem in a two data center deployment.

About this task

Follow the steps in this topic, along with the steps documented in Upgrading to the latest release on VMware.

Some steps in the upgrade process are run from the project directory with the apicup command. Other steps require you to login to the management VMs as root user. To login as root, follow these steps:
  • Use SSH to login to the VM as the apicadm user:
    ssh apicadm@<hostname>
  • Switch to the root user with sudo:
    sudo -i

Procedure

  1. Review the Upgrade considerations on VMware.
  2. Complete the Preparing to upgrade on VMware steps.
  3. Determine the current version and license of API Connect (the version that you are upgrading from).
    You will need to specify the correct version number and license in the next step.
    1. Login to the management VM, switch to root user, and run the following command:
      apic version

      In the response, the - subsystem-<subsytem-name> statement displays the installed version. In the following example, the response indicates that the installed version is 10.0.5.2:

      apic version
      
      INFO[0000] Log level: info                              
      Control plane: 1.26.0
      Appliance base 4.6.0
      GitCommitSha:10.0.5.2-55-gb784ac7
      Packages:
      - appliance-base:4.6.0
      - appliance-runtime-4.6.0:1.0.0
      - appliance-setup-4.6.0:1.0.0
      - subsystem-management:1:10.0.5.2
      Important: If you are upgrading from a source version of 10.0.1.x, you must append -eus to the end of all references to that version number; for example 10.0.1.2-ifix2-eus.
    2. To get the current license, run the following apicup command in your project directory:
      apicup licenses list
      in the response, the ID statement displays the installed license, for example:
      Accepted licenses:
      	ID: <source_license>
      	Product Version: <source_version>
      	URL: <license_url>
      Note: If there are multiple accepted licenses, refer only to the <source_license> that aligns with the <source_version> of your system (that is the <source_version> that matches the version that you obtained in step 3.a).
  4. Add source license and version to your extra-values.yaml file.
    Note: If you do not have an extra-values.yaml file, then create one in a directory that the apicup command can access.
    Add the source lines that you identified in step 3.b to your extra-values.yaml as shown:
    spec:
      version: "<source_version>"
      license:
        license: <source_license>
      imageRegistry: 127.0.0.1:8675/<source_version>
    
  5. Apply the extra-values.yaml file.
    Run the following apicup command to set the extra-values file for both the active and warm-standby sites:
    apicup subsys set <mgmt> extra-values-file=<extra-values-file-path>
    where <mgmt> is the name of your management subsystem, which you can get with:
    apicup subsys list

    If you want to validate your <extra-values-file-path>, and the other subsystem settings, before proceeding, you can run:

    apicup subsys get <mgmt> --validate
  6. Run the upgrade command on both sites:
    apicup subsys install <subsystem name> <subsystem upgrade tar archive>
    Note: If any Control Plane files are needed for your upgrade, you must append the files to the install command. For example:
    apicup subsys install <subsystem name> <subsystem upgrade tar archive> <path to control plane file 1> <path to control plane file 2>
  7. Login to the VMs on both sites and monitor the status. Verify that the subsystem status reaches the Running state.
    kubectl get mgmt
    
    NAME         READY   STATUS    VERSION    RECONCILED VERSION AGE
    management   n/n     Running   <current version>   <current version>   5h2m

    The RECONCILED VERSION/VERSION should still show your current version, not the version you are upgrading to.

  8. Disable 2DCDR on the warm-standby management subsystem:
    apicup subsys set <warm-standby management subsystem> multi-site-ha-enabled=false
    apicup subsys install <warm-standby management subsystem> --skip-health-check
    Conversion from warm-standby to a stand-alone management subsystem can take some time. Run the health check to ensure that the deployment is in a good state before proceeding:
    apicup subsys health-check <warm-standby management subsystem>
    an empty response means no detected problems.
  9. Disable 2DCDR on the active management subsystem.
    apicup subsys set <active management subsystem> multi-site-ha-enabled=false
    apicup subsys install <active management subsystem> --skip-health-check
    Conversion from active to a stand-alone management subsystem can take some time. Run the health check to ensure that the deployment is in a good state before proceeding:
    apicup subsys health-check <active management subsystem>
    an empty response means no detected problems.
  10. Remove the source license and version from your extra-values.yaml file.
    Delete the version, license, and imageRegistry lines that you added to your extra-values.yaml file in step 4.
    Apply this change to both sites by running the following command:
    apicup subsys install <mgmt> --skip-health-check
  11. Run the upgrade command on both sites:
    apicup subsys install <subsystem name> <subsystem_upgrade_tar_archive> --skip-health-check
  12. Continue following the standard management subsystem upgrade steps, from step 10.a on Upgrading to the latest release on VMware.
  13. After the upgrades on both sites are complete, re-enable 2DCDR on the previously active management subsystem.
    1. Wait until all pods are up (they will remain in the Warning state) and then run the following command to enable HA mode on the warm-standby machine:
      apicup subsys set <active management subsystem> multi-site-ha-enabled=true
      apicup subsys install <active management subsystem>

      The active site will not change to the Running state until HA mode is enabled on the warm-standby machine.

    2. Log in to the active VM to verify that the subsystem status reaches the Running state:
      kubectl get mgmt
      
      NAME         READY   STATUS    VERSION    RECONCILED VERSION AGE
      management   n/n     Running   <new version>   <new version>   5h2m
  14. Enable 2DCDR on the previously warm-standby management subsystem.
    apicup subsys set <warm-standby management subsystem> multi-site-ha-enabled=true
    apicup subsys install <warm-standby management subsystem>
    Login to the warm-standby VM to verify that the subsystem status reaches the Running state.
    kubectl get mgmt
    
    NAME         READY   STATUS    VERSION    RECONCILED VERSION AGE
    management   n/n     Running   <new version>   <new version>   5h2m