Skip to content

Admin Guide

To use efficiently the zPodFactory framework, you need to understand the following concepts depicted in the diagram below:

Overview High Level Diagram

img

  • Top left in Blue you can see the physical environment used to host the nested environments (zPods). This is basically the endpoint in the zPodFactory framework. I've also depicted on the center part, how the "global" NSX configuration would look like from a simple deployment (single endpoint)

Info

You can check the endpoint section for more information on how to configure an endpoints here: Manage endpoints

  • Center Left in Orange, you can see the nested environment from an administrator perspective, basically all the Layer 1 VMs. You can see the main components that are deployed at L1 which are the zbox and the esxi components. The zbox component is the main component that is used to manage the nested environment, and the esxi component is the nested environment hosts, the main important part here is the zPod Network, which is managed by an admin, and protecting every nested environment from each other and also the physical environment.

  • Bottom left in Green shows what a User can see from his POV, he will never see the 2 above layers, unless he is a zPodFactory administrator, but he will see/access the nested environment from his perspective, which is usually the vCenter Server, and the components in it and have full control over those components as the zPod password is admin for every component in that nested environment. In the Center part, you could see what a User would potentially build in the nested environment, which is usually a vCenter Server, a NSX-T Manager, a NSX-T overlay network on top of the zPod Network and then VMs connected to that overlay network.

Network High Level Diagram

Now from a more detailed networking perspective that shows 2 main NSX capabilities:

img

Depending on which NSX version you have installed at the physical layer, you may be able to use the recent NSX Projects feature, which aims to build multi-tenancy in the NSX environment.

  • On the bottom left side you can see a Project construct that encompasses 1 or more zPods (2 in this example)
  • On the bottom right side you can see a zPod not using Projects at all.

Warning

To leverage NSX Projects you will need to use NSX 4.1.1 or above for full support.

Using NSX Projects are highly recommended as they provide a lot of benefits around the permissions that we can provide on the networking layer of the nested environments. This gives users a lot of flexibility (creating VLANs/subnets, and routing them without any administrator interaction), and also to provide security for admins who can filter the routes being advertised from the zPod Network T1 Connected Segment to the main T0 of the physical environment.

Once the zPodFactory framework is deployed and running, you can start using the CLI to configure and manage the framework.

Nested Networking Diagram

This is what a user will be able to use/leverage on any nested zPod he deploys.

img

Each zPod has 1 overall network (1 x /24 subnet that we carve into 4 x /26)

Example: zPod "test" has 10.96.10.0/24

We will have the following networks managed:

  • Subnet 10.96.10.0/26 (Native VLAN, untagged, Management VLAN for components deployed): This Subnet is managed and routed by NSX T1.
  • Subnet 10.96.10.64.0/26 (VLAN 64, tagged): This subnet is by default routed by the zbox component, but we will offer the ability to change the routing to a vyos component in the future
  • Subnet 10.96.10.128.0/26 (VLAN 128, tagged): This subnet is by default routed by the zbox component, but we will offer the ability to change the routing to a vyos component in the future
  • Subnet 10.96.10.192.0/26 (VLAN 192, tagged): This subnet is by default routed by the zbox component, but we will offer the ability to change the routing to a vyos component in the future

Those VLANs should simplify the initial deployment and configuration of NSX in the nested layer so you can setup Host/Edge Nodes TEPs/Public subnets on different VLANs as you see fit.

Info

This does not mean you cannot add any new VLANs, those are just the default networks/VLANs configured that are configured AND advertised upstream through the T0.

As you can imagine, we need to avoid advertising any non-managed networks upstream or 2 users could for example try to advertise back the same subnet such as 192.168.1.0/24 and this would bring many issues we want to avoid.

PS: When using NSX Projects you can have control on the T1 of your zPod to add any static routes as you see fit, meaning you could for example add VLAN 100 with the subnet 192.168.1.0/24 and it will be ONLY be available on your zPod. As you can imagine if you add a subnet, you'll need to route that subnet to a next hop that you have to manage yourself using zbox, vyos, or NSX if this is an overlay networking sitting on Geneve for example.

Introduction

zcli is a command line tool that allows you to manage your zPods and the whole zPodFactory framework.

CLI Installation

Using pip:

❯ pip install zpodcli

Verify that the CLI is now available and working:

❯ zcli

 Usage: zcli [OPTIONS] COMMAND [ARGS]...

╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --factory             -f      TEXT  Use specified factory for current commmand.                                       │
│ --output-svg                        Output an SVG file for any list command.                                          │
│ --version             -V            Display version information.                                                      │
│ --install-completion                Install completion for the current shell.                                         │
│ --show-completion                   Show completion for the current shell, to copy it or customize the installation.  │
│ --help                              Show this message and exit.                                                       │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ component                          Manage Components                                                                  │
│ endpoint                           Manage Endpoints                                                                   │
│ enet                               Manage ENets                                                                       │
│ factory                            Manage Factories                                                                   │
│ group                              Manage Permission Groups                                                           │
│ library                            Manage Libraries                                                                   │
│ profile                            Manage Profiles                                                                    │
│ setting                            Manage Settings                                                                    │
│ user                               Manage Users                                                                       │
│ zpod                               Manage zPods                                                                       │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Authentication

The first thing you need to do is to connect to the zPodFactory API as an administrator which is called superuser which has superadmin privileges.

superadmin is a special role that has ALL the permissions in the zPodFactory framework.

This user has the ability to do everything in the zPodFactory framework.

First thing is to connect to the server with the superuser token provided. (This is done automatically within the zPodFactory appliance)

❯ zcli factory add myfactory -s http://zpodfactory.domain.lab:8000 -t "TOKEN" -a

Manage settings

This is the main entry point to configure the framework, which requires very important information to be able to operate correctly.

In the manual setup, we provided an example deploy.sh script to help setup those settings correctly, but we will explain every relevant one here:

  • zpodfactory_host: This is the IP of the VM zPodFactory has been installed/running on.
  • zpodfactory_default_domain: This is the base domain name that will be used for each deployed zPod. (e.g. if test is your zPod name, and if zpodfactory_default_domain is zpodfactory.domain, the FQDN of the zPod will be test.zpodfactory.domain)
  • zpodfactory_ssh_key: This is the SSH Key that will be pushed to the zPod zbox, and esxi components to allow SSH access to those components.
  • zpodfactory_customerconnect_username: This is the username of the customer connect account that will be used to download the VMware products binaries.
  • zpodfactory_customerconnect_password: This is the password of the customer connect account that will be used to download the VMware products binaries.

Warning

If you do not setup the customer connect credentials, the download engine will not work, and you will not be able to download any VMware products binaries.

The download engine is a key component of the framework, and is used to download the VMware products binaries, and to deploy the nested environments.

Right now there is no manual documentation/process that explains how to provide binaries/checksums etc to the zPodFramework yet !

  • license_<component>-<version>: This is a facility to push automatically some licenses to components once deployed, right now we only support vCenter licenses, but very likely nsx will be the next to be supported.
❯ zcli setting list

                                                         Setting List                                                           ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ Name                                Description                                         Value                         ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ zpodfactory_debug_levelSet debug verbosity level on zPodfactory instance   INFO zpodfactory_hostzpodfactory host address (NTP, ISO Datastore, etc)  172.16.42.10 zpodfactory_ssh_keyPublic SSH Key to be pushed on instance/components  ******** zpodfactory_customerconnect_usernameVMware Customer Connect user account                tsugliani@vmware.com zpodfactory_customerconnect_passwordVMware Customer Connect user password               ******** license_vcsa-8_esxivSphere 8 Enterprise Plus with Add-on for KubernetesXXXXX-XXXXX-XXXXX-XXXXX-XXXXX license_vcsa-8_vcentervCenter Server 8 Standard                           XXXXX-XXXXX-XXXXX-XXXXX-XXXXX license_vcsa-8_vsanvSAN Enterprise Plus                                XXXXX-XXXXX-XXXXX-XXXXX-XXXXX license_vcsa-8_tanzuTanzu Standard (Subscription)                       XXXXX-XXXXX-XXXXX-XXXXX-XXXXX license_nsx-4_enterpriseNSX Data Center Enterprise Plus                     XXXXX-XXXXX-XXXXX-XXXXX-XXXXX zpodfactory_default_domainDefault domain for all zPods                        zpod.lab └──────────────────────────────────────┴──────────────────────────────────────────────────────┴───────────────────────────────┘

Manage users

List users

❯ zcli user list

                                                   User List                                                    ┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓ Username Email                   DescriptionCreation Date      Last Connection    Superadmin ┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩ superusersuperuser@zpodfactory.io2024-03-15 21:39:582024-05-09 14:38:38True └───────────┴──────────────────────────┴─────────────┴─────────────────────┴─────────────────────┴────────────┘

TBD

Manage groups

TBD

Manage permissions

TBD

Manage library

By default zPodFactory comes with a default library that contains all the "official" vmware and misc supported components supported by the framework.

This library is stored in a git repository and is cloned locally, and used to fetch all components metadata (mainly the OVA binary files with some misc information) we use to manage the products.

Listing libraries:

❯ zcli library list

                                                                Library List                                                                 ┏━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓ Name   Description                Git URL                                   Creation Date      Last Update        Enabled ┡━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩ defaultDefault zPodFactory libraryhttps://github.com/zpodfactory/zpodlibrary2024-03-15 21:41:032024-04-23 15:55:03True devdev lib                    http://git.zpodfactory.io/zPodLibrary-dev2024-04-23 13:31:502024-04-23 18:11:15True └─────────┴─────────────────────────────┴────────────────────────────────────────────┴─────────────────────┴─────────────────────┴─────────┘

PS: The default library is the only one available for now, but the framework is designed to be able to support multiple libraries.

Resync the library:

❯ zcli library resync default

PS: The resync command will refresh all the components metadata from the git repository, and will update the local database with the new information.

Manage components

List all components:

❯ zcli component list -a

                                                                   Component List                                                                    ┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓ UID            Name     Version   LibraryDescription                                                   Download StatusStatus   ┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩ esxi-6.7u3esxi6.7u3defaultVMware ESXi Template                                          NOT_STARTEDINACTIVE esxi-7.0u3nesxi7.0u3ndefaultVMware ESXi Template                                          NOT_STARTEDINACTIVE esxi-7.0u3n-devesxi7.0u3n-devdevVMware ESXi Template                                          NOT_STARTEDINACTIVE esxi-7.0u3oesxi7.0u3odefaultVMware ESXi Template                                          NOT_STARTEDINACTIVE esxi-7.0u3pesxi7.0u3pdefaultVMware ESXi Template                                          NOT_STARTEDINACTIVE esxi-8.0.0besxi8.0.0bdefaultVMware ESXi Template                                          NOT_STARTEDINACTIVE esxi-8.0u1esxi8.0u1defaultVMware ESXi Template                                          NOT_STARTEDINACTIVE esxi-8.0u1aesxi8.0u1adefaultVMware ESXi Template                                          NOT_STARTEDINACTIVE esxi-8.0u1a-devesxi8.0u1a-devdevVMware ESXi Template                                          NOT_STARTEDINACTIVE esxi-8.0u2esxi8.0u2defaultVMware ESXi Template                                          NOT_STARTEDINACTIVE esxi-8.0u2-devesxi8.0u2-devdevVMware ESXi Template                                          COMPLETEDACTIVE esxi-8.0u2besxi8.0u2bdefaultVMware ESXi Template                                          COMPLETEDACTIVE esxi-8.0u2b-devesxi8.0u2b-devdevVMware ESXi Template                                          COMPLETEDACTIVE nsx-4.0.0.1nsx4.0.0.1defaultVMware NSX                                                    NOT_STARTEDINACTIVE nsx-4.0.1.1nsx4.0.1.1defaultVMware NSX                                                    NOT_STARTEDINACTIVE nsx-4.1.0.2nsx4.1.0.2defaultVMware NSX                                                    NOT_STARTEDINACTIVE nsx-4.1.1.0nsx4.1.1.0defaultVMware NSX                                                    NOT_STARTEDINACTIVE nsx-4.1.2.0nsx4.1.2.0defaultVMware NSX                                                    NOT_STARTEDINACTIVE nsx-4.1.2.1nsx4.1.2.1defaultVMware NSX                                                    NOT_STARTEDINACTIVE nsx-4.1.2.3nsx4.1.2.3defaultVMware NSX                                                    COMPLETEDACTIVE nsxt-3.2.1.2nsxt3.2.1.2defaultVMware NSX-T Datacenter for vSphere                           NOT_STARTEDINACTIVE nsxt-3.2.2nsxt3.2.2defaultVMware NSX-T Datacenter for vSphere                           NOT_STARTEDINACTIVE nsxt-3.2.3nsxt3.2.3defaultVMware NSX-T Datacenter for vSphere                           NOT_STARTEDINACTIVE nsxt-3.2.3.1nsxt3.2.3.1defaultVMware NSX-T Datacenter for vSphere                           NOT_STARTEDINACTIVE nsxt-3.2.3.2nsxt3.2.3.2defaultVMware NSX-T Datacenter for vSphere                           NOT_STARTEDINACTIVE nsxt-3.2.4nsxt3.2.4defaultVMware NSX-T Datacenter for vSphere                           NOT_STARTEDINACTIVE nsxv-6.4.10nsxv6.4.10defaultVMware NSX for vSphere (NSX-v)                                NOT_STARTEDINACTIVE nsxv-6.4.12nsxv6.4.12defaultVMware NSX for vSphere (NSX-v)                                NOT_STARTEDINACTIVE nsxv-6.4.13nsxv6.4.13defaultVMware NSX for vSphere (NSX-v)                                NOT_STARTEDINACTIVE nsxv-6.4.14nsxv6.4.14defaultVMware NSX for vSphere (NSX-v)                                NOT_STARTEDINACTIVE vcd-10.2.2.1avcd10.2.2.1adefaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.2.2.3vcd10.2.2.3defaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.2.2.4vcd10.2.2.4defaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.3.3.2vcd10.3.3.2defaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.3.3.3vcd10.3.3.3defaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.3.3.4vcd10.3.3.4defaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.4vcd10.4defaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.4.1vcd10.4.1defaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.4.2vcd10.4.2defaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.4.2.1vcd10.4.2.1defaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.5vcd10.5defaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.5.1vcd10.5.1defaultVMware Cloud Director                                         NOT_STARTEDINACTIVE vcd-10.5.1.1vcd10.5.1.1defaultVMware Cloud Director                                         COMPLETEDACTIVE vcda-4.4vcda4.4defaultVMware Cloud Director Availability                            NOT_STARTEDINACTIVE vcda-4.4.1vcda4.4.1defaultVMware Cloud Director Availability                            NOT_STARTEDINACTIVE vcda-4.5vcda4.5defaultVMware Cloud Director Availability                            NOT_STARTEDINACTIVE vcda-4.6vcda4.6defaultVMware Cloud Director Availability                            NOT_STARTEDINACTIVE vcda-4.6.1vcda4.6.1defaultVMware Cloud Director Availability                            NOT_STARTEDINACTIVE vcf-4.5.1vcf4.5.1defaultVMware Cloud Foundation                                       NOT_STARTEDINACTIVE vcf-5.0vcf5.0defaultVMware Cloud Foundation                                       NOT_STARTEDINACTIVE vcf-5.1vcf5.1defaultVMware Cloud Foundation                                       COMPLETEDACTIVE vcf-5.1.1vcf5.1.1defaultVMware Cloud Foundation                                       COMPLETEDACTIVE vcsa-6.7u3svcsa6.7u3sdefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-7.0u3gvcsa7.0u3gdefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-7.0u3hvcsa7.0u3hdefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-7.0u3ivcsa7.0u3idefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-7.0u3jvcsa7.0u3jdefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-7.0u3kvcsa7.0u3kdefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-7.0u3lvcsa7.0u3ldefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-7.0u3mvcsa7.0u3mdefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-7.0u3pvcsa7.0u3pdefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-8.0.0vcsa8.0.0defaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-8.0.0avcsa8.0.0adefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-8.0.0bvcsa8.0.0bdefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-8.0.0cvcsa8.0.0cdefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-8.0u1vcsa8.0u1defaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-8.0u1avcsa8.0u1adefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-8.0u1bvcsa8.0u1bdefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-8.0u1cvcsa8.0u1cdefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-8.0u2vcsa8.0u2defaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-8.0u2avcsa8.0u2adefaultVMware vCenter Server                                         NOT_STARTEDINACTIVE vcsa-8.0u2bvcsa8.0u2bdefaultVMware vCenter Server                                         COMPLETEDACTIVE vcsa-8.0u2cvcsa8.0u2cdefaultVMware vCenter Server                                         COMPLETEDACTIVE vrli-8.10vrli8.10defaultVMware vRealize Log Insight                                   NOT_STARTEDINACTIVE vrli-8.10.2vrli8.10.2defaultVMware vRealize Log Insight                                   NOT_STARTEDINACTIVE vrli-8.12vrli8.12defaultVMware vRealize Log Insight                                   NOT_STARTEDINACTIVE vrli-8.14vrli8.14defaultVMware vRealize Log Insight                                   NOT_STARTEDINACTIVE vrli-8.16vrli8.16defaultVMware vRealize Log Insight                                   NOT_STARTEDINACTIVE vrli-8.8.2vrli8.8.2defaultVMware vRealize Log Insight                                   NOT_STARTEDINACTIVE vrops-8.10vrops8.10defaultVMware vRealize Operations                                    NOT_STARTEDINACTIVE vrops-8.10.1vrops8.10.1defaultVMware vRealize Operations                                    NOT_STARTEDINACTIVE vrops-8.10.2vrops8.10.2defaultVMware vRealize Operations                                    NOT_STARTEDINACTIVE vrops-8.12vrops8.12defaultVMware vRealize Operations                                    NOT_STARTEDINACTIVE vrops-8.12.1vrops8.12.1defaultVMware vRealize Operations                                    NOT_STARTEDINACTIVE vrops-8.14vrops8.14defaultVMware vRealize Operations                                    NOT_STARTEDINACTIVE vrops-8.16.1vrops8.16.1defaultVMware vRealize Operations                                    COMPLETEDACTIVE vrops-8.17.1vrops8.17.1defaultVMware vRealize Operations                                    COMPLETEDACTIVE vrops-8.6.3vrops8.6.3defaultVMware vRealize Operations                                    NOT_STARTEDINACTIVE vrops-8.6.4vrops8.6.4defaultVMware vRealize Operations                                    NOT_STARTEDINACTIVE vyos-1.2.9vyos1.2.9defaultVyOS Router VM                                                NOT_STARTEDINACTIVE zbox-12.4zbox12.4defaultzBox Utility VM with core services (DNS, DHCP, NTP, NFS, etc.)COMPLETEDACTIVE zbox-base-11.6zbox-base11.6defaultzBox Utility VM                                               NOT_STARTEDINACTIVE └─────────────────┴───────────┴────────────┴─────────┴────────────────────────────────────────────────────────────────┴─────────────────┴──────────┘

List all available components (ready to deploy):

❯ zcli component list

                                                                Component List                                                                 ┏━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━┓ UID            Name Version   LibraryDescription                                                   Download StatusStatus ┡━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━┩ esxi-8.0u2-devesxi8.0u2-devdevVMware ESXi Template                                          COMPLETEDACTIVE esxi-8.0u2besxi8.0u2bdefaultVMware ESXi Template                                          COMPLETEDACTIVE esxi-8.0u2b-devesxi8.0u2b-devdevVMware ESXi Template                                          COMPLETEDACTIVE nsx-4.1.2.3nsx4.1.2.3defaultVMware NSX                                                    COMPLETEDACTIVE vcd-10.5.1.1vcd10.5.1.1defaultVMware Cloud Director                                         COMPLETEDACTIVE vcf-5.1vcf5.1defaultVMware Cloud Foundation                                       COMPLETEDACTIVE vcf-5.1.1vcf5.1.1defaultVMware Cloud Foundation                                       COMPLETEDACTIVE vcsa-8.0u2bvcsa8.0u2bdefaultVMware vCenter Server                                         COMPLETEDACTIVE vcsa-8.0u2cvcsa8.0u2cdefaultVMware vCenter Server                                         COMPLETEDACTIVE vrops-8.16.1vrops8.16.1defaultVMware vRealize Operations                                    COMPLETEDACTIVE vrops-8.17.1vrops8.17.1defaultVMware vRealize Operations                                    COMPLETEDACTIVE zbox-12.4zbox12.4defaultzBox Utility VM with core services (DNS, DHCP, NTP, NFS, etc.)COMPLETEDACTIVE └─────────────────┴───────┴────────────┴─────────┴────────────────────────────────────────────────────────────────┴─────────────────┴────────┘

Enable a component (make it available for deployment):

This will trigger the embedded download engine (Make sure that you configured your customer connect credentials in the settings or this task will fail)

Warning

Since April 2024

The download engine is not working for VMware products anymore since Broadcom terminated the customer connect VMware website. It will still work for non VMware products, such as zbox download, etc.

To workaround the issue, we have built an embedded upload feature that allows you to upload your own OVA files to the framework using the zcli command.

By checking the file checksum, it will be able to cross-check automatically from all supported components and will enable the appropriate component.

You will need to use the component UID (unique name of the component, as depicted in the list command above)

❯ zcli component enable zbox-12.7

Info

Until there is an official method to download VMware products automatically with the Broadcom Support Portal, you can use the upload feature to upload your own OVA files to the framework.

Upload a component to zPodFactory:

❯ zcli component upload /tmp/VMware-Cloud-Builder-5.1.1.0-23480823_OVF10.ova

you can then follow the progress using zcli component list, or get on a specific component UID as depicted below:

❯ zcli component get vcsa-8.0u3d

Manage endpoints

Endpoints are the target physical environments a nested environment will be built upon.

The framework is designed to be able to support multiple endpoints, and to be able to deploy nested environments on different physical environments.

Warning

Network connectivity from the zPodFactory Appliance to the following is MANDATORY:

  • VMware vCenter Server (HTTPS API)
  • VMware ESXi Hosts (OVF/OVA uploads)
  • VMware NSX-T Manager (HTTPS API)
  • VMware NSX-T networks supernet L3 connectivity

img

List all endpoints:

❯ zcli endpoint list

                                                                  Endpoint List                                                                    ┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ Name       Description                  Compute                                      Network                                          ┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ ovh-pcc-hciOVHcloud HPC vSAN Environmentdrivervspheredrivernsxt hostnamepcc-178-32-195-181.ovh.comhostnamensxt.pcc-178-32-195-181.ovh.com usernamezpodfactoryusernamezpodfactory@pcc-178-32-195-181.ovh.com datacenterpcc-178-32-195-181_datacenter4438edgeclusteredge640-4438 resource_poolOVH-SDDC-Clustert0ovh-T0-4438 storage_datastorevsanDatastoretransportzoneovh-tz-overlay vmfolderzPods-OVHnetworks10.96.0.0/16 └─────────────┴───────────────────────────────┴───────────────────────────────────────────────┴──────────────────────────────────────────────────┘

Create an endpoint:

❯ zcli endpoint create

 Usage: zcli endpoint create [OPTIONS] ENDPOINT_NAME

 Endpoint Create

╭─ Arguments ──────────────────────────────────────────────────────────╮
│ *    endpoint_name      TEXT  Endpoint name [required]               │
╰──────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────╮
│ --description     -d       TEXT  Description                         │
│ --endpoints       -e       TEXT  Endpoints json                      │
│ --endpoints-file  -ef      PATH  File containing endpoints json      │
│ --help                           Show this message and exit.         │
╰──────────────────────────────────────────────────────────────────────╯

If you just want to create a simple endpoint, you can use the following command:

❯ just zcli endpoint create testendpoint

Compute Endpoint
driver [vsphere] (vsphere):
hostname: vcenter.fqdn.lab
username: zpodserviceuser@fqdn.lab
password: ********
datacenter: Datacenter-Paris
resource_pool: Cluster-SDDC
storage_datastore: vsanDatastore
vmfolder: zPods-Paris

Network Endpoint
driver [nsxt/nsxt_projects] (nsxt_projects):
hostname: nsx.fqdn.lab
username (admin):
password: ********
networks: 10.130.0.0/16
transportzone: default-tz-overlay
edgecluster: edgeclustername
t0: T0-Lab
Endpoint testendpoint has been created.

This will allow for interactive creation of an endpoint and prompt for all the required information.

Manage profiles

Profiles are a collection of components that are grouped together to form an initial nested environment.

They are the main entry point to deploy a nested environment and require some mandatory components such as zbox which is the default appliance to manage the nested environment domain name/DHCP Server (dnsmasq), the NFS storage used for the ESXi hosts, and the router of the 3 additional /26 subnets routed on their respective VLAN (64/128/192) of an zPod.

img

❯ zcli profile list

                                     Profile List                                      ┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ Name       Components                                                           ┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ basezbox-12.4 esxi-8.0u2b (Host Id: 11, CPU: 6, Mem: 48GB) esxi-8.0u2b (Host Id: 12, CPU: 6, Mem: 48GB) vcsa-8.0u2b hostszbox-12.4 esxi-8.0u2b (Host Id: 11, CPU: 4, Mem: 12GB) esxi-8.0u2b (Host Id: 12, CPU: 4, Mem: 12GB) packerzbox-12.4 esxi-8.0u2b (Host Id: 11, CPU: 4, Mem: 24GB) sddczbox-12.4 esxi-8.0u2b (Host Id: 11, CPU: 6, Mem: 48GB) esxi-8.0u2b (Host Id: 12, CPU: 6, Mem: 48GB) esxi-8.0u2b (Host Id: 13, CPU: 6, Mem: 48GB) vcsa-8.0u2b nsx-4.1.2.3 vcf511-fullzbox-12.4 esxi-8.0u2b-dev (Host Id: 11, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) esxi-8.0u2b-dev (Host Id: 12, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) esxi-8.0u2b-dev (Host Id: 13, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) esxi-8.0u2b-dev (Host Id: 14, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) esxi-8.0u2b-dev (Host Id: 15, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) esxi-8.0u2b-dev (Host Id: 16, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) esxi-8.0u2b-dev (Host Id: 17, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) esxi-8.0u2b-dev (Host Id: 18, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) vcf-5.1.1 vcf511-mgmtzbox-12.4 esxi-8.0u2b-dev (Host Id: 11, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) esxi-8.0u2b-dev (Host Id: 12, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) esxi-8.0u2b-dev (Host Id: 13, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) esxi-8.0u2b-dev (Host Id: 14, CPU: 8, Mem: 96GB, Disks: 40GB, 800GB) vcf-5.1.1 zboxzbox-12.4 └─────────────┴──────────────────────────────────────────────────────────────────────┘