VMware Cloud Foundation Sofware-Defined Data Center

Deep dive into VMware Cloud Foundation – Part 2 Nested Lab deployment

In my last blog post, I gave a very high-level overview of deploying a nested VCF lab using the VLC. If you haven’t read Part 1 yet,  Click here

Part 2 will review the architecture and user interface of VLC and some of the requirements necessary for operating a nested lab.

Jump host

In order to run VLC, we need a Windows jump host. This jump host is deployed with two physical NICs, with one NIC on the local LAN and the other NIC attached to the vDS created in Layer 1.  This allows the end-user to access the jump host from outside the lab and also has direct access to all the subnets within the nested VCF lab. The requirements of everything needed on this Jump host is spelled out in detail in the VLC documentation.


Cloud Foundation requires the use of multiple subnets, BGP routes, and Overlay networks. These are nested inside the vSphere distributed switch (vDS) on the single host.

The vDS PortGroup installed on layer 1 is required to have Promiscuous Mode, Allow Forged Transmits, and Allow MAC Address Changes set to Accept.  This is necessary for the Nested ESXi hosts to be able to communicate with each other inside the nested lab.

With the addition of Application Virtual Networks (AVN) in Cloud Foundation 3.9.1 BGP is a requirement. If you’re not a networking expert, configuring a BGP routing service can be tricky, but don’t worry, VLC has automated this part for you. VLC can inject this service inside the Cloud Builder appliance to meet this requirement.

Below is a diagram showing the nested architecture deployed by VLC. In Addition to BGP, VLC has configured the Cloud Builder appliance to host the remaining required services for Cloud Foundation.

Deployment Process

VLC has a user interface to make it easy for a lab to be deployed. To start the VLC User interface, simply execute the VLC PowerShell script (VLCGui.ps1) on the JumpBox. VLC will complete some preflight checks and then, it will remain running in the background.

Upon starting VLC, the end-user has a choice of the 3 large buttons on the left. These buttons are here to simplify the end-user experience for lab deployment.

  • Method 1- I will build it

Using method 1 assumes the end-user will provide the required services as spelled out in the Cloud Foundation documentation. This includes DNS, NTP, DHCP, and BGP Router.

  • Method 2 – Build it for me

Using method 2 means the end-user wants VLC to provide and configure the required services. VLC will deploy Cloud Builder and inject the additional services mentioned earlier. All necessary configuration inputs for these services are retrieved from the JSON configuration file for Cloud Foundation. (Mentioned in Part-1) Using this method provides a highly automated end-user experience, and all required services are deployed accurately within the nested sandbox built by VLC.

  • Method 3 – Expansion Pack

Method 3 assumes that the end-user has already built a complete lab using the other methods above and now they want to add more nested hosts to this existing environment.



Building your first four hosts with method 1 or 2

Selecting method 1 or 2 will build your first 4 hosts for the management workload domain. This is done by creating 4 virtual nested ESXi hosts. These nested hosts are automatically sized and created for the end-user by VLC. VLC then configures the nested hostnames, and IP’s to be used based on the Cloud Foundation JSON input configuration file. The end-user can also modify this file to meet the needs of the lab they wish to deploy. After the nested hosts are created, VLC can use this virtual hardware and the Cloud Builder appliance to create the Management Domain.

Cloud Foundation Builder – Bring-up

After selecting one of the three methods in figure 3, the end user is presented with a screen to enter additional parameters for the lab environment. (Left side) Most of the information listed in the VLC UI is automatically retrieved from the JSON file inputs for Cloud Foundation.


The right side of the UI is the information to connect to the physical host in Layer 1. One thing to note here is that the field for selecting the VSS or vDS PortGroup is automatically filtered to only show PortGroup that are properly configured with the settings needed for VLC mentioned earlier. (Promiscuous Mode, Allow Forged Transmits, and Allow MAC Address Changes all set to Accept.)

The four Checkboxes in the UI are used as follows

  • [All Flash] will deploy the nested host hardware as all flash storage drives for vSAN. (Note: Uses more RAM, but allows testing vSAN features requiring all flash, such as Dedupe and Compression)
  • [Hosts only] will only deploy hosts using the expansion pack (Note: this option will be checked when the user selects “Expansion pack” on the opening menu.)
  • [Do Bring-up] will trigger the Cloud Builder API and begin the VCF Bring up process (Note: Selecting this checkbox enables VLC to fully automate the bring up process. Leaving it unchecked allows the user to manually invoke Cloud Builder for testing or enablement)
  • [Internal Svcs] will inject the required services into the Cloud Builder (Note: This option is checked when the user selects “build it for me” on the opening menu and unchecked when the user selects “I will build it”

With the necessary parameters entered, the end-user connects to the physical lab and selects the Construct button. From this point, (depending on parameters entered and selected) VLC will deploy an entire Cloud Foundation Lab in three hours or less. (Depending on layer 1 hardware performance.)


In order to test all the capabilities built into Cloud Foundation, the end-user needs to scale the deployment beyond the Management Domain by creating one or more Workload Domains. VLC facilitates the addition of nested hosts through the expansion pack feature. This feature consumes an additional JSON formatted file specifying attributes, such as the number of disks and disk size, needed for the creation of the hosts. Using the same method to create a custom ESXi ISO image as before, the hosts are instantiated.

The number of nested hosts that can be added via this feature is only limited to the underlying physical resources available. VLC powered labs with as many as 16 virtual hosts have been used to demonstrate features like stretched clusters, VMware PKS with Cloud Foundation, Horizon, vRealize Suite, and HCX deployments Connecting nested labs to VMC on AWS.


Where to get the bits?

VMware Cloud Foundation software bits are only available a few ways today. Here are a few methods to get started with

  1. VMUG Advantage Eval Experience – VCF is available for VMUG Advantage Subscribers
  2. vExpert Program – If you are a #vExpert you can log in and download the bits for free
  3. VCF customers – Can download the bits from the My VMware Portal

JSON config file

I mentioned in part 1 the use of an XLSX or JSON file needed for configuring and deploying Cloud Foundation. Included with VLC, is a sample JSON file. If you are following along, and deploying VLC, I recommend using the pre-configured JSON included with VLC. All you need to do is modify the <Insert License Key> portion of the JSON file. For your first lab deployment, I don’t recommend changing any other settings. I’ll dive into the XLSX and the JSON in a later blog.

Which Method?

I recommend starting out with Method 2 for deploying your first VLC nested lab. This provides a fully automated lab deployment experience and configures all the required prerequisites for you. Also, I highly recommend you do not check the “Do Bring-up” button on your first deployment. Let VLC deploy the lab (It only takes about 15 minutes without automated Bring-up) then use the Cloud Builder UI to complete the Bring-up process. Following this process, helps you understand how Bring-up works when using the Cloud Builder. And it also is easier to troubleshoot any errors in the JSON file. Once you are comfortable with Bring-up, any future lab deployments you can then set the [Do Bring-up] checkbox.


This completes part 2 of my VMware Cloud Foundation deep dive series on deploying a nested lab with VLC. If you are following along, this should get you far enough to be able to deploy your own nested VCF lab. If you get stuck at any point in this process, reach out on VLC Slack. Our community of experienced VLC users can help you out.

Click this link to download VLC and related documentation. http://tiny.cc/getVLC

Then join the VLC community on Slack https://tiny.cc/getVLCSlack

– Heath Johnson @heathbarj


Leave a Reply

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