VCF 101 - Understanding VersionAlias.yml

Laraib Kazi

The VerionAlias.yml file on a SDDC Manager is referenced quite a bit across several VMware KBs, mostly in the context of "change this value here" or "add this value there" while troubleshooting VCF upgrades. There really aren't any articles online describing what this file really means or how it works. In this post, I will describe the various elements that are in a VersionAlias.yml file, and how to interpret the information available here.

Sample Content of VersionAlias.yml

Lets start with the different versions of each VCF component that we are dealing with:

version A The current version of the component in the VCF environment. This should correspond with the component version stored within the SDDC Manager database (or as displayed in the SDDC UI)
version B The version that the upgrade bundle reports as the required version in the upgrade bundle details in the SDDC UI. This is also called the bundleElementPreviousVersion in the bundle manifest if you view the upgrade bundle via CLI on the SDDC Manager.
version C The version that the upgrade bundle reports as the Update to Version in the upgrade bundle details in the SDDC UI. This is also known as the bundleElementVersion in the bundle manifest of the upgrade bundle.

This is what the Upgrade Bundle details look like in the SDDC UI Bundle Management page:

Upgrade Bundle details in the UI

Upgrade Bundle details in the manifest file

At this point, we are still not seeing the version A referenced anywhere in these upgrade bundles.

That is because the version A (which is current version of a component) is the one we are going to be aliasing.

For a given upgrade bundle, based on the Required Version and Update to Version,
it is going to upgrade version B to version C.
Version C is the target version of the component we are wanting to go to.

Ergo, we need to alias version A, so that it presents itself as version B to the LCM service.
THAT is the primary role of the VersionAlias.yml file - to alias multiple entries of version A as a different base version (version B), which will satisfy the criteria of the upgrade bundle that has a fixed required previous version.

All the entries that exist under the "alias" section of the file, are "version A".
The single entry that exists for the "base" section of the file, is "version B".
There will be no entry for "version C" anywhere in the file.

This is also described in the following KB article:
Understanding the VersionAlias.yml file in SDDC Manager (89291)