vCF 3.x – ESXi upgrade Procedure for Custom Vendor ISO (vCF 3.5.1 & Higher)


ESXi hosts that uses Vendor specific ISO’s need a bit of extra care when you want to use them for vCF upgrades. In this document we’re going to do a step by step tutorial for upgrading ESXi hosts in vCF with custom iSO’s. This procedure only applies for vCF deployments that are on 3.5.1. or higher. If this is not the case, you’ll need to make use of a different procedure, which can be found here: 

This document is only needed if you want to use a custom ISO. If you are not using a custom iso, then you can just simply upgrade each domain through the SDDC-Manager and you don’t even need this procedure and you can stop reading 😉.


Official documentation for this can be found here:

Step 1- Download the standard ESXi Upgrade bundle

Quite simple, download the “standard” ESXI bundle within the SDDC-Manager. We also need this one as a reference beside the custom ISO. This can be done at the Update/Patches tab of the Domain when you the next step is to upgrade the ESXI hosts, or you can download it before hand in the Repository bundle tab.

Step 2 – Uploading & Using a Custom Image

First things first, you need to make sure that you downloaded the right Vendor Specific ISO.

In order to use a custom ISO, there are a few rules you should hold onto in order for the upgrade to run smoothly. At least, that is what me and my colleagues found out the hard way.

2.1 Choosing the Right Custom ISO
When you use a custom ISO, make sure that the Vendor used the same build number as the one that is being used by vCF for the upgrade. This is simply the easiest and best way for your upgrade to work. If however, this is really not possible, since your vendor skipped a certain build number, you can use a divergent build number in your custom iso. However, this should be as close as possible to the original ESXi Build number within vCF, and definitely not higher. If this is higher, you’ll risk that the upgrade will fail, or that your vCenter doesn’t support it. Best way is to always stick to at least the same major release. An update like 6.7 u1 or u2 is also considered as a major release. Everything between the updates is considered as a minor upgrade & release.

In our case we want to upgrade from vCF to 3.5. The ESXi build version that is being used in vCF 3.5 for the ESXi hosts is 10764712. This build also known as ESXi 6.7 u1 (patch 5). In our case we have the exact same build number from our vendor, which was Dell in this case. However if wanted to use a different version, it has to be at least 6.7 u1 and not higher then patch 5. If you want to know more about Release versions and build numbers within ESXi, check out this kb article:

One last tip. You don’t need to use a custom ISO for every ESXi upgrade within vCF. The only time that I use a custom ISO, is when vCF is upgrading the ESXi hosts to a major version. With the minor versions I just use the standard image that the SDDC-Manager uses. This doesn’t overwrite the 3th party vibs, as long you don’t have a Major upgrade.

2.2 Snapshot the SDDC-Manager
Before you start working on the SDDC-Manager, make sure that you have made a snapshot of the SDDC-Manager, just in case something goes wrong.

2.3 Make a SSH connection to the SDDC-Manager
Make a SSH connection to the SDDC-Manager with a tool that you prefer.

Change the directory to /nfs/vmware/vcf/nfs-mount .

2.4 Change the directory Permissions & Owner
Change the Permissions

chmod -R 775 /nfs/vmware/vcf/nfs-mount/esx-upgrade-partner-binaries/

Change the Owner

chown -R vcf_lcm:vcf /nfs/vmware/vcf/nfs-mount/esx-upgrade-partner-binaries/

2.5 Upload the ISO to the directory
I used WinSCP for this task.

Repeat the previous commands to change the permissions on the ISO.

2.6 Create a JSON file for the custom ESXi image
We used the following template.


"esxCustomImageSpecList": [{

"bundleId": "ID",

"targetEsxVersion": "version",

"useVcfBundle": false,

"customIsoAbsolutePath": "Path_to_ISO"



Parameters Explained
BundleID: It is the bundle ID that you can find in the standard bundle that was downloaded in the SDDC-Manager.

TargetEsxVersion: This is the ESXi version of the custom image. In our case it was identical to the original update bundle.

UseVcfBundle: Set this to false if you want to upgrade with a custom iso and not the original bundle in the SDDC-Manager.

CustomIsoAbsolutePath: this is the path were we dropped the ISO.

In our case this ended up as following:


"esxCustomImageSpecList": [{

"bundleId": " f88d9e30-9219-4e43-8903-7996865683e3",

"targetEsxVersion": "6.7.0-13644319",

"useVcfBundle": false,





Save the JSON file as “esx-custom-image-upgrade-spec.json” and upload it to the SDDC-Manager. You can simply place the text in a notepad and save it as “all files” with the .json extension at the end, in case you never have done this before.

2.7 Upload JSON file & change Permissions
Upload the file to the folder:

Make sure that this happends correctly otherwise the json file will not be followed and the upgrade will continue with the standard image, and possibly overwrite the third party vibs.

After that, set the correct permissions on the file from the SDDC-Manager

chmod -R 775 /nfs/vmware/vcf/nfs-mount/esx-custom-image-upgrade-spec.json 
chown -R vcf_lcm:vcf /nfs/vmware/vcf/nfs-mount/esx-custom-image-upgrade-spec.json

2.8 Edit the “” file
Open the file “” (I used the VI editor for this):

And change the following parameter to the custom .json path.:


After that we can start with the upgrade.

Step 3 – Note down the third Party Vibs & Start the ESXi upgrade

To be sure that after the upgrade, you can check if the custom vibs have not been overwritten and actually have been updated. Note down the vibs that are currently is installed.
They can simply be find in the SDDC-Manager under:

Workload Domain — > Domain you want to up grade the host — > Update/Patches — > ESXi Hosts — > Third-Party Custom VIBs.

After that do a precheck and start the upgrade if correct.
Once you’re done, check if the vibs have been updated or are still present.


↑↑ Follow me on my Socialz ↑↑ - Or - ↓↓ Care & Share ↓↓

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.