+ All Categories
Home > Documents > Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance...

Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance...

Date post: 17-May-2020
Category:
Upload: others
View: 12 times
Download: 0 times
Share this document with a friend
135
Getting Started With VMware Cloud Provider Stack VMware Cloud Provider Stack 1.1
Transcript
Page 1: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Getting Started With VMware Cloud Provider Stack

VMware Cloud Provider Stack 1.1

Page 2: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

You can find the most up-to-date technical documentation on the VMware website at:

https://docs.vmware.com/

If you have comments about this documentation, submit your feedback to

[email protected]

VMware, Inc.3401 Hillview Ave.Palo Alto, CA 94304www.vmware.com

Copyright © 2019 VMware, Inc. All rights reserved. Copyright and trademark information.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 2

Page 3: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Contents

About this guide 5

1 Introduction 6

2 VCPS Workflow 7

3 Delivery Pipeline Workflow 8

4 General Prerequisites 10Bill of Materials 10

Hardware and Software Requirements 10

Software Packages Requirements 12

HCX Requirements for Stage-1 and Stage-2 Testing and Validation 13

Host Service API Requirements for Stage-1 14

Server Profiles 15

5 Stages of Testing and Validation 17Stage-1 Testing and Validation 17

Stage-2 Testing and Validation 18

6 VCPS Bring-Up 20Common Tasks to Set Up the Orchestrator VM and the Mega-POP VM 20

Clean Up the Orchestrator and Mega-POP VMs 21

Set Environment Variables 22

Install Software Packages 22

Create Directories 22

Configure the Docker Daemon and Install the Docker Client 22

Install and Configure Network Time Protocol (NTP) 23

Download and Install the hconcli Application 23

Create Configuration Files 24

Setting Up the Orchestrator VM 24

Generate Self-Signed Certificates on the Orchestrator VM 24

Configure Amazon Web Services (AWS) 25

Sample Orchestrator VM Setup Script 25

Setting Up the Mega-POP VM 26

Create Self-Signed Certificates on the Mega-POP VM 26

Sample Mega-POP VM Setup Script 27

Trigger Stage-1 Testing and Validation 27

VMware, Inc. 3

Page 4: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Trigger Stage-2 from Stage-1 28

7 Glossary 29

8 Appendix 31SDDC Input Specification File 31

HCX Enterprise Specification File 48

params.json File 51

config.properties File 54

Primary Enterprise SDDC and HCX Enterprise APIs 55

Primary Enterprise SDDC REST APIs 56

HCX Cloud APIs 118

Validate Bring-Up 130

Get Validation Status 134

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 4

Page 5: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

About this guide

The Getting Started With VMware Cloud Provider Stack guide provides information for Cloud Providers (CPs) to get started with working and using the VMware Cloud Provider Stack (VCPS) solution.

The VCPS solution provides you, the Cloud Provider, an opportunity to offer your customers a subscription-based VMware Software Defined Data Center (SDDC) solution on bare-metal elastic infrastructure service as part of the Metal-as-a-Service (Maas) program.

Review this guide in its entirety before you begin working with the VCPS solution.

Intended AudienceThis information is intended for certified Cloud Providers and partners who have signed up to use and deploy the VMware Cloud Provider Stack solution. The information is written for cloud architects and experienced administrators who are familiar with virtual machine technology, datacenter operations, and cloud technologies and services.

VMware, Inc. 5

Page 6: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Introduction 1The VMware Cloud Provider Stack (VCPS) solution is a new service delivery offering by VMware under the Metal-as-aService (MaaS) program. VCPS enables Cloud Providers (CPs) an opportunity to offer their customers a subscription-based VMware Software Defined Data Center (SDDC) solution on a bare-metal elastic infrastructure service.

While this service is similar to VMware Cloud on AWS, the key difference is that services are owned and operated by the individual Cloud Providers. You will use the VCPS bundle that includes the necessary SDDC product components (vSphere, vSAN, NSX-T), and Hybrid Cloud Extension (HCX) to deploy an SDDC and manage its lifecycle.

You must meet key requirements and agree to participate in the fully automated SDDC software delivery and acceptance process. Once you have qualified, the MaaS program offers a set of entitlements and benefits.

Meet the following general requirements:

n Offer the SDDC-as-a-service on an elastic, self-service enabled, bare-metal-as-a-service.

n Offer a fully managed VMware service. The key features of a fully-managed service are the following:

n Offer SDDC-as-a-service directly or through a managed services partner.

n Support full SDDC lifecycle automation.

n Your customer/tenant will not have access to ESX hosts but has restricted access to SDDC components.

n Use VCPS for the service and participate in the automated SDDC binary delivery and acceptance process.

n Offer L1 & L2 support to the end customer and allow/enable VMware to offer L3 support to the Cloud Provider.

n Agree to not proactively to pursue a mass customer migration campaign.

n Also, note the following points:

n VMware will formally certify the Cloud Provider's SDDC-as-a-service implementation before the initial launch.

n VMware will also validate and test the implementation regularly after deployment.

VMware, Inc. 6

Page 7: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

VCPS Workflow 2The following section provides a high-level view of the VCPS workflow.

Note the following points with respect to VCPS testing, validation, and delivery of the SDDC bits:

n Every VCPS release goes through two stages of acceptance, Stage-1 and Stage-2.

n The release follows the Cloud/SaaS model; only the latest release is supported.

n Whenever the latest VCPS SDDC bits are uploaded to the S3 repository, you must upgrade your customers to the latest release immediately.

VMware, Inc. 7

Page 8: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Delivery Pipeline Workflow 3The delivery pipeline refers to the entire VCPS process wherein the end goal is to generate and validate a golden bundle (VCPS SDDC bits that are ready for deployment to your customer) on the hardware that is provided by you.

There are primarily two stages of testing and validation, Stage-1 and Stage-2.

Stage-1 is completely owned by VMware and Stage-2 is owned by you.

1 Stage-1 automates the testing and validation of the SDDC instance using the new SDDC release including upgrade testing on the provider's cloud servers. A successful run through Stage-1 triggers Stage-2.

2 The Stage-2 operation is triggered by VMware when Stage-1 completes its acceptance run. The new binaries are copied from Stage-1 to the Stage-2 repository, and you can access the SDDC bits directly from the repository.

3 After both the stages of SDDC testing and validation is complete, you must push the bits to the Golden Repo, a repository provided and maintained by you.

The following diagram shows the workflow that is required to complete the stages of testing and validation by VMware and you.

VMware, Inc. 8

Page 9: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 9

Page 10: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

General Prerequisites 4Before you deploy the VMware Cloud Provider Stack (VCPS) solution, you must meet certain general prerequisites.

Ensure that your environment meets the requisite software and hardware requirements. Go through the guide in its entirety and the release notes for each release.

This chapter includes the following topics:

n Bill of Materials

n Hardware and Software Requirements

n HCX Requirements for Stage-1 and Stage-2 Testing and Validation

n Host Service API Requirements for Stage-1

n Server Profiles

Bill of MaterialsThe VCPS Bill of Materials (BOM) refers to the software bundle, a collection of all the software, configuration files, and scripts that are included in the VCPS solution.

Refer to the latest VCPS release notes for details about the BOM.

Hardware and Software RequirementsYou must meet the hardware, software, and other requirements listed in this section before you can start the Delivery and Acceptance (DA) process.

The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against the servers to be used for the program. There are two stages as part of this process, Stage-1 and Stage-2.

The requirements listed below are the minimum requirements which you must provide to enable VMware to complete the 2 stage process for the VCPS program.

VMware, Inc. 10

Page 11: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Requirement Details Notes

2 VMs (per stage) n Hardware Requirements:

n vCPU - 8

n RAM - 16 GB

n OS Disk - 100 GB

n HDD - 500 GB (Thin provisioned)

n Software Requirements:

n Guest OS. CentOS 7 and above.

n Software Packages. You must install specific software packages on the VMs used in Stage-1 and Stage-2 testing. See the relevant sections for more information.

n Connectivity Requirements:

n Network Connectivity to manage VLANs of ESX hosts.

n Internet Connectivity is required to access VMware repository and to install additional software.

n SSH enabled for root user.

n Access to the ESXi Management VLAN and the Management VM VLAN.

External Services n DNS, minimum 2

n NTP, minimum 2

n AD, optional

Network Underlay The SDDC deployed during Delivery and Acceptance must be deployed on a network underlay that meets the following requirements:

n 8 VLANs used to separate traffic types

n 8 subnets mapped to 1 to1 VLANs

n Ability to trunk VLANs to the ESX NICs

n Support for full L2 protocols

Additional VMware services can require additional VLANs.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 11

Page 12: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Requirement Details Notes

8 ESXi Hosts The ESXi hosts are the subject of the Delivery and Acceptance (DA) process. The pipelines will execute against these hosts.

Within a cluster, the hosts must have identical hardware profiles.

See the vSAN documentation for the minimum configuration that is required for the vSAN ready nodes.

Note If a provider has multiple server hardware bill of materials (BOM), Stage-1 and Stage-2 processes must be run against each server models in the fleet for delivery and acceptance.

ESXi hosts have to be provided as a "configuration target" for the Stage-1 and Stage 2 VMs.

n 4 for SDDC bring-up

n 1 for Add Host testing

n 3 for Add Cluster testing

Note The minimum requirement for validation is 8 ESXi hosts. With this minimum, Stage-1 and Stage-2 share the same hosts but run independently in a serial fashion with a host cleanup run between stages.

SDDC Input Spec File The spec file must contain the information about the following:

n VMware license keys

n Hosts

n Networks

n vCenter

n NSX

n HCX Cloud

n External service settings to use (DNS, NTP, and so on).

The spec file is used to make a REST API call to the LCM Controller Service to initiate bring-up and to certify the test environment. See the SDDC Input Specification File for an example.

Golden Repository n You must define and maintain this destination to hold the Golden bits. The bits are the output of the 2 stage Delivery and Acceptance process.

n You are responsible to push the Golden bits that pass Stage-2 testing to this repository.

n New SDDC deployments and patches or upgrades of existing SDDCs use the bits from the Golden Repository.

Pipelines or Binaries If you create any pipelines or binaries, you must maintain it in your source control systems and are responsible to populate them into the provisioning VM.

Software Packages RequirementsIn addition to the hardware and software requirements for the VMs listed earlier, you must install the following software on the VMs that will be used in Stage-1 and Stage-2 testing and validation.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 12

Page 13: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Table 4-1. Software Packages Requirements

Binary Command Notes

Java 1.8 and above sudo yum install java-1.8.0-

openjdk-devel -y

wget sudo yum install wget -y

zip sudo yum install zip -y

unzip sudo yum install unzip -y

ovftool 4.2.0 and above

Jenkins Install Jenkins from a mirror nearest to you.

A VPN connection is required to access the Jump box. CLI support which facilitates automation is preferred. The connection will take place over encrypted TLS.

Python and pip n sudo yum install -y epel-

release

n sudo yum install -y python36u

python36u-libs python36u-

devel python36u-pip

AWS CLI pip install awscli

HCX Requirements for Stage-1 and Stage-2 Testing and ValidationAs part of the VCPS delivery and acceptance process, VMware validates a two-site HCX deployment. One is the enterprise site, and the other is the Cloud site.

As a Cloud Provider, you will deliver the SDDC during the VCPS bring-up which acts as the Cloud Site in an HCX deployment pair.

To validate the functionality of HCX on this primary SDDC, VMware requires a 2nd HCX deployment that will act as the enterprise site.

This enterprise site represents a customer's on-prem site in a production deployment. During validation, the VCPS scripts deploy the enterprise HCX appliance, configure HCX, create the site pair back to the Cloud site and test the service mesh. The VCPS scripts deploy the enterprise HCX appliance but do not deploy the enterprise SDDC.

The enterprise SDDC must meet the following requirements, and you must create and maintain the SDDC.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 13

Page 14: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Table 4-2. Enterprise SDDC Requirements

Requirement Details

vCenter Server The vCenter Server that will be deployed must be at a version compatible with HCX as per the interop matrix. See the interoperability matrix for detailed information.

SDDC For the vCenter Server deployment, the following constructs must be created. These constructs are referenced in the SDDC Enterprise bring-up script.

Note The names for the data center, cluster, and so on are only examples and can be adjusted as per the specification file.

n Data center name: ENT_DC

n Cluster name: ENT_CLU

n Resource Pool Name: MGMT_RESOURCEPOOL

n DVS Name: ENV_DVS

n DVS port groups:

n HCX_MGMT

n VMOTION_PG

n HCX_UPLINK

n Datastore: vSANDatastore

HCX Enterprise Input Specification File The HCX specification file must contain the details similar to the SDDC input specification file, and in addition must have the required HCX information, such as the entrprise credentials, site pair specification, Service Mesh information, and so on.

Connectivity n Internet connectivity: The enterprise site must have Internet connectivity for HCX activation and updates.

n Cloud site connectivity: For site pairing and HCX tunnels, VMware requires network connectivity between all networks in the Cloud and Enterprise site.

n Stage-1 and Stage-2 connectivity: The enterprise site must have connectivity to the Stage-1 and Stage-2 servers for bring-up and bundle access.

Reservation resources n MGMT_RESOURCEPOOL

n 32 vCPU

n 48 GB RAM

n vSANDatastore: 240 GB storage

See the Appendix for example specification files.

Host Service API Requirements for Stage-1You must provide the following host service APIs for VMware to complete the Stage-1 testing and validation.

The following APIs are required:

n Get all hosts - Return a list of all hosts that are available for Stage-1 testing and validation, along with their JSON specification files.

n Get a host - Return information about a specific host identified by the hostID.

n Image a host - Format a host and install a specific ESXi version on that host.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 14

Page 15: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

n Get a data center - Return information about a specific SDDC such as SDDC ID, location, licenses, and so on.

n Get all data centers - Return an array of all available SDDCs in a given environment, along with information about each SDDC.

n Reserve a host - Reserve a host to ensure that it is not consumed by any other process.

n Release a host - Release the host to the pool when the host is no longer being used.

n Get status - Get the status of a job being executed.

See the Host Service APIs for VMware Cloud Provider Stack guide for detailed information about the required host service APIs.

Server ProfilesYou must provide the input specifications for the server profile that will be used by VMware.

A server profile can be static or dynamic.

For a static server profile, VMware will use the static URL (HTTPS, HTTP, FTP) provided by you as the input specification. For a dynamic server profile, the input specification is retrieved by calling the Host Service APIs of the Cloud Provider.

The file must be located at /data/vcps/server_profile.json.

Example: Static Server Profile

[

{

"profileId" : "serverProfile1",

"fetchHostType" : "static" ,

"fetchDetails" :{

"bringupSpecPath" : "http://10.176.7.53:8080/ci_images/ci_specs/bringup_spec.json",

"addHostDetails":{

"hostSpecPath" : "http://10.176.7.53:8080/ci_images/ci_specs/add_host_spec.json",

"clusterName":"MGMT_CLU"

},

"removeHostSpecPath" : "http://10.176.7.53:8080/ci_images/ci_specs/remove_host_spec.json",

"addClusterSpecPath" : "http://10.176.7.53:8080/ci_images/ci_specs/

add_cluster_spec.json",

"removeClusterSpecPath" : "http://10.176.7.53:8080/ci_images/ci_specs/

remove_cluster_spec.json",

"nfsSpecPath":"http://10.176.7.53:8080/ci_images/ci_specs/nfs_spec.json",

"rbacSpecPath":"http://10.176.7.53:8080/ci_images/ci_specs/rbac_spec.json"

}

},

]

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 15

Page 16: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Example: server.registry FileThe metadata for the server profile is maintained in the server.registry file.

{

"profileStatus": {

"serverProfile1": {

"status": {

"sha_path": "/data/vcps/CI-ENV-157/CI-ENV-157-SHA256SUM.txt",

"BRINGUP-Nvalidation_report_path": "/data/vcps/CI-ENV-157/CI-ENV-157-serverProfile1-hhlealth-

report-BRINGUP-N.json",

"BRINGUP-N": "false",

"validation_report_path": "/data/vcps/CI-ENV-157/CI-ENV-157-serverProfile1-hhlealth-report-

STAGE_ADD_HOST.json",

"STAGE_RBAC_SETUP": "false",

"STAGE_ADD_HOST": "false"

},

"fetchDetails": {

"bringupSpecPath": "/data/runtime/serverProfile1/bringup_current.json",

"addHostDetails": {

"hostSpecPath": "/data/runtime/serverProfile1/esx-spec_addhost.json",

"clusterName": "MGMT_CLU"

},

"removeHostSpecPath": "/data/runtime/serverProfile1/esx-spec_addhost.json",

"addClusterSpecPath": "/data/runtime/serverProfile1/esx-spec_addhost.json",

"removeClusterSpecPath": "/data/runtime/serverProfile1/esx-spec_addhost.json",

"nfsSpecPath": "/data/runtime/serverProfile1/esx-spec_addhost.json"

}

}

},

"availableServerProfiles": [

"serverProfile1"

],

"activeServerProfile": "serverProfile1"

}

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 16

Page 17: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Stages of Testing and Validation 5After you have committed to participate in the VCPS delivery and acceptance process, you must be aware of the two stages of testing and validation, Stage-1 and Stage-2.

VMware owns and operates Stage-1. This stage automates the testing and validation of the SDDC instance using the new SDDC release including upgrade testing on the provider's cloud servers. A successful run through Stage-1 triggers Stage-2. The new binaries are copied from Stage-1 to the Stage-2 repository, and you can access the SDDC bits directly from the repository.

You own and operate the Stage-2 testing and validation. As a Cloud Provider, you must go through your own specific set of test cases and validation to test and accept the new binaries with any specific SDDC extensions and key third-party services that you may have included. You can modify the Stage-2 workflows to meet your specific requirements.

Note n If you have multiple server profiles, you must run and test the VCPS bits against all the profiles.

n If a VCPS release fails in the sandbox testing in Stage-2, the bits cannot go into production.

The Stage-1 and Stage-2 SDDC lifecycle management workflows, validation, and functional test suites are orchestrated using a Jenkins server.

After the testing and validation is completed on both the stages, you must copy the new release binaries (or bits) to the Golden Repository.

This chapter includes the following topics:

n Stage-1 Testing and Validation

n Stage-2 Testing and Validation

Stage-1 Testing and ValidationVMware owns and operates Stage-1 and the execution occurs in a sandbox in the Cloud Provider environment. The Stage-1 process includes testing and validation of the SDDC bits using the Mega-POP and Orchestrator VMs and the LCM operations. This process is common across all Cloud Providers.

VMware, Inc. 17

Page 18: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

As a Cloud Provider, you must provide VMware with the required configuration and environment for Stage-1 testing and validation. The following considerations and workflow are applicable to Stage-1:

n Stage-1 includes a set of SDDC automation workflows and a set of SDDC reference design and functional test validations and workflows. The SDDC release and factory lifecycle automation workflows are tested on the target cloud servers.

n New releases are staged on the S3 servers and downloaded to the Stage-1 repository as part of an acceptance run.

n Every LCM workflow is implemented as a unique Jenkins pipeline.

n A successful completion of Stage-1 kicks off Stage-2.

The following diagram shows the Stage-1 workflow:

Stage-2 Testing and ValidationThe Stage-2 testing and validation is owned by you, the Cloud Provider. VMware triggers the Stage-2 operation and invokes the Stage-2 init pipeline when Stage-1 completes its acceptance run .

The following considerations and workflow are applicable to Stage-2:

n You must set up the Stage-2 init pipeline and manage its lifecycle in your own source control systems. You can create the pipelines and binaries to extend or replace any VMware pipelines. The init pipeline must perform the following actions:

n Copy the Stage-1 repository contents to the Stage-2 repository.

n Copy the custom provider-specific extensions to the Stage-2 repository.

n Load the Jenkins pipeline definitions provided by VMware.

n Load any custom, provider-specific Jenkins pipelines definitions. These pipelines can potentially overwrite the VMware provided pipelines.

n Trigger the MO which can be the provider-modified MO.

The following diagram shows the Stage-2 workflow:

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 18

Page 19: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 19

Page 20: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

VCPS Bring-Up 6Bring-up refers to process wherein the SDDC Manager completes all the necessary configuration and set up of VMs to deploy the software components.

To initiate and complete the bring-up process, the Stage-1 and Stage-2 testing and validation must be completed.

The Orchestrator VM and the Mega-POP VM must be set up in both the stages. Stage-2 testing and validation can occur only after Stage-1 testing and validation is completed.

To set up the VMs, you must download the following files from the AWS S3 repository:

n config.properties: Contains configuration information about server profiles, path to AWS keys, paths to specification files, HCB registry paths, and so on.

n params.json: Includes information about the flags and parameters that determine various conditions in the testing and validation process. The params.json file is passed as a parameter when boot.py is executed.

n vcps-hcon-1.1.0.0-14535318.noarch.rpm: When you download and install the rpm file, boot.py will be downloaded in the /data folder in the Orchestrator VM.

The boot.py command will trigger the init pipeline. The init pipeline will trigger the Master Orchestrator (MO), which is responsible to copy the binaries from Stage-1 to Stage-2.

The following sections describe the setting up of the VMs for Stage-1 and Stage-2 testing and validation.

This chapter includes the following topics:

n Common Tasks to Set Up the Orchestrator VM and the Mega-POP VM

n Setting Up the Orchestrator VM

n Setting Up the Mega-POP VM

n Trigger Stage-1 Testing and Validation

n Trigger Stage-2 from Stage-1

Common Tasks to Set Up the Orchestrator VM and the Mega-POP VMThe following tasks are common to both the Orchestrator VM and the Mega-POP VM.

VMware, Inc. 20

Page 21: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

To set up the Orchestrator and Mega-POP VMs, you must set the environment variables, create directories, install Docker, create scripts to generate self-signed certificates, open firewall ports, and so on. The following sections explain this process in detail.

Set up the Mega-POP VM after you have completed setting up the Orchestrator VM.

Clean Up the Orchestrator and Mega-POP VMsClean up the Orchestrator and Mega-POP VMs before configuring them.

Delete the old the registry files and VCPS bits from both the Orchestrator and Mega-POP VMs.

Procedure

1 Delete the old registry files.

The registry file path is found in the config.properties file with the key HCB_REGISTRY_PATH.

2 Delete any old VCPS bits. The older bits are located at /data/jenkins/userContent/vcps:

# rm -rf /data/jenkins/userContent/vcps

3 Run the following command in the Orchestrator VM to clean up old containers:

# hconcli reset -force

Example: Clean Up Commands

[root@workervm ~]# rpm -qa | grep vcps

vcps-hcon-1.0.0.0-13900959.noarch

[root@workervm ~]# rpm -e vcps-hcon-1.0.0.0-13900959.noarch

[root@workervm ~]# ls

anaconda-ks.cfg joe_bringup.json sddc.json tlsCheck.sh vcps-hcon_1.0.0.0-13900959_noaarch.rpm

[root@workervm ~]# rm -rf vcps-hcon_1.0.0.0-13900959_noaarch.rpm

[root@workervm ~]# aws s3 cp s3://vbme-rtm/REL_1_0_0_0/vcps-hcon_1.0.0.0-13900959_noaarch.rpm .

download: s3://vbme-rtm/REL_1_0_0_0/vcps-hcon_1.0.0.0-13900959_noaarch.rpm to ./vcps-

hcon_1.0.0.0-13900959_noaarch.rpm

[root@workervm ~]# ls

anaconda-ks.cfg joe_bringup.json sddc.json tlsCheck.sh vcps-hcon_1.0.0.0-13900959_noaarch.rpm

[root@workervm ~]# rpm -ivh vcps-hcon_1.0.0.0-13900959_noaarch.rpm

Preparing... ################################# [100%]

Updating / installing...

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 21

Page 22: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

1:vcps-hcon-1.0.0.0-13900959 ################################# [100%]

[root@workervm ~]# hconcli reset -force

[root@workervm ~]# rm -rf /data/jenkins/userContent/vcps

Set Environment VariablesDefine the environment variables in your bash profile.

Procedure

u Set the following environment variables in your bash profile:

vi ~/.bash_profile

export HCB_CONFIG_FILE_PATH=/data/vcps/config/config.properties

export LOG_PATH=/data/vcps/log/hcon

export JENKINS_HOME=/data/jenkins

source ~/.bash_profile

Install Software PackagesInstall Python, boto3, and the Amazon Web Services CLI.

Procedure

u Run the following commands to install the software packages:

yum install -y epel-release

yum install -y https://centos7.iuscommunity.org/ius-release.rpm

yum update -y

yum install -y python36u python36u-libs python36u-devel python36u-pip

pip3.6 install requests

pip3.6 install boto3

pip3.6 install awscli

Create DirectoriesCreate directories to specify the paths for Jenkins, temporary files, metadata storage, and so on.

Procedure

u Run the following mkdir commands to create the directories:

mkdir -p /data/jenkins/userContent/

mkdir -p /data/vcps

mkdir /etc/docker

Configure the Docker Daemon and Install the Docker ClientThe Docker daemon is a service that runs on your host operating system. The Docker client is used to issue commands and communicate with the daemon.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 22

Page 23: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

The Docker client can reside on the same host as the daemon.

Procedure

1 Configure the Docker daemon in a file, daemon.json, for example:

vi /etc/docker/daemon.json

{

"graph":"/data/mydocker"

}

2 Run the following commands to install and enable Docker:

yum install -y wget

wget -qO- https://get.docker.com | sh

systemctl start docker

systemctl enable docker

service firewalld stop

Install and Configure Network Time Protocol (NTP)Include NTP configuration in the Orchestrator VM to sychronize time between various components in VCPS.

Procedure

u Run the following commands to install and configure NTP.

sudo yum update

sudo yum install ntp

sudo systemctl start ntpd

sudo systemctl enable ntpd

sudo vi /etc/ntp.conf

Download and Install the hconcli ApplicationWhen you install the hconcli application, the /data/jenkins/userContent and /data/vcps folders are created and the boot.py file is downloaded.

Prerequisites

You must know the location of the hconcli rpm, usually this is located in the S3 repository.

Procedure

1 Download the hconcli rpm:

# aws s3 cp s3://vbme-rtm/REL_1_1_0_0/vcps-hcon_1.0.0.0-13900959_noaarch.rpm

2 Install the hconcli rpm:

# rpm -ivh vcps-hcon_1.0.0.0-13900959_noaarch.rpm

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 23

Page 24: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

3 Confirm that it is installed correctly:

[root@localhost ~]# rpm -qa | grep vcps-hcon

vcfm-hcon-0.0.1-13059626.noarch

Create Configuration FilesCreate the config.properties and params.json configuration files.

Depending on whether you are in Stage-1 or Stage-1, you must adjust certain certain variables in these files.

See the Appendix for example files and additional information.

Setting Up the Orchestrator VMThe Orchestrator VM is a CentOS 7 x86_64 VM that must be set up as a first step in the process of testing and validation.

See Common Tasks to Set Up the Orchestrator VM and the Mega-POP VM section.

You can create a script which contains all the commands to set up the Orchestrator VM. A sample script is provided at the end of the section.

Generate Self-Signed Certificates on the Orchestrator VMGenerate self-signed certificates on the Orchestrator VM and establish a secure connection with the server.

Create a bash script and run the script to generate the self-signed certificates.

Prerequisites

You must know the IP address of the Orchestrator and Mega-POP VMs.

Procedure

1 Create a bash script cert-gen.sh with the following information:

#!/bin/bash

IP1=$1

IP2=$2

echo "setting san with " $IP1 $IP2

#Setting certificate

yum install java-1.8.0-openjdk-devel -y

## creating jenkins home

mkdir -p /data/jenkins

mkdir -p /data/vcps/config/jenkins

rm -f /data/vcps/config/cert.jks /data/vcps/config/jenkins/cert /data/vcps/config/jenkins/

pk_rsa /data/vcps/config/jenkins/pk /opt/keystore.p12 /opt/root.crt

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 24

Page 25: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

keytool -keystore /data/vcps/config/cert.jks -storetype JKS -storepass passwd -genkey -keyalg RSA

-validity 360 -keysize 2048 -alias http -ext san=ip:$IP1,ip:$IP2 -dname "CN=*.eng.vmware.com,

OU=eng, O=vmware.com, L=Palo Alto S=California C=US"

keytool -export -storepass passwd -alias http -keystore /data/vcps/config/cert.jks -file /opt/

root.crt

openssl x509 -inform der -in /opt/root.crt -out /data/vcps/config/jenkins/cert

keytool -importkeystore -srckeystore /data/vcps/config/cert.jks -srcstorepass passwd -

destkeystore /opt/keystore.p12 -deststorepass passwd -deststoretype PKCS12

openssl pkcs12 -in /opt/keystore.p12 -nodes -nocerts -out /data/vcps/config/jenkins/pk -password

pass:passwd

openssl rsa -in /data/vcps/config/jenkins/pk -out /data/vcps/config/jenkins/pk_rsa

cat /data/vcps/config/jenkins/cert | openssl x509 -noout -text

cat /data/vcps/config/jenkins/cert | openssl x509 -noout -text | grep IP

rm -f /data/jenkins/userContent/jenkins.pem

cp /data/vcps/config/jenkins/cert /data/jenkins/userContent/jenkins.pem

echo 'done cert generation'

2 Run this script at the command prompt with the IP address of the Orchestrator and Mega-POP VMs as the input parameters:

./cert-gen.sh $ORCH_IP $MEGAPOP_VM

Note If you saved the cert-gen.sh file in Windows, you may get the following error when you run this script: Error: /bin/bash^M: bad interpreter: No such file or directory

To resolve this error, run the following command: sed -i -e `s/\r$//` certgen.sh

Configure Amazon Web Services (AWS)Configure AWS with the region, access key, secret key, and the path for the VCPS bits.

Procedure

1 Run the following command:

# aws configure

2 Provide the following information. Example data is shown below:

n region - us-west-1

n Access key ID - <your-access-key>

n Secret Access key - <your-secret-access-key>

n S3 path

Sample Orchestrator VM Setup ScriptThis is a sample script that contains the commands to set up the Orchestrator VM.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 25

Page 26: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Example: setup-orch.sh Script

yum install -y wget

wget -qO- https://get.docker.com | sh

mkdir -p /etc/docker && echo { \"graph\":\"/data/mydocker\" } >> /etc/docker/daemon.json

systemctl start docker && systemctl enable docker

yum install -y epel-release https://centos7.iuscommunity.org/ius-release.rpm

yum update -y

yum install -y python36u python36u-libs python36u-devel python36u-pip

pip3.6 install requests boto3 awscli

pip3.6 install --upgrade pip

yum update -y

yum install -y ntp unzip

systemctl start ntpd && systemctl enable ntpd

sudo iptables -I INPUT -p tcp -m tcp --dport 8443 -j ACCEPT

sudo firewall-cmd --zone=public --add-port=8443/tcp --permanent

sudo firewall-cmd --reload

Setting Up the Mega-POP VMSetting up the Mega-POP VM involves similar steps as setting up the Orchestrator VM.

See Common Tasks to Set Up the Orchestrator VM and the Mega-POP VM section.

You can create a script which contains all the commands to set up the Mega-POP VM. A sample script is provided at the end of the section.

You must have completed setting up the Orchestrator VM before you set up the Mega-PoP VM.

Create Self-Signed Certificates on the Mega-POP VMGenerate self-signed certificates on the Mega-POP VM and establish a secure connection with the server.

Create a bash script and run the script to generate the self-signed certificates.

Prerequisites

You must know the IP address of the Orchestrator and Mega-POP VMs.

Procedure

1 Create a bash script cert-gen.sh with the following information:

#!/bin/bash

IP1=$1

IP2=$2

echo "setting san with " $IP1 $IP2

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 26

Page 27: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

yum install java-1.8.0-openjdk-devel -y

mkdir -p /data/vcps/config && rm -f /data/vcps/config/cert.jks

keytool -keystore /data/vcps/config/cert.jks -storetype JKS -storepass passwd -genkey -keyalg RSA

-validity 360 -keysize 2048 -alias http -ext san=ip:$IP1,ip:$IP2 -dname "CN=*.eng.vmware.com,

OU=eng, O=vmware.com, L=Palo Alto S=California C=US"

echo 'done cert generation'

2 Run this script at the command prompt

./certgen.sh $ORCH_IP $MEGAPOP_IP

Sample Mega-POP VM Setup ScriptThis is a sample script that contains the commands to set up the Mega-POP VM.

Example: setup-megapop.sh Script

curl -s https://get.docker.com | sh

mkdir -p /etc/docker && echo { \"graph\":\"/data/mydocker\" } >> /etc/docker/daemon.json

systemctl start docker && systemctl enable docker

yum update -y

yum install -y ntp

systemctl start ntpd && systemctl enable ntpd

sudo iptables -I INPUT -p tcp -m tcp --dport 9443 -j ACCEPT

sudo firewall-cmd --zone=public --add-port=9443/tcp --permanent

sudo firewall-cmd --reload

Trigger Stage-1 Testing and ValidationWhen you have completed the setup and configuration for Stage-1, you must pull in the latest bits from the S3 repository and test and validate the new bits to complete the Stage-1 process.

Prerequisites

You must have installed hconcli before you can trigger Stage-1 testing.

Procedure

1 Run the following command to validate the bits:

hconcli setup-pre-validate

2 Download boot.py from the S3 repository:

[root@localhost ~]# aws cp s3://vbme-rtm/REL_1_0_0_0/boot.py /data/boot.py

3 Run boot.py:

python3.6 /data/boot.py /data/vcps/params.json

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 27

Page 28: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Trigger Stage-2 from Stage-1After configuring the Orchestrator and Mega-POP VMs, and Stage-1 tasks are complete, the VCPS bits are available in the S3 repository. VMware will then trigger Stage-2 from the Mega-POP VM.

Prerequisites

n Set the stage parameter to both in the params.json file.

n Set the Stage-2 boot.py value in config.properties.

n The server.registry file at /data/vcps/server.registrymust have the following information:

{

"profileStatus": {

"serverProfile1": {

"fetchDetails": {

"bringupSpecPath": "/data/runtime/serverProfile1/bringup_spec.json"

}

}

}

}

Procedure

u Run the following commands to trigger Stage-2 validation:

# hconcli pipeline validation create

# hconcli pipeline validation trigger -init_spec_path=/data/vcps/params.json

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 28

Page 29: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Glossary 7A list of common concepts, terms, and file names used in the VCPS MaaS documentation.

n VMware Cloud Provider Stack (VCPS): A program that provides qualified partners an opportunity to offer their cusomers a subscription-based SDDC solution on bare-metal elastic infrastructure service.

n Delivery Pipeline: The goal of delivery pipeline is to generate and validate a golden bundle on the hardware that is provided by the Cloud Provider.

n Bring-up: A process during which the SDDC Manager completes the configuration of a private cloud during power on.

n Orchestrator VM: A Centos 7 x86_64 VM with approximately 12 cores and 32 GB of memory. Used in Stage-1 and Stage-2 testing and validation process.

n Mega-POP VM: Centos 7 x86_64 VM with approximately 16 cores and 48 Gib of memory. Used in Stage-1 and Stage-2 testing and validation process.

n Cloud Provider Pod SDDC (PODS): A component that helps with bring-up and supports key SDDC lifecycle workflows.

n Hybrid Cloud Bundle (HCB): The HCB bundle contains release binaries from public VMware releases of ESXi,NSX-T, and vCenter. The bundle also contains the binaries and script that help with the automation process.

n Stage-1: The first of the two stages of testing and validation of the SDDC bits. Stage-1 is owned and operated by VMware, and is triggered by VMware when there is a new release to be pushed to the provider. Once the bits pass Stage-1, Stage-2 is triggered.

n Stage-2: Owned and operated by the CP, and is used to test and accept the new binaries with any specific SDDC extensions and key 3rd-party services. The CP can modify the Stage-2 workflows to meet their specific requirements.

n Golden Repo: Partner-defined and maintained repository which will hold the bits that is the output of the Stage-1 and Stage-2 validation and testing process. The partner is responsible to push the bits that pass Stage-2 testing to this repository.

n boot.py: Triggers the init pipeline after Orchestrator and Mega-POP VMs have been configured.boot.py is executed from the Mega-POP VM.

n params.json: This file is passed as a parameter when boot.py is executed.

VMware, Inc. 29

Page 30: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

n config.properties: Contains configuration information about server profiles, path to AWS keys, paths to specification files, HCB registry paths, and so on

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 30

Page 31: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Appendix 8The appendix contains sample configuration, specification, and properties files that are used in VCPS. This section also contains the description of the VCPS APIs.

The following example files are included in this appendix:

n JSON specification file

n params.json

n config.properties

This chapter includes the following topics:

n SDDC Input Specification File

n HCX Enterprise Specification File

n params.json File

n config.properties File

n Primary Enterprise SDDC and HCX Enterprise APIs

SDDC Input Specification FileYou must configure a JSON formatted bring-up specification file for the automated installation and configuration of the SDDC instance. VMware will retrieve this information through a API call.

The JSON file must contain the all the configuration settings required for bring-up. An example is provided below:

Example: SDDC Input Specification File (bringup.json)

Collapse source

{

"dataCenter": {

"name": "MGMT_DC",

"managementFolder": "MGMT_VMs",

"clusters": {

"management": {

"name": "MGMT_CLU",

"vsanClusterSpec": {

"deduplication": true,

VMware, Inc. 31

Page 32: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"compression": true

},

"hosts": [

{

"username": "root",

"password": "Skoda1!",

"type": "PRIMARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.101",

"subnet": "255.255.255.0",

"fqdn": "esxmb1.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.101",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.101",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.101",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 32

Page 33: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": [

]

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.102",

"subnet": "255.255.255.0",

"fqdn": "esxmb2.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.102",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.102",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.102",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 33

Page 34: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": [

]

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.103",

"subnet": "255.255.255.0",

"fqdn": "esxmb3.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.103",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.103",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 34

Page 35: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"ip": "192.168.104.103",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": [

]

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.104",

"subnet": "255.255.255.0",

"fqdn": "esxmb4.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.104",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.104",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 35

Page 36: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.104",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": [

]

}

}

]

},

"secondaryClusters": [

]

}

},

"vcSpec": {

"credentialSpec": {

"ssoPassword": "VMware123!",

"ssoDomain": "vsphere.local",

"rootVcenterPassword": "VMware123!"

},

"managementNetwork": {

"ip": "192.168.105.50",

"fqdn": "vc.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1"

},

"esx1Datastore": "vsanDatastore",

"licenseSpec": {

"vcLicense": "",

"hostLicense": ""

},

"dep_network": "VM Network",

"thin_disk_mode": "true",

"deployment_option": "small"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 36

Page 37: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"dnsSpec": {

"dns_1": [

"192.168.101.5"

],

"domains": [

"cloud.vmw",

"vmware.com"

]

},

"ntpSpec": {

"ntp_server": [

"time.vmware.com"

]

},

"dvsSpec": {

"dvsName": "MGMT_DVS"

},

"resourcePools": {

"managementResourcePool": "MGMT-ResourcePool",

"workloadResourcePool": "Compute-ResourcePool"

},

"nsxSpec": {

"nsxManager1": {

"credentialSpec":{

"rootPassword" : "NSRRocks123!",

"cliPassword" : "NSRRocks123!",

"auditPassword" : "NSRRocks123!"

},

"managementNetwork":{

"ip": "192.168.105.51",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.51",

"gateway": "192.168.105.1"

}

},

"nsxManager2": {

"credentialSpec":{

"rootPassword" : "NSRRocks123!",

"cliPassword" : "NSRRocks123!",

"auditPassword" : "NSRRocks123!"

},

"managementNetwork":{

"ip": "192.168.105.52",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.51",

"gateway": "192.168.105.1"

}

},

"nsxManager3": {

"credentialSpec":{

"rootPassword" : "NSRRocks123!",

"cliPassword" : "NSRRocks123!",

"auditPassword" : "NSRRocks123!"

},

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 37

Page 38: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"managementNetwork":{

"ip": "192.168.105.53",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.53",

"gateway": "192.168.105.1"

}

},

"virtualIP": "192.168.105.55",

"nsxEdgeSpec": {

"edgeCluster": "NSX_EDGE_CLUSTER",

"edgeNode1": {

"credentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

"ip": "192.168.105.61",

"fqdn": "edge1.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1",

"subnet": "255.255.255.0"

},

"datastore": "vsanDatastore",

"deploymentNetwork": {

"network0": "VM_MGMT",

"network1": "EDGE_OVERLAY",

"network2": "EDGE_UPLINK1",

"network3": "EDGE_UPLINK2"

},

"thinDiskMode": "true",

"deploymentOption": "small",

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"uplinkProfile": "nsx-edge-overlay-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

},

"nvds2": {

"switchName": "NVDS-2",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

"nvds3": {

"switchName": "NVDS-3",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 38

Page 39: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

}

},

"edgeNode2": {

"credentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

"ip": "192.168.105.62",

"fqdn": "edge2.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1",

"subnet": "255.255.255.0"

},

"datastore": "vsanDatastore",

"deploymentNetwork": {

"network0": "VM_MGMT",

"network1": "EDGE_OVERLAY",

"network2": "EDGE_UPLINK1",

"network3": "EDGE_UPLINK2"

},

"thinDiskMode": "false",

"deploymentOption": "small",

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"uplinkProfile": "nsx-edge-overlay-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

},

"nvds2": {

"switchName": "NVDS-2",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

"nvds3": {

"switchName": "NVDS-3",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 39

Page 40: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

}

},

"uplinkProfileSpec": {

"nsxEdgeOverlayUplinkProfile": {

"displayName": "nsx-edge-overlay-uplink-profile",

"description": "Used to define how the Edge Node VMs connect to the network to

provide participate in the Overlay network.",

"mtu": "9000",

"transportVlan": "0",

"teaming": {

"standbyList": [

],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

],

"policy": "FAILOVER_ORDER"

}

},

"nsxEdgeUplinkProfile": {

"displayName": "nsx-edge-uplink-profile",

"description": "Used to define how the Edge Node VMs connect to the physical

network.",

"mtu": "1500",

"transportVlan": "0",

"teaming": {

"standbyList": [

],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

],

"policy": "FAILOVER_ORDER"

}

},

"hostUplinkProfile": {

"displayName": "host-uplink-profile",

"mtu": "9000",

"teaming": {

"policy": "LOADBALANCE_SRCID",

"standbyList": [

],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC",

"deviceName": "vmnic2"

},

{

"uplinkName": "uplink-2",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 40

Page 41: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"uplinkType": "PNIC",

"deviceName": "vmnic3"

}

]

},

"transportVlan": "1200",

"namedTeamings": [

{

"name": "Edge_Transport",

"policy": "FAILOVER_ORDER",

"standbyList": [

],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

]

},

{

"name": "Uplink1_Only",

"policy": "FAILOVER_ORDER",

"standbyList": [

],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

]

},

{

"name": "Uplink2_Only",

"policy": "FAILOVER_ORDER",

"standbyList": [

],

"activeList": [

{

"uplinkName": "uplink-2",

"uplinkType": "PNIC"

}

]

}

]

}

},

"ipPoolSpec": {

"sddcIpPool": {

"displayName": "SDDC_ESX_TEP_IP_POOL_GENEVE2",

"start": "192.168.106.10",

"end": "192.168.106.30",

"cidr": "192.168.106.0/24",

"tepGatewayIp": "192.168.106.1"

},

"sddcEdgeIpPool": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 41

Page 42: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"displayName": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"start": "192.168.107.10",

"end": "192.168.107.20",

"cidr": "192.168.107.0/24",

"tepGatewayIp": "192.168.107.1"

}

},

"nsxTransportZones": {

"sddcNvdsName": "NVDS-1",

"edgeUplink1TransportZone": {

"displayName": "SDDC_EDGE_UPLINK1_TZONE",

"hostSwitchName": "NVDS-2",

"description": "Used for connecting one of the Edge Node VMs interfaces to the

physical network",

"transportType": "VLAN"

},

"edgeUplink2TransportZone": {

"displayName": "SDDC_EDGE_UPLINK2_TZONE",

"hostSwitchName": "NVDS-3",

"description": "Used for connecting one of the Edge Node VMs interfaces to the

physical network",

"transportType": "VLAN"

},

"vlanTransportZone": {

"displayName": "SDDC_VLAN_TZONE",

"hostSwitchName": "NVDS-1",

"description": "SDDC_VLAN_TZONE",

"transportType": "VLAN",

"uplinkTeamingPolicyNames": [

"Edge_Transport",

"Uplink1_Only",

"Uplink2_Only"

]

},

"overlayTransportZone": {

"displayName": "SDDC_OVERLAY_TZONE",

"hostSwitchName": "NVDS-1",

"description": "SDDC_OVERLAY_TZONE",

"transportType": "OVERLAY"

}

},

"logicalSwitchSpec": {

"edgeOverlay": {

"displayName": "EDGE_OVERLAY",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Edge_Transport",

"vlan": "1100"

},

"edgeUplink1": {

"displayName": "EDGE_UPLINK1",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Uplink1_Only",

"vlanRanges": {

"start": 0,

"end": 4094

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 42

Page 43: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

},

"edgeUplink2": {

"displayName": "EDGE_UPLINK2",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Uplink2_Only",

"vlanRanges": {

"start": 0,

"end": 4094

}

}

},

"routerSpec": {

"tierZeroGateway": {

"name": "T0",

"haMode": "ACTIVE_STANDBY",

"failOverMode": "NON_PREEMPTIVE",

"description": "T0 gateway router for outboud connections.",

"routeRedistributionTypes": [

"TIER0_NAT"

],

"routeAdvertisementTypes": [

"TIER1_CONNECTED"

],

"edgeUplink1TransportZoneSegment": {

"name": "VLAN-UPLINK-SEGMENT-1",

"description": "VLAN-UPLINK-SEGMENT-1-2100",

"vlan": "2100"

},

"edgeUplink2TransportZoneSegment": {

"name": "VLAN-UPLINK-SEGMENT-2",

"description": "VLAN-UPLINK-SEGMENT-2-2200",

"vlan": "2200"

},

"tierZeroInterfaces": [

{

"name": "Uplink-I1",

"ipAddressWithCidr": "172.16.1.1/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",

"placementEdgeNode": "edge1.cloud.vmw"

},

{

"name": "Uplink-I2",

"ipAddressWithCidr": "172.16.2.1/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",

"placementEdgeNode": "edge1.cloud.vmw"

},

{

"name": "Uplink-I3",

"ipAddressWithCidr": "172.16.1.2/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",

"placementEdgeNode": "edge2.cloud.vmw"

},

{

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 43

Page 44: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"name": "Uplink-I4",

"ipAddressWithCidr": "172.16.2.2/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",

"placementEdgeNode": "edge2.cloud.vmw"

}

]

},

"tierOneGateway": {

"name": "CGW",

"failOverMode": "NON_PREEMPTIVE",

"routeAdvertisementTypes": [

"TIER1_CONNECTED"

],

"description": "Tier 1 Router for internal East-west SDDC overlay traffic.",

"logicalOverlaySwitches": [

{

"name": "WorkloadLS1",

"description": "Segment for internal overlay Network.",

"type": "ROUTED",

"gatewayIpAddressWithCidr": "192.168.200.1/24",

"internalNetwrokWithCidr": "192.168.200.0/24"

}

]

}

},

"licenseKey": ""

},

"portGrpSpecs": {

"vmMgmt": {

"type": "VM_MGMT",

"vlan": 0

},

"vsan": {

"type": "VSAN",

"vlan": 0

},

"nsxTransport": {

"type": "TRANSPORT_PG",

"vlan": 0

},

"vmotion": {

"type": "VMOTION_PG",

"vlan": 0

},

"esxMgmt": {

"type": "ESXi_MGMT",

"vlan": 0

}

},

"vsanSpec": {

"license": ""

},

"repoSpec": {

"vc_url": "http://10.172.158.244:8080/vcps-sddc-bundle/vcenter/VMware-VCSA-

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 44

Page 45: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

all-6.7.0-14080392.iso",

"nsx_unified_appliance_ova": "http://10.172.158.244:8080/vcps-sddc-bundle/nsxt/nsx-

unified-appliance-2.5.0.0.0.14075120.ova",

"base_repo_url": "http://10.172.158.244:8080",

"hcx_cloud_ova_url": "https://172.17.11.3:8443/userContent/vcps/hcx/cloud/VMware-HCX-

Cloud-3.5.1-14222959-all.ova",

"hcx_enterprise_ova_url": "https://172.17.11.3:8443/userContent/vcps/hcx/enterprise/

VMware-HCX-Enterprise-3.5.1-14222958-all.ova"

},

"components": {

"vcenter": {

"build": "13950066",

"version": "6.7.0.40000"

},

"nsxt": {

"build": "13952734",

"version": "2.5.0.0.0"

},

"esxi": {

"build": "13962079",

"version": "6.7.0-1.39"

}

},

"hcxSpec": {

"hcxCloudDeploy": true,

"hcxEnterpriseDeploy": false,

"hcxCloudSpec": {

"mgrCliPassword": "Skoda1!",

"mgrRootPassword": "Skoda1!",

"hostname": "192.168.101.99",

"mgrIp": "192.168.101.99",

"mgrGateway": "192.168.101.1",

"systemName": "hcx-cloud",

"diskMode": "thick",

"publicAccessUrl": "https://hcx-cloudrs12.lab.vmw",

"dataCenterLocation": {

"city": "Dallas",

"country": "United States",

"province": "Texas",

"latitude": "32.78306",

"longitude": "-96.80667"

},

"hcxActivation": {

"url": "https://connect.hcx.vmware.com",

"activationKey": ""

},

"networkProfiles": {

"mgmtNetworkProfile": {

"portGroupName": "VM_MGMT",

"switchName": "MGMT_DVS",

"ipScopes": [{

"networkIpRanges": [{

"startAddress": "192.168.101.115",

"endAddress": "192.168.101.119"

}],

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 45

Page 46: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"gateway": "192.168.101.1",

"primaryDns": "192.168.101.5"

}]

},

"vMotionNetworkProfile": {

"portGroupName": "VMOTION_PG",

"switchName": "MGMT_DVS",

"ipScopes": [{

"networkIpRanges": [{

"startAddress": "192.168.101.120",

"endAddress": "192.168.101.123"

}],

"gateway": "192.168.101.1",

"primaryDns": "192.168.101.5"

}]

},

"externalNetworkProfile": {

"portGroupName": "ESXi_MGMT",

"switchName": "MGMT_DVS",

"ipScopes": [{

"networkIpRanges": [

{

"startAddress": "192.168.101.124",

"endAddress": "192.168.101.127"

}

],

"gateway": "192.168.101.1",

"primaryDns": "192.168.101.5"

}]

}

},

"computeProfile": {

"name": "CloudCP",

"dataStore": "vsanDatastore",

"resourcePool": "MGMT-ResourcePool",

"switchName": "SDDC_OVERLAY_TZONE",

"computeNetworkProfileTags": {

"mgmtNetworkProfile": ["management", "replication"],

"externalNetworkProfile": ["uplink"],

"vMotionNetworkProfile": ["vmotion"]

}

}

},

"hcxEnterpriseSpec": {

"mgrCliPassword": "Skoda1!",

"mgrRootPassword": "Skoda1!",

"hostname": "192.168.101.99",

"mgrIp": "192.168.101.99",

"mgrIpPrefix": "24",

"mgrGateway": "192.168.101.1",

"systemName": "hcx-cloud",

"diskMode": "thick",

"publicAccessUrl": "https://hcx-cloudrs12.lab.vmw",

"dataCenterLocation": {

"city": "Dallas",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 46

Page 47: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"country": "United States",

"province": "Texas",

"latitude": "32.78306",

"longitude": "-96.80667"

},

"hcxEnterpriseCredentialSpec": {

"username": "[email protected]",

"password": "VMware123!"

},

"hcxSitePairSpec": {

"hcxCloudCredentialSpec": {

"url": "https://192.168.101.6/",

"username": "[email protected]",

"password": "VMware123!"

}

},

"hcxServiceMeshSpec": {

"name": "serviceMeshName",

"cloudComputeProfileName": "",

"enterpriseComputeProfileName": "",

"enterpriseNetworkUplinkProfileName": "",

"cloudNetworkUplinkProfileName": ""

},

"datastore": "vsanDatastore",

"hcxActivation": {

"url": "https://connect.hcx.vmware.com",

"activationKey": ""

},

"networkProfiles": {

"mgmtNetworkProfile": {

"portGroupName": "VM_MGMT",

"switchName": "MGMT_DVS",

"ipScopes": [{

"networkIpRanges": [{

"startAddress": "192.168.101.115",

"endAddress": "192.168.101.119"

}],

"gateway": "192.168.101.1",

"primaryDns": "192.168.101.5"

}]

},

"vMotionNetworkProfile": {

"portGroupName": "VMOTION_PG",

"switchName": "MGMT_DVS",

"ipScopes": [{

"networkIpRanges": [{

"startAddress": "192.168.101.120",

"endAddress": "192.168.101.123"

}],

"gateway": "192.168.101.1",

"primaryDns": "192.168.101.5"

}]

},

"externalNetworkProfile": {

"portGroupName": "ESXi_MGMT",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 47

Page 48: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"switchName": "MGMT_DVS",

"ipScopes": [{

"networkIpRanges": [

{

"startAddress": "192.168.101.124",

"endAddress": "192.168.101.127"

}

],

"gateway": "192.168.101.1",

"primaryDns": "192.168.101.5"

}]

}

},

"computeProfile": {

"name": "sample",

"dataStore": "vsanDatastore",

"resourcePool": "MGMT-ResourcePool",

"switchName": "SDDC_OVERLAY_TZONE",

"computeNetworkProfileTags": {

"mgmtNetworkProfile": ["management", "replication"],

"externalNetworkProfile": ["uplink"],

"vMotionNetworkProfile": ["vmotion"]

}

}

}

}

}

HCX Enterprise Specification FileThe HCX Enterprise specification file must contain all the information required to configure the HCX instance.

An example is provided below.

{

"dataCenter": {

"name": "ENT_DC",

"managementFolder": "MGMT_VMs",

"clusters": {

"management": {

"name": "ENT_CLU"

}

}

},

"vcSpec": {

"credentialSpec": {

"ssoPassword": "VMware123!",

"ssoDomain": "vsphere.local",

"rootVcenterPassword": "VMware123!"

},

"managementNetwork": {

"ip": "172.24.24.250",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 48

Page 49: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"fqdn": "vc.enterprise.vmw"

}

},

"dnsSpec": {

"dns_1": [

"172.24.24.11"

],

"domains": [

"rspace.vmw"

]

},

"ntpSpec": {

"ntp_server": [

"172.24.24.11"

]

},

"dvsSpec": {

"dvsName": "ENT_DVS"

},

"repoSpec": {

"hcx_enterprise_ova_url":"https://172.24.24.231:8443/userContent/vcps/hcx/enterprise/

VMware-HCX-Enterprise-3.5.1-14222958-all.ova"

},

"hcxSpec": {

"hcxCloudDeploy": "false",

"hcxEnterpriseDeploy": "true",

"hcxEnterpriseSpec": {

"mgrCliPassword": "NSRRocks123!",

"mgrRootPassword": "NSRRocks123!",

"hostname": "hcxenterprise1.rspace.vmw",

"mgrIp": "172.24.24.146",

"mgrGateway": "172.24.24.1",

"systemName": "hcxenterprise1",

"datastore":"Datastore",

"resourcePoolName":"MGMT-ResourcePool",

"diskMode": "thin",

"publicAccessUrl": "https://hcxenterprise1.rspace.vmw",

"dataCenterLocation": {

"city": "Dallas",

"country": "United States",

"province": "Texas",

"latitude": "32.78306",

"longitude": "-96.80667"

},

"hcxActivation": {

"url": "https://connect.hcx.vmware.com",

"activationKey": ""

},

"networkProfiles": {

"mgmtNetworkProfile": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 49

Page 50: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"name": "MGMTNetworkProfile",

"portGroupName": "VM_MGMT",

"switchName": "ENT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "172.24.24.156",

"endAddress": "172.24.24.159"

}

],

"gateway": "172.24.24.1",

"primaryDns": "172.24.24.11"

}

]

},

"vMotionNetworkProfile": {

"name": "VMOTIONNetworkProfile",

"portGroupName": "VMOTION_PG",

"switchName": "ENT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "172.24.21.156",

"endAddress": "172.24.21.159"

}

],

"gateway": "172.24.21.1",

"primaryDns": "172.24.24.11"

}

]

},

"externalNetworkProfile": {

"name": "ext-test",

"portGroupName": "VSAN",

"switchName": "ENT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "172.24.23.156",

"endAddress": "172.24.23.159"

}

],

"gateway": "172.24.23.1",

"primaryDns": "172.24.24.11"

}

]

}

},

"computeProfile": {

"name": "Rackspace1Compute",

"datastoreName": "Datastore",

"resourcePoolName": "MGMT-ResourcePool",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 50

Page 51: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"switchName": "ENT_DVS",

"computeNetworkProfileTags": {

"mgmtNetworkProfile": [

"management",

"replication"

],

"externalNetworkProfile": [

"uplink"

],

"vMotionNetworkProfile": [

"vmotion"

]

}

},

"hcxEnterpriseCredentialSpec": {

"username": "[email protected]",

"password": "VMware123!"

},

"hcxSitePairSpec": {

"hcxCloudCredentialSpec": {

"url": "https://172.24.24.143",

"username": "[email protected]",

"password": "VMware123!"

}

},

"hcxServiceMeshSpec": {

"name": "Interconnect",

"cloudComputeProfileName": "CloudCP",

"enterpriseComputeProfileName": "Rackspace1Compute",

"enterpriseNetworkUplinkProfileName": "ext-test",

"cloudNetworkUplinkProfileName": "HCX_UPLINK"

}

}

}

}

params.json FileThe params.json file includes flags and parameters that determine various conditions in the testing and validation process.

The params.json file is passed as a parameter when boot.py is run.

Note You must download the params.json file from the S3 repository.

The following table describes the flags and keys that are used in the params.json file.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 51

Page 52: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Table 8-1. Flags and Keys Used in params.json

Flag/Key Values and Description

rc Determines whether the bits must be pushed to production or not.

n true - Do not promote the bits to production. Bits pushed to test?

n false - Promote the bits to production

stage Determines what has to be run in the Master Orchestrator (MO) pipeline.

n setup - Set up Stage-1 and do not trigger the MO.

n first - Run only Stage-1 and do not trigger Stage-2.

n both - Run both Stage-1 and Stage-2

prom Determines the components or bundle that must be promoted to production.

n sddc

n cp

Note Include sddc=n and cp=m if you want to specify the bundle version of the SDDC and the Cloud Provider (CP) product version to be used for testing and acceptance.

stop_on_error Defines if Master Orchestrator (MO) execution must stop on error or not.

n true - Stop MO on error.

n false - Continue the process and publish the results in the end.

sp_type Identify VCPS Service Provider

stage_bringup_current_enabled Run bring-up LCM flow in MO if set to true

stage_add_host_enabled Run Add Host LCM flow in MO if set to true

stage_remove_host_enabled Run Remove Host LCM flow in MO if set to true

nfs_enabled Enable the NFS-datastore feature in all LCM flows in MO if set to true

stage_add_cluster_enabled Run Add Cluster LCM flow in MO if set to true

stage_remove_cluster_enabled Run Remove Cluster LCM flow in MO if set to true

uuid Unique ID for each MO run in a particular stage. For example, "STAGE1-001" or "STAGE2-001"

hcx_service_mesh_creation_enabled Create HCX Service Mesh in MO if set to true

hcx_service_mesh_deletion_enabled Delete HCX Service Mesh in MO if set to true

is_resume_previous_run_enabled Resume the flow on previously fetched Hosts for dynamic Host Service if set to true

stage_release_hosts_enabled Release hosts after all LCM flows are run in MO for dynamic Host Service if set to true

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 52

Page 53: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Example: params.json File to Trigger Stage-1The value of stage is set to first in this example, which means only Stage-1 will be triggered. Set this value to both to trigger Stage-2.

{

"root_manifest_url_current": "s3://vcps-rtm/REL_1_1_0_0/root-manifest.json",

"rc" : "true",

"stage" : "first",

"stop_on_error" : "true",

"prom" : "[sddc, cp]",

"sp_type": "0",

"stage_bringup_current_enabled" : "true",

"stage_add_host_enabled" : "false",

"add_host_spec_path" : "/data/vcps/host_spec.json",

"add_host_cluster_name" : "MGMT_CLU",

"stage_remove_host_enabled" : "false",

"remove_host_spec_path" : "/data/vcps/host_spec.json",

"remove_host_name" : "esx123.lab.xxx",

"stage_patch_enabled" : "false",

"stage_bringup_previous_enabled" : "false",

"nfs_enabled" : "false",

"add_cluster_spec_path" : "/data/vcps/add_cluster_spec.json",

"remove_cluster_spec_path": "/data/vcps/remove_cluster_spec.json",

"remove_cluster_name" : "SEC_CLU",

"stage_add_cluster_enabled" : "false",

"stage_remove_cluster_enabled" : "true",

"uuid": "CI-ENV-157",

"hcx_service_mesh_creation_enabled": "false",

"hcx_service_mesh_deletion_enabled": "false",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 53

Page 54: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"rbac_enabled": "false",

"um_enabled": "false",

"um_unregister": "false"

}

config.properties FileYou must create a config.properties file which includes the default configuration information about the server profiles, path to AWS keys, paths to specification files, HCB registry paths, and so on.

The file must be present at /data/vcps/config/config.properties.

An example file is shown below:

Example: config.properties File

Note The STAGE2_INIT_SCRIPT_PATH must be set to boot.py path if you want to trigger Stage-2.

============Default properties=============

STAGE2_BASE_PATH=/data/vcps/

STAGE1_BASE_PATH=/data/vcps/

STAGE2_INIT_SCRIPT_PATH=/data/boot.py

VCPS_BUNDLE_DIR_STAGE2=/data/jenkins/userContent/

VCPS_BUNDLE_DIR_STAGE1=/data/jenkins/userContent/vcps/

HCB_VALIDATION_LOG_SHA_PATH=/data/vcps/report

HCB_REGISTRY_PATH=/data/vcps/.registry

SERVER_PROFILE_PATH=/data/vcps/server_profile.json

SERVER_PROFILE_STATUS_REGISTRY=/data/vcps/server.registry

=================Editable Properties=========================

=====Dynamic Host Service API Properties=====

HOST_SERVICE_IP=192.168.101.8

HOST_SERVICE_PORT=6999

==============================================

============Add list of tests to be ignored in a file at below location========

HHEALTH_IGNORE_TESTID_PATH=/data/vcps/IgnoreTest

======================================================

HCB_SKIP_SHA_VALIDATION=false

HCB_SKIP_HARDWARE_VALIDATION_EXCEPTION=false

HCB_ESXI_FETCH_OUTPUT_PATH_CURRENT=/data/vcps/fetched_c.json

HCB_ESXI_FETCH_OUTPUT_PATH_PREVIOUS=/data/vcps/fetched_p.json

HCB_SPEC_CURRENT_OUTPUT_PATH=/data/vcps/current.json

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 54

Page 55: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

HCB_SDDC_SPEC_CURRENT_OUTPUT_PATH=/data/vcps/bringup_current.json

HCB_NFS_SPEC_CURRENT_OUTPUT_PATH=/data/vcps/nfs_current.json

HCB_SPEC_PREVIOUS_OUTPUT_PATH=/data/vcps/previous.json

HCB_BRINGUP_CURRENT_OUTPUT_REST_SPEC_PATH=/data/vcps/rest_current.json

HCB_BRINGUP_PREVIOUS_OUTPUT_REST_SPEC_PATH=/data/vcps/rest_previous.json

UUID_BASE_PATH=/data/vcps

SERVER_PROFILE_STATUS_LOGS=/data/vcps/server.registry

HCB_MEGA_POP_HOST_IP=192.168.101.3

HCB_MEGA_POP_USERNAME=root

HCB_MEGA_POP_PASSWORD=password

HCB_ORCHESTRATOR_IP=192.168.101.2

HCB_ORCHESTRATOR_PASSWORD=password

HCB_ORCHESTRATOR_USERNAME=root

HCB_STAGE2_ORCHESTRATOR_IP=192.168.123.14

HCB_STAGE2_ORCHESTRATOR_PASSWORD=password

HCB_STAGE2_ORCHESTRATOR_USERNAME=root

HCB_ORCHESTRATOR_JENKINS_HTTPS_URL=https://192.168.101.2:8443

HCB_ORCHESTRATOR_JENKINS_USERNAME=admin

HCB_ORCHESTRATOR_JENKINS_PASSWORD=password

HCB_JENKINS_PEM_URL=https://192.168.101.2:8443/userContent/jenkins.pem

HCB_TRUST_CERTIFICATE=true

HCB_ENV_TYPE=TYPE_0

HCB_REST_API_USERNAME=vcpps

HCB_REST_API_PASSWORD=password

STAGE2_INIT_SCRIPT_PATH=boot.py

============End Editable properties

====Non-Editable Properties=====

AWS_SECRET_ACCESS_KEY=""

AWS_ACCESS_KEY_ID=""

AWS_BUCKET_NAME=log-archive-vbme-vst

AWS_BUCKET_FOLDER_NAME=vbme_vst_dev

AWS_REGION_NAME=us-west-1

HCB_ENV_TYPE=TYPE_0

HCB_JENKINS_CONTAINER_VOLUME=/var/run/docker.sock:/run/docker.sock,/usr/bin/docker:/bin/docker,/data/

jenkins/:/data/jenkins,/data/vcps/:/data/vcps,/data/runtime:/data/runtime

HCB_MEGAPOP_CONTAINER_VOLUME=/data/vcps/log/:/data/vcps/log,/data/vcps/config/cert.jks:/data/vcps/

config/cert.jks

===============End Non-Editable properties

Primary Enterprise SDDC and HCX Enterprise APIsYou can use the APIs described in this section to perform various tasks within the primary enterprise SDDC and HCX Enterprise.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 55

Page 56: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

The following diagram shows a possible workflow for the Enterprise and HCX Cloud deployments using the APIs.

Primary Enterprise SDDC REST APIsVCPS uses REST APIs to make HTTP requests to the server and to retrieve information from the server. You can use VCPS APIs to automate workflows within your code.

You will use HTTP GET requests to retrieve information, POST and PUT requests to create or modify data, and DELETE request to delete an object.

Use the Get Status API call to get the status of any task.

After a bring-up operation, you can use the validation API to validate the task. Use the Get Validation Status API to get the status of the validation.

List of Supported REST APIsThe following table lists the tasks that you can perform with the VCPS APIs. For PUT and POST requests, you must provide the required information in the body of the email.

Table 8-2. VCPS APIs

Task Method URL

Log in POST https://{{server_ip}}:9443/api/v1/

session

Get Status GET https://{{server_ip}}:9443/api/v1/

tasks/1/status

Put SDDC Spec PUT https://{{server_ip}}:9443/api/v1/

sddc

Bring-up POST https://{{server_ip}}:9443/api/v1/

sddc

Add Host POST https://{{server_ip}}:9443/api/v1/

sddc/{{sddc_id}}/cluster/

{{cluster_name}}/hosts

Remove Host DELETE https://{{server_ip}}:9443/api/v1/

sddc/{{sddc_id}}/hosts/{{hostname}}

Add Cluster POST https://{{server_ip}}:9443/api/v1/

sddc/1/clusters/{{cluster_name}}

Remove Cluster DELETE https://{{server_ip}}:9443/api/v1/

sddc/1/clusters/{{cluster_name}}

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 56

Page 57: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

The following sections provide detailed information and example requests and responses.

Log InYou must log in to the server and establish a session before you can begin to use the VCPS APIs.

Prerequisites

The following information must be present in the config.properties file:

n Key username as HCB_REST_API_USERNAME

n Key password as HCB_REST_API_PASSWORD in encrypted form

Procedure

1 The following POST request will be sent to the server:

https://{{server_ip}}:9443/api/v1/session

The user name and password is sent in the body of the request:

curl --location --request POST "https://{{server_ip}}:9443/api/v1/session" \

--header "Content-Type: application/json" \

--data "{

\"userName\":\"vcpps\",

\"password\":\"VMware1!\"

}"

2 A successful call will create a session and return the session ID.

{

"JSESSIONID":"60F38BD96635823FEFB95E79DBBB6ED7"

}

What to do next

Save the session ID as you will need to provide the ID when you call the other VCPS APIs.

Get StatusGet the status of a job.

The sessionID is sent in the header of the request.

Procedure

u Send the following GET request to the server.

https://{{server_ip}}:9443/api/v1/tasks/1/status --header "JSESSIONID: {{JSESSIONID}}" --

data ""

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 57

Page 58: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Results

A successful call returns the ID with the status:

{

"id": "1",

"status": "SUCCESS",

"events": {

"events": []

},

"subTasks": {

"subtasks": {

"DIRECT_PATCH_IN_BRINGUP": {

"status": "SUCCESS",

"events": {

"events": []

}

}

}

}

}

Modify SDDC SpecificationYou can add or modify the SDDC specification through a PUT request.

Procedure

u Send the following PUT request to the server:

https://{{server_ip}}:9443/api/v1/sddc

curl --location --request PUT "https://{{server_ip}}:9443/api/v1/sddc/" \

--header "Content-Type: application/json" \

--header "JSESSIONID: {{JSESSIONID}}" \

--data "{...}"

Results

No response is expected.

Example: SDDC Specification

{

"dataCenter": {

"name": "MGMT_DC",

"managementFolder": "MGMT_VMs",

"clusters": {

"management": {

"name": "MGMT_CLU",

"hosts": []

}

}

},

"vcSpec": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 58

Page 59: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"credentialSpec": {

"ssoPassword": "VMware123!",

"ssoDomain": "vsphere.local",

"rootVcenterPassword": "VMware123!"

},

"managementNetwork": {

"vcenterIP": "172.17.11.50",

"vcFqdn": "vcmb.lab.vmw",

"prefix": "24",

"gateway": "172.17.11.1"

},

"esx1Datastore": "vsanDatastore",

"licenseSpec": {

"vcLicense": "",

"hostLicense": ""

},

"dep_network": "VM Network",

"thin_disk_mode": "false",

"deployment_option": "small"

},

"dnsSpec": {

"dns_1": [

"172.17.11.5"

],

"domains": [

"lab.vmw",

"vmware.com"

]

},

"ntpSpec": {

"ntp_server": [

"time.vmware.com"

]

},

"dvsSpec": {

"dvsName": "MGMT_DVS"

},

"resourcePools": {

"managementResourcePool": "MGMT-ResourcePool",

"workloadResourcePool": "Compute-ResourcePool"

},

"nsxSpec": {

"nsxManagerCredentialSpec": {

"rootPassword" : "NSRRocks123!",

"cliPassword" : "NSRRocks123!",

"auditPassword" : "NSRRocks123!"

},

"nsxManager1": {

"managementNetwork":{

"ip": "192.168.105.51",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.51",

"gateway": "192.168.105.1"

}

},

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 59

Page 60: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"nsxManager2": {

"managementNetwork":{

"ip": "192.168.105.52",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.51",

"gateway": "192.168.105.1"

}

},

"nsxManager3": {

"managementNetwork":{

"ip": "192.168.105.53",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.53",

"gateway": "192.168.105.1"

}

},

"virtualIP": "192.168.105.55",

"nsxEdgeSpec": {

"edgeCluster": "NSX_EDGE_CLUSTER",

"edgeNode1": {

"credentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

"ip": "192.168.105.61",

"fqdn": "edge1.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1",

"subnet": "255.255.255.0"

},

"datastore": "vsanDatastore",

"deploymentNetwork": {

"network0": "VM_MGMT",

"network1": "EDGE_OVERLAY",

"network2": "EDGE_UPLINK1",

"network3": "EDGE_UPLINK2"

},

"thinDiskMode": "false",

"deploymentOption": "medium",

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"uplinkProfile": "nsx-edge-overlay-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

},

"nvds2": {

"switchName": "NVDS-2",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 60

Page 61: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

"nvds3": {

"switchName": "NVDS-3",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

}

},

"edgeNode2": {

"credentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

"ip": "192.168.105.62",

"fqdn": "edge2.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1",

"subnet": "255.255.255.0"

},

"datastore": "vsanDatastore",

"deploymentNetwork": {

"network0": "VM_MGMT",

"network1": "EDGE_OVERLAY",

"network2": "EDGE_UPLINK1",

"network3": "EDGE_UPLINK2"

},

"thinDiskMode": "false",

"deploymentOption": "medium",

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"uplinkProfile": "nsx-edge-overlay-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

},

"nvds2": {

"switchName": "NVDS-2",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 61

Page 62: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"nvds3": {

"switchName": "NVDS-3",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

}

}

},

"uplinkProfileSpec": {

"nsxEdgeOverlayUplinkProfile": {

"displayName": "nsx-edge-overlay-uplink-profile",

"description": "Used to define how the Edge Node VMs connect to the network to

provide participate in the Overlay network.",

"mtu": "9000",

"transportVlan": "0",

"teaming": {

"standbyList": [

],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

],

"policy": "FAILOVER_ORDER"

}

},

"nsxEdgeUplinkProfile": {

"displayName": "nsx-edge-uplink-profile",

"description": "Used to define how the Edge Node VMs connect to the physical

network.",

"mtu": "1500",

"transportVlan": "0",

"teaming": {

"standbyList": [

],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

],

"policy": "FAILOVER_ORDER"

}

},

"hostUplinkProfile": {

"displayName": "host-uplink-profile",

"mtu": "9000",

"teaming": {

"policy": "LOADBALANCE_SRCID",

"standbyList": [

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 62

Page 63: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC",

"deviceName": "vmnic2"

},

{

"uplinkName": "uplink-2",

"uplinkType": "PNIC",

"deviceName": "vmnic3"

}

]

},

"transportVlan": "1200",

"namedTeamings": [

{

"name": "Edge_Transport",

"policy": "FAILOVER_ORDER",

"standbyList": [

],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

]

},

{

"name": "Uplink1_Only",

"policy": "FAILOVER_ORDER",

"standbyList": [

],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

]

},

{

"name": "Uplink2_Only",

"policy": "FAILOVER_ORDER",

"standbyList": [

],

"activeList": [

{

"uplinkName": "uplink-2",

"uplinkType": "PNIC"

}

]

}

]

}

},

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 63

Page 64: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"ipPoolSpec": {

"sddcIpPool": {

"displayName": "SDDC_ESX_TEP_IP_POOL_GENEVE2",

"start": "192.168.106.10",

"end": "192.168.106.30",

"cidr": "192.168.106.0/24",

"tepGatewayIp": "192.168.106.1"

},

"sddcEdgeIpPool": {

"displayName": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"start": "192.168.107.10",

"end": "192.168.107.20",

"cidr": "192.168.107.0/24",

"tepGatewayIp": "192.168.107.1"

}

},

"nsxTransportZones": {

"sddcNvdsName": "NVDS-1",

"edgeUplink1TransportZone": {

"displayName": "SDDC_EDGE_UPLINK1_TZONE",

"hostSwitchName": "NVDS-2",

"description": "Used for connecting one of the Edge Node VMs interfaces to the

physical network",

"transportType": "VLAN"

},

"edgeUplink2TransportZone": {

"displayName": "SDDC_EDGE_UPLINK2_TZONE",

"hostSwitchName": "NVDS-3",

"description": "Used for connecting one of the Edge Node VMs interfaces to the

physical network",

"transportType": "VLAN"

},

"vlanTransportZone": {

"displayName": "SDDC_VLAN_TZONE",

"hostSwitchName": "NVDS-1",

"description": "SDDC_VLAN_TZONE",

"transportType": "VLAN",

"uplinkTeamingPolicyNames": [

"Edge_Transport",

"Uplink1_Only",

"Uplink2_Only"

]

},

"overlayTransportZone": {

"displayName": "SDDC_OVERLAY_TZONE",

"hostSwitchName": "NVDS-1",

"description": "SDDC_OVERLAY_TZONE",

"transportType": "OVERLAY"

}

},

"logicalSwitchSpec": {

"edgeOverlay": {

"displayName": "EDGE_OVERLAY",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Edge_Transport",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 64

Page 65: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"vlan": "1100"

},

"edgeUplink1": {

"displayName": "EDGE_UPLINK1",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Uplink1_Only",

"vlanRanges": {

"start": 0,

"end": 4094

}

},

"edgeUplink2": {

"displayName": "EDGE_UPLINK2",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Uplink2_Only",

"vlanRanges": {

"start": 0,

"end": 4094

}

}

},

"routerSpec": {

"tierZeroGateway": {

"name": "T0",

"haMode": "ACTIVE_STANDBY",

"failOverMode": "NON_PREEMPTIVE",

"description": "T0 gateway router for outboud connections.",

"routeRedistributionTypes": [

"TIER0_NAT"

],

"routeAdvertisementTypes": [

"TIER1_CONNECTED"

],

"edgeUplink1TransportZoneSegment": {

"name": "VLAN-UPLINK-SEGMENT-1",

"description": "VLAN-UPLINK-SEGMENT-1-2100",

"vlan": "2100"

},

"edgeUplink2TransportZoneSegment": {

"name": "VLAN-UPLINK-SEGMENT-2",

"description": "VLAN-UPLINK-SEGMENT-2-2200",

"vlan": "2200"

},

"tierZeroInterfaces": [

{

"name": "Uplink-I1",

"ipAddressWithCidr": "172.16.1.1/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",

"placementEdgeNode": "edge1.cloud.vmw"

},

{

"name": "Uplink-I2",

"ipAddressWithCidr": "172.16.2.1/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",

"placementEdgeNode": "edge1.cloud.vmw"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 65

Page 66: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

{

"name": "Uplink-I3",

"ipAddressWithCidr": "172.16.1.2/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",

"placementEdgeNode": "edge2.cloud.vmw"

},

{

"name": "Uplink-I4",

"ipAddressWithCidr": "172.16.2.2/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",

"placementEdgeNode": "edge2.cloud.vmw"

}

]

},

"tierOneGateway": {

"name": "CGW",

"failOverMode": "NON_PREEMPTIVE",

"routeAdvertisementTypes": [

"TIER1_CONNECTED"

],

"description": "Tier 1 Router for internal East-west SDDC overlay traffic.",

"logicalOverlaySwitches": [

{

"name": "WorkloadLS1",

"description": "Segment for internal overlay Network.",

"type": "ROUTED",

"gatewayIpAddressWithCidr": "192.168.200.1/24",

"internalNetwrokWithCidr": "192.168.200.0/24"

}

]

}

},

"licenseKey": ""

},

"portGrpSpecs": {

"vmMgmt": {

"type": "VM_MGMT",

"vlan": 0

},

"vsan": {

"type": "VSAN",

"vlan": 0

},

"nsxTransport": {

"type": "TRANSPORT_PG",

"vlan": 0

},

"vmotion": {

"type": "VMOTION_PG",

"vlan": 0

},

"esxMgmt": {

"type": "ESXi_MGMT",

"vlan": 0

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 66

Page 67: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"nfs": {

"type": "NFS",

"vlan": 0

},

"hcxUplink": {

"type": "HCX_UPLINK",

"vlan": 0

}

},

"vsanSpec": {

"license": ""

}

}

Bring-up With NFSPerform a bring-up with NFS enabled using this API call.

Procedure

1 Send the following POST request to the server: The session ID is sent in the header and the bringup specification is sent in the body of the request.

https://{{server_ip}}:9443/api/v1/sddc

2 A successful response returns a task ID of 1.

{ "task_id": "1" }

Example: Body of the request

{

"nfsSpec": {

"nfsDatastoreClusterName": "NFS_DS_CLU",

"nfsDatastores": [

{

"localPath": "NFS-1",

"remoteIp": "192.168.101.2",

"remoteMountPath": "/data/nfs/",

"accessMode": "readWrite"

}

]

},

"bringupSpec": {

"dataCenter": {

"name": "MGMT_DC",

"managementFolder": "MGMT_VMs",

"clusters": {

"management": {

"name": "MGMT_CLU",

"vsanClusterSpec": {

"deduplication": true,

"compression": true

},

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 67

Page 68: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"evcMode": "disabled",

"hosts": [

{

"username": "root",

"password": "Skoda1!",

"type": "PRIMARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.101",

"subnet": "255.255.255.0",

"fqdn": "esxmb1.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.101",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.101",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.101",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 68

Page 69: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.102",

"subnet": "255.255.255.0",

"fqdn": "esxmb2.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.102",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.102",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.102",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 69

Page 70: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.103",

"subnet": "255.255.255.0",

"fqdn": "esxmb3.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.103",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.103",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.103",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 70

Page 71: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.104",

"subnet": "255.255.255.0",

"fqdn": "esxmb4.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.104",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.104",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 71

Page 72: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"ip": "192.168.104.104",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

}

]

},

"secondaryClusters": []

}

},

"vcSpec": {

"credentialSpec": {

"ssoPassword": "VMware123!",

"ssoDomain": "vsphere.local",

"rootVcenterPassword": "VMware123!"

},

"managementNetwork": {

"ip": "192.168.105.50",

"fqdn": "vc.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1"

},

"esx1Datastore": "vsanDatastore",

"licenseSpec": {

"vcLicense": "",

"hostLicense": ""

},

"dep_network": "VM Network",

"thin_disk_mode": "true",

"deployment_option": "small"

},

"dnsSpec": {

"dns_1": [

"192.168.101.5"

],

"domains": [

"cloud.vmw",

"vmware.com"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 72

Page 73: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

]

},

"ntpSpec": {

"ntp_server": [

"time.vmware.com"

]

},

"dvsSpec": {

"dvsName": "MGMT_DVS"

},

"resourcePools": {

"managementResourcePool": "MGMT-ResourcePool",

"workloadResourcePool": "Compute-ResourcePool"

},

"nsxSpec": {

"diskMode": "thin",

"deploymentOption": "small",

"nsxManagerCredentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!",

"auditPassword": "NSRRocks123!"

},

"nsxManager1": {

"managementNetwork": {

"ip": "192.168.105.51",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.51",

"gateway": "192.168.105.1"

}

},

"nsxManager2": {

"managementNetwork": {

"ip": "192.168.105.52",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.51",

"gateway": "192.168.105.1"

}

},

"nsxManager3": {

"managementNetwork": {

"ip": "192.168.105.53",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.53",

"gateway": "192.168.105.1"

}

},

"virtualIP": "192.168.105.55",

"nsxEdgeSpec": {

"edgeCluster": "NSX_EDGE_CLUSTER",

"edgeNode1": {

"credentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 73

Page 74: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"ip": "192.168.105.61",

"fqdn": "edge1.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1",

"subnet": "255.255.255.0"

},

"datastore": "vsanDatastore",

"deploymentNetwork": {

"network0": "VM_MGMT",

"network1": "EDGE_OVERLAY",

"network2": "EDGE_UPLINK1",

"network3": "EDGE_UPLINK2"

},

"thinDiskMode": "true",

"deploymentOption": "small",

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"uplinkProfile": "nsx-edge-overlay-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

},

"nvds2": {

"switchName": "NVDS-2",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

"nvds3": {

"switchName": "NVDS-3",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

}

},

"edgeNode2": {

"credentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

"ip": "192.168.105.62",

"fqdn": "edge2.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 74

Page 75: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"subnet": "255.255.255.0"

},

"datastore": "vsanDatastore",

"deploymentNetwork": {

"network0": "VM_MGMT",

"network1": "EDGE_OVERLAY",

"network2": "EDGE_UPLINK1",

"network3": "EDGE_UPLINK2"

},

"thinDiskMode": "true",

"deploymentOption": "small",

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"uplinkProfile": "nsx-edge-overlay-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

},

"nvds2": {

"switchName": "NVDS-2",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

"nvds3": {

"switchName": "NVDS-3",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

}

}

},

"uplinkProfileSpec": {

"nsxEdgeOverlayUplinkProfile": {

"displayName": "nsx-edge-overlay-uplink-profile",

"description": "Used to define how the Edge Node VMs connect to the network to

provide participate in the Overlay network.",

"mtu": "9000",

"transportVlan": "0",

"teaming": {

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 75

Page 76: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

],

"policy": "FAILOVER_ORDER"

}

},

"nsxEdgeUplinkProfile": {

"displayName": "nsx-edge-uplink-profile",

"description": "Used to define how the Edge Node VMs connect to the physical

network.",

"mtu": "1500",

"transportVlan": "0",

"teaming": {

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

],

"policy": "FAILOVER_ORDER"

}

},

"hostUplinkProfile": {

"displayName": "host-uplink-profile",

"mtu": "9000",

"teaming": {

"policy": "LOADBALANCE_SRCID",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC",

"deviceName": "vmnic2"

},

{

"uplinkName": "uplink-2",

"uplinkType": "PNIC",

"deviceName": "vmnic3"

}

]

},

"transportVlan": "1200",

"namedTeamings": [

{

"name": "Edge_Transport",

"policy": "FAILOVER_ORDER",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

]

},

{

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 76

Page 77: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"name": "Uplink1_Only",

"policy": "FAILOVER_ORDER",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

]

},

{

"name": "Uplink2_Only",

"policy": "FAILOVER_ORDER",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-2",

"uplinkType": "PNIC"

}

]

}

]

}

},

"ipPoolSpec": {

"sddcIpPool": {

"displayName": "SDDC_ESX_TEP_IP_POOL_GENEVE2",

"start": "192.168.106.10",

"end": "192.168.106.30",

"cidr": "192.168.106.0/24",

"tepGatewayIp": "192.168.106.1"

},

"sddcEdgeIpPool": {

"displayName": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"start": "192.168.107.10",

"end": "192.168.107.20",

"cidr": "192.168.107.0/24",

"tepGatewayIp": "192.168.107.1"

}

},

"nsxTransportZones": {

"sddcNvdsName": "NVDS-1",

"edgeUplink1TransportZone": {

"displayName": "SDDC_EDGE_UPLINK1_TZONE",

"hostSwitchName": "NVDS-2",

"description": "Used for connecting one of the Edge Node VMs interfaces to the

physical network",

"transportType": "VLAN"

},

"edgeUplink2TransportZone": {

"displayName": "SDDC_EDGE_UPLINK2_TZONE",

"hostSwitchName": "NVDS-3",

"description": "Used for connecting one of the Edge Node VMs interfaces to the

physical network",

"transportType": "VLAN"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 77

Page 78: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"vlanTransportZone": {

"displayName": "SDDC_VLAN_TZONE",

"hostSwitchName": "NVDS-1",

"description": "SDDC_VLAN_TZONE",

"transportType": "VLAN",

"uplinkTeamingPolicyNames": [

"Edge_Transport",

"Uplink1_Only",

"Uplink2_Only"

]

},

"overlayTransportZone": {

"displayName": "SDDC_OVERLAY_TZONE",

"hostSwitchName": "NVDS-1",

"description": "SDDC_OVERLAY_TZONE",

"transportType": "OVERLAY"

}

},

"logicalSwitchSpec": {

"edgeOverlay": {

"displayName": "EDGE_OVERLAY",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Edge_Transport",

"vlan": "1100"

},

"edgeUplink1": {

"displayName": "EDGE_UPLINK1",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Uplink1_Only",

"vlanRanges": {

"start": 0,

"end": 4094

}

},

"edgeUplink2": {

"displayName": "EDGE_UPLINK2",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Uplink2_Only",

"vlanRanges": {

"start": 0,

"end": 4094

}

}

},

"routerSpec": {

"tierZeroGateway": {

"name": "T0",

"haMode": "ACTIVE_STANDBY",

"failOverMode": "NON_PREEMPTIVE",

"description": "T0 gateway router for outboud connections.",

"routeRedistributionTypes": [

"TIER0_NAT"

],

"routeAdvertisementTypes": [

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 78

Page 79: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"TIER1_CONNECTED"

],

"edgeUplink1TransportZoneSegment": {

"name": "VLAN-UPLINK-SEGMENT-1",

"description": "VLAN-UPLINK-SEGMENT-1-2100",

"vlan": "2100"

},

"edgeUplink2TransportZoneSegment": {

"name": "VLAN-UPLINK-SEGMENT-2",

"description": "VLAN-UPLINK-SEGMENT-2-2200",

"vlan": "2200"

},

"tierZeroInterfaces": [

{

"name": "Uplink-I1",

"ipAddressWithCidr": "172.16.1.1/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",

"placementEdgeNode": "edge1.cloud.vmw"

},

{

"name": "Uplink-I2",

"ipAddressWithCidr": "172.16.2.1/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",

"placementEdgeNode": "edge1.cloud.vmw"

},

{

"name": "Uplink-I3",

"ipAddressWithCidr": "172.16.1.2/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",

"placementEdgeNode": "edge2.cloud.vmw"

},

{

"name": "Uplink-I4",

"ipAddressWithCidr": "172.16.2.2/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",

"placementEdgeNode": "edge2.cloud.vmw"

}

]

},

"tierOneGateway": {

"name": "CGW",

"failOverMode": "NON_PREEMPTIVE",

"routeAdvertisementTypes": [

"TIER1_CONNECTED"

],

"description": "Tier 1 Router for internal East-west SDDC overlay traffic.",

"logicalOverlaySwitches": [

{

"name": "WorkloadLS1",

"description": "Segment for internal overlay Network.",

"type": "ROUTED",

"gatewayIpAddressWithCidr": "192.168.200.1/24",

"internalNetwrokWithCidr": "192.168.200.0/24"

}

]

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 79

Page 80: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

},

"licenseKey": ""

},

"portGrpSpecs": {

"vmMgmt": {

"type": "VM_MGMT",

"vlan": 0

},

"vsan": {

"type": "VSAN",

"vlan": 0

},

"nsxTransport": {

"type": "TRANSPORT_PG",

"vlan": 0

},

"vmotion": {

"type": "VMOTION_PG",

"vlan": 0

},

"esxMgmt": {

"type": "ESXi_MGMT",

"vlan": 0

},

"hcxUplink": {

"type": "HCX_UPLINK",

"vlan": 0

},

"nfs":{

"type": "NFS",

"vlan": 0

}

},

"vsanSpec": {

"license": ""

},

"repoSpec": {

"vc_url": "https://192.168.101.2:8443/userContent/vcps/sddc/14517203/vcps-sddc-bundle//

vcenter/VMware-VCSA-all-6.7.0-14367737.iso",

"nsx_unified_appliance_ova": "https://192.168.101.2:8443/userContent/vcps/sddc/14517203/

vcps-sddc-bundle/nsxt/nsx-unified-appliance-2.5.0.0.0.14493367.ova",

"nsx_edge_ova": "https://192.168.101.2:8443/userContent/vcps/sddc/14517203/vcps-sddc-

bundle/nsxt/nsx-edge-2.5.0.0.0.14493375.ova",

"base_repo_url": "https://192.168.101.2:8443/userContent/vcps/sddc/14517203",

"hcx_cloud_ova_url": "http://build-squid.eng.vmware.com/build/mts/release/bora-14519437/

publish/VMware-HCX-Cloud-3.5.2-14519437.ova"

},

"hcxSpec": {

"hcxCloudDeploy": "true",

"hcxEnterpriseDeploy": "false",

"hcxCloudSpec": {

"mgrCliPassword": "NSRRocks123!",

"mgrRootPassword": "NSRRocks123!",

"hostname": "hcx.cloud.vmw",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 80

Page 81: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"mgrIp": "192.168.108.2",

"mgrGateway": "192.168.108.1",

"systemName": "hcx-cloud",

"datastore":"vsanDatastore",

"resourcePoolName": "MGMT-ResourcePool",

"diskMode": "thin",

"publicAccessUrl": "https://192.168.108.2",

"dataCenterLocation": {

"city": "Dallas",

"country": "United States",

"province": "Texas",

"latitude": "32.78306",

"longitude": "-96.80667"

},

"hcxActivation": {

"url": "https://connect.hcx.vmware.com",

"activationKey": ""

},

"networkProfiles": {

"mgmtNetworkProfile": {

"name": "HCX_MGMT",

"portGroupName": "VM_MGMT",

"switchName": "MGMT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "192.168.108.10",

"endAddress": "192.168.108.20"

}

],

"gateway": "192.168.108.1",

"primaryDns": "192.168.101.5"

}

]

},

"vMotionNetworkProfile": {

"name": "VMOTION",

"portGroupName": "VMOTION_PG",

"switchName": "MGMT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "192.168.103.30",

"endAddress": "192.168.103.40"

}

],

"gateway": "192.168.103.1",

"primaryDns": "192.168.101.5"

}

]

},

"externalNetworkProfile": {

"name": "HCX_UPLINK",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 81

Page 82: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"portGroupName": "HCX_UPLINK",

"switchName": "MGMT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "192.168.109.10",

"endAddress": "192.168.109.20"

}

],

"gateway": "192.168.109.1",

"primaryDns": "192.168.101.5"

}

]

}

},

"computeProfile": {

"name": "CLOUDCP",

"datastoreName": "vsanDatastore",

"resourcePoolName": "MGMT-ResourcePool",

"switchName": "SDDC_OVERLAY_TZONE",

"computeNetworkProfileTags": {

"mgmtNetworkProfile": [

"management",

"replication"

],

"externalNetworkProfile": [

"uplink"

],

"vMotionNetworkProfile": [

"vmotion"

]

}

}

}

},

"components": {

"vcenter": {

"build": "13950066",

"version": "6.7.0.40000"

},

"nsxt": {

"build": "13952734",

"version": "2.5.0.0.0"

},

"esxi": {

"build": "13962079",

"version": "6.7.0-1.39"

}

}

}

}

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 82

Page 83: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Bring-up Without NFSPerform a bring-up without NFS using this API call.

Procedure

1 Send the following POST request to the server. The data is sent in the body of the request.

https://{{server_ip}}:9443/api/v1/sddc

curl --location --request POST "https://{{server_ip}}:9443/api/v1/sddc/" \

--header "Content-Type: application/json" \

--header "JSESSIONID: {{JSESSIONID}}" \

--data "{...}"

2 A successful response returns a task ID of 1.

{ "task_id": "1" }

Example: Body of the request

{

"bringupSpec": {

"dataCenter": {

"name": "MGMT_DC",

"managementFolder": "MGMT_VMs",

"clusters": {

"management": {

"name": "MGMT_CLU",

"vsanClusterSpec": {

"deduplication": true,

"compression": true

},

"evcMode": "disabled",

"hosts": [

{

"username": "root",

"password": "Skoda1!",

"type": "PRIMARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.101",

"subnet": "255.255.255.0",

"fqdn": "esxmb1.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.101",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 83

Page 84: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.101",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.102",

"subnet": "255.255.255.0",

"fqdn": "esxmb2.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.102",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 84

Page 85: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"vmotion": {

"ipSpec": {

"ip": "192.168.103.102",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.103",

"subnet": "255.255.255.0",

"fqdn": "esxmb3.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.103",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.103",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 85

Page 86: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.104",

"subnet": "255.255.255.0",

"fqdn": "esxmb4.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.104",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.104",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 86

Page 87: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

}

]

},

"secondaryClusters": []

}

},

"vcSpec": {

"credentialSpec": {

"ssoPassword": "VMware123!",

"ssoDomain": "vsphere.local",

"rootVcenterPassword": "VMware123!"

},

"managementNetwork": {

"ip": "192.168.105.50",

"fqdn": "vc.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1"

},

"esx1Datastore": "vsanDatastore",

"licenseSpec": {

"vcLicense": "",

"hostLicense": ""

},

"dep_network": "VM Network",

"thin_disk_mode": "true",

"deployment_option": "small"

},

"dnsSpec": {

"dns_1": [

"192.168.101.5"

],

"domains": [

"cloud.vmw",

"vmware.com"

]

},

"ntpSpec": {

"ntp_server": [

"time.vmware.com"

]

},

"dvsSpec": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 87

Page 88: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"dvsName": "MGMT_DVS"

},

"resourcePools": {

"managementResourcePool": "MGMT-ResourcePool",

"workloadResourcePool": "Compute-ResourcePool"

},

"nsxSpec": {

"diskMode": "thin",

"deploymentOption": "small",

"nsxManagerCredentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!",

"auditPassword": "NSRRocks123!"

},

"nsxManager1": {

"managementNetwork": {

"ip": "192.168.105.51",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.51",

"gateway": "192.168.105.1"

}

},

"nsxManager2": {

"managementNetwork": {

"ip": "192.168.105.52",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.51",

"gateway": "192.168.105.1"

}

},

"nsxManager3": {

"managementNetwork": {

"ip": "192.168.105.53",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.53",

"gateway": "192.168.105.1"

}

},

"virtualIP": "192.168.105.55",

"nsxEdgeSpec": {

"edgeCluster": "NSX_EDGE_CLUSTER",

"edgeNode1": {

"credentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

"ip": "192.168.105.61",

"fqdn": "edge1.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1",

"subnet": "255.255.255.0"

},

"datastore": "vsanDatastore",

"deploymentNetwork": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 88

Page 89: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"network0": "VM_MGMT",

"network1": "EDGE_OVERLAY",

"network2": "EDGE_UPLINK1",

"network3": "EDGE_UPLINK2"

},

"thinDiskMode": "true",

"deploymentOption": "small",

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"uplinkProfile": "nsx-edge-overlay-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

},

"nvds2": {

"switchName": "NVDS-2",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

"nvds3": {

"switchName": "NVDS-3",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

}

},

"edgeNode2": {

"credentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

"ip": "192.168.105.62",

"fqdn": "edge2.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1",

"subnet": "255.255.255.0"

},

"datastore": "vsanDatastore",

"deploymentNetwork": {

"network0": "VM_MGMT",

"network1": "EDGE_OVERLAY",

"network2": "EDGE_UPLINK1",

"network3": "EDGE_UPLINK2"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 89

Page 90: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"thinDiskMode": "true",

"deploymentOption": "small",

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"uplinkProfile": "nsx-edge-overlay-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

},

"nvds2": {

"switchName": "NVDS-2",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

"nvds3": {

"switchName": "NVDS-3",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

}

}

},

"uplinkProfileSpec": {

"nsxEdgeOverlayUplinkProfile": {

"displayName": "nsx-edge-overlay-uplink-profile",

"description": "Used to define how the Edge Node VMs connect to the network to

provide participate in the Overlay network.",

"mtu": "9000",

"transportVlan": "0",

"teaming": {

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

],

"policy": "FAILOVER_ORDER"

}

},

"nsxEdgeUplinkProfile": {

"displayName": "nsx-edge-uplink-profile",

"description": "Used to define how the Edge Node VMs connect to the physical

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 90

Page 91: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

network.",

"mtu": "1500",

"transportVlan": "0",

"teaming": {

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

],

"policy": "FAILOVER_ORDER"

}

},

"hostUplinkProfile": {

"displayName": "host-uplink-profile",

"mtu": "9000",

"teaming": {

"policy": "LOADBALANCE_SRCID",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC",

"deviceName": "vmnic2"

},

{

"uplinkName": "uplink-2",

"uplinkType": "PNIC",

"deviceName": "vmnic3"

}

]

},

"transportVlan": "1200",

"namedTeamings": [

{

"name": "Edge_Transport",

"policy": "FAILOVER_ORDER",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

]

},

{

"name": "Uplink1_Only",

"policy": "FAILOVER_ORDER",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 91

Page 92: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

]

},

{

"name": "Uplink2_Only",

"policy": "FAILOVER_ORDER",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-2",

"uplinkType": "PNIC"

}

]

}

]

}

},

"ipPoolSpec": {

"sddcIpPool": {

"displayName": "SDDC_ESX_TEP_IP_POOL_GENEVE2",

"start": "192.168.106.10",

"end": "192.168.106.30",

"cidr": "192.168.106.0/24",

"tepGatewayIp": "192.168.106.1"

},

"sddcEdgeIpPool": {

"displayName": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"start": "192.168.107.10",

"end": "192.168.107.20",

"cidr": "192.168.107.0/24",

"tepGatewayIp": "192.168.107.1"

}

},

"nsxTransportZones": {

"sddcNvdsName": "NVDS-1",

"edgeUplink1TransportZone": {

"displayName": "SDDC_EDGE_UPLINK1_TZONE",

"hostSwitchName": "NVDS-2",

"description": "Used for connecting one of the Edge Node VMs interfaces to the

physical network",

"transportType": "VLAN"

},

"edgeUplink2TransportZone": {

"displayName": "SDDC_EDGE_UPLINK2_TZONE",

"hostSwitchName": "NVDS-3",

"description": "Used for connecting one of the Edge Node VMs interfaces to the

physical network",

"transportType": "VLAN"

},

"vlanTransportZone": {

"displayName": "SDDC_VLAN_TZONE",

"hostSwitchName": "NVDS-1",

"description": "SDDC_VLAN_TZONE",

"transportType": "VLAN",

"uplinkTeamingPolicyNames": [

"Edge_Transport",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 92

Page 93: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"Uplink1_Only",

"Uplink2_Only"

]

},

"overlayTransportZone": {

"displayName": "SDDC_OVERLAY_TZONE",

"hostSwitchName": "NVDS-1",

"description": "SDDC_OVERLAY_TZONE",

"transportType": "OVERLAY"

}

},

"logicalSwitchSpec": {

"edgeOverlay": {

"displayName": "EDGE_OVERLAY",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Edge_Transport",

"vlan": "1100"

},

"edgeUplink1": {

"displayName": "EDGE_UPLINK1",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Uplink1_Only",

"vlanRanges": {

"start": 0,

"end": 4094

}

},

"edgeUplink2": {

"displayName": "EDGE_UPLINK2",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Uplink2_Only",

"vlanRanges": {

"start": 0,

"end": 4094

}

}

},

"routerSpec": {

"tierZeroGateway": {

"name": "T0",

"haMode": "ACTIVE_STANDBY",

"failOverMode": "NON_PREEMPTIVE",

"description": "T0 gateway router for outboud connections.",

"routeRedistributionTypes": [

"TIER0_NAT"

],

"routeAdvertisementTypes": [

"TIER1_CONNECTED"

],

"edgeUplink1TransportZoneSegment": {

"name": "VLAN-UPLINK-SEGMENT-1",

"description": "VLAN-UPLINK-SEGMENT-1-2100",

"vlan": "2100"

},

"edgeUplink2TransportZoneSegment": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 93

Page 94: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"name": "VLAN-UPLINK-SEGMENT-2",

"description": "VLAN-UPLINK-SEGMENT-2-2200",

"vlan": "2200"

},

"tierZeroInterfaces": [

{

"name": "Uplink-I1",

"ipAddressWithCidr": "172.16.1.1/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",

"placementEdgeNode": "edge1.cloud.vmw"

},

{

"name": "Uplink-I2",

"ipAddressWithCidr": "172.16.2.1/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",

"placementEdgeNode": "edge1.cloud.vmw"

},

{

"name": "Uplink-I3",

"ipAddressWithCidr": "172.16.1.2/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",

"placementEdgeNode": "edge2.cloud.vmw"

},

{

"name": "Uplink-I4",

"ipAddressWithCidr": "172.16.2.2/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",

"placementEdgeNode": "edge2.cloud.vmw"

}

]

},

"tierOneGateway": {

"name": "CGW",

"failOverMode": "NON_PREEMPTIVE",

"routeAdvertisementTypes": [

"TIER1_CONNECTED"

],

"description": "Tier 1 Router for internal East-west SDDC overlay traffic.",

"logicalOverlaySwitches": [

{

"name": "WorkloadLS1",

"description": "Segment for internal overlay Network.",

"type": "ROUTED",

"gatewayIpAddressWithCidr": "192.168.200.1/24",

"internalNetwrokWithCidr": "192.168.200.0/24"

}

]

}

},

"licenseKey": ""

},

"portGrpSpecs": {

"vmMgmt": {

"type": "VM_MGMT",

"vlan": 0

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 94

Page 95: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"vsan": {

"type": "VSAN",

"vlan": 0

},

"nsxTransport": {

"type": "TRANSPORT_PG",

"vlan": 0

},

"vmotion": {

"type": "VMOTION_PG",

"vlan": 0

},

"esxMgmt": {

"type": "ESXi_MGMT",

"vlan": 0

},

"hcxUplink": {

"type": "HCX_UPLINK",

"vlan": 0

},

"nfs":{

"type": "NFS",

"vlan": 0

}

},

"vsanSpec": {

"license": ""

},

"repoSpec": {

"vc_url": "https://192.168.101.2:8443/userContent/vcps/sddc/14517203/vcps-sddc-bundle//

vcenter/VMware-VCSA-all-6.7.0-14367737.iso",

"nsx_unified_appliance_ova": "https://192.168.101.2:8443/userContent/vcps/sddc/14517203/

vcps-sddc-bundle/nsxt/nsx-unified-appliance-2.5.0.0.0.14493367.ova",

"nsx_edge_ova": "https://192.168.101.2:8443/userContent/vcps/sddc/14517203/vcps-sddc-

bundle/nsxt/nsx-edge-2.5.0.0.0.14493375.ova",

"base_repo_url": "https://192.168.101.2:8443/userContent/vcps/sddc/14517203",

"hcx_cloud_ova_url": "http://build-squid.eng.vmware.com/build/mts/release/bora-14519437/

publish/VMware-HCX-Cloud-3.5.2-14519437.ova"

},

"hcxSpec": {

"hcxCloudDeploy": "true",

"hcxEnterpriseDeploy": "false",

"hcxCloudSpec": {

"mgrCliPassword": "NSRRocks123!",

"mgrRootPassword": "NSRRocks123!",

"hostname": "hcx.cloud.vmw",

"mgrIp": "192.168.108.2",

"mgrGateway": "192.168.108.1",

"systemName": "hcx-cloud",

"datastore":"vsanDatastore",

"resourcePoolName": "MGMT-ResourcePool",

"diskMode": "thin",

"publicAccessUrl": "https://192.168.108.2",

"dataCenterLocation": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 95

Page 96: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"city": "Dallas",

"country": "United States",

"province": "Texas",

"latitude": "32.78306",

"longitude": "-96.80667"

},

"hcxActivation": {

"url": "https://connect.hcx.vmware.com",

"activationKey": ""

},

"networkProfiles": {

"mgmtNetworkProfile": {

"name": "HCX_MGMT",

"portGroupName": "VM_MGMT",

"switchName": "MGMT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "192.168.108.10",

"endAddress": "192.168.108.20"

}

],

"gateway": "192.168.108.1",

"primaryDns": "192.168.101.5"

}

]

},

"vMotionNetworkProfile": {

"name": "VMOTION",

"portGroupName": "VMOTION_PG",

"switchName": "MGMT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "192.168.103.30",

"endAddress": "192.168.103.40"

}

],

"gateway": "192.168.103.1",

"primaryDns": "192.168.101.5"

}

]

},

"externalNetworkProfile": {

"name": "HCX_UPLINK",

"portGroupName": "HCX_UPLINK",

"switchName": "MGMT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "192.168.109.10",

"endAddress": "192.168.109.20"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 96

Page 97: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

],

"gateway": "192.168.109.1",

"primaryDns": "192.168.101.5"

}

]

}

},

"computeProfile": {

"name": "CLOUDCP",

"datastoreName": "vsanDatastore",

"resourcePoolName": "MGMT-ResourcePool",

"switchName": "SDDC_OVERLAY_TZONE",

"computeNetworkProfileTags": {

"mgmtNetworkProfile": [

"management",

"replication"

],

"externalNetworkProfile": [

"uplink"

],

"vMotionNetworkProfile": [

"vmotion"

]

}

}

}

},

"components": {

"vcenter": {

"build": "13950066",

"version": "6.7.0.40000"

},

"nsxt": {

"build": "13952734",

"version": "2.5.0.0.0"

},

"esxi": {

"build": "13962079",

"version": "6.7.0-1.39"

}

}

}

}

Add a HostAdd a host to a cluster of hosts within a specific SDDC.

Prerequisites

n You must know the name of the cluster to which you want to add a host.

n If you want to add a host with NFS enabled, verify that the NFS mount is active.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 97

Page 98: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

n You must have the required privileges to perform this task.

Procedure

u Send the following POST request to the server. The session ID is sent in the header and the host specification is sent in the body of the request.

https://{{server_ip}}:9443/api/v1/sddc/{{sddc_id}}/cluster/{{cluster_name}}/hosts

curl --location --request POST "https://{{server_ip}}:9443/api/v1/sddc/1/cluster/MGMT_CLU/hosts" \

--header "Content-Type: application/json" \

--header "JSESSIONID: {{JSESSIONID}}" \

--data "{...}"

Results

A successful call returns the ID with the status:

{

"task_id": "2"

}

Example: Body of the Request With and Without NFS

With NFS:

{

"hostSpec": {

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.105",

"subnet": "255.255.255.0",

"fqdn": "esxmb5.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.105",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 98

Page 99: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"ipSpec": {

"ip": "192.168.103.105",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.105",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

"nfsSpec": {

"nfsDatastoreClusterName": "NFS_DS_CLU",

"nfsDatastores": [

{

"localPath": "NFS-1",

"remoteIp": "192.168.101.11",

"remoteMountPath": "/data/nfs1/",

"accessMode": "readWrite"

}

]

}

}

Without NFS:

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 99

Page 100: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"ipSpec": {

"ip": "192.168.101.105",

"subnet": "255.255.255.0",

"fqdn": "esxmb5.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.105",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.105",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

}

Remove a HostRemove a host from a cluster of hosts within a specific SDDC.

Prerequisites

n If you want to remove a host with NFS enabled, verify that the NFS mount is active.

n You must have the required privileges to perform this task.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 100

Page 101: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Procedure

u Send the following DELETE request to the server. The session ID is sent in the header and the host specification is sent in the body of the request.

https://{{server_ip}}:9443/api/v1/sddc/{{sddc_id}}/hosts/{{host_name}}

curl --location --request DELETE "https://{{server_ip}}:9443/api/v1/sddc/1/hosts/SEC_CLU" \

--header "Content-Type: application/json" \

--header "JSESSIONID: {{JSESSIONID}}" \

--data "{...}"

Results

A successful call returns the ID with the status:

{

"task_id": "1"

}

Example: Body of the Request with and Without NFS

With NFS:

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.105",

"subnet": "255.255.255.0",

"fqdn": "esxmb5.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.105",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.105",

"subnet": "255.255.255.0",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 101

Page 102: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

} ,

"nfs": {

"ipSpec": {

"ip": "192.168.104.105",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

}

Without NFS:

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.105",

"subnet": "255.255.255.0",

"fqdn": "esxmb5.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vsan": {

"ipSpec": {

"ip": "192.168.102.105",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 102

Page 103: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.103.105",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

}

Add a ClusterAdd a cluster to a specific SDDC.

Prerequisites

n If you want to add a cluster with NFS enabled, verify that the NFS mount is active.

n You must have the required privileges to perform this task.

Procedure

u Send the following POST request to the server. The session ID is sent in the header and the host specification is sent in the body of the request.

https://{{server_ip}}:9443/api/v1/sddc/1/clusters/{{cluster_name}}

curl --location --request DELETE "https://{{server_ip}}:9443/api/v1/sddc/1/clusters/SEC_CLU" \

--header "Content-Type: application/json" \

--header "JSESSIONID: {{JSESSIONID}}" \

--data "{...}"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 103

Page 104: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Results

A successful call returns the ID with the status:

{

"task_id": "1"

}

Example: Body of the Request With and Without NFS

With NFS:

{

"nfsSpec": {

"nfsDatastoreClusterName": "NFS_DS_CLU",

"nfsDatastores": [

{

"localPath": "NFS-1",

"remoteIp": "192.168.101.11",

"remoteMountPath": "/data/nfs1/",

"accessMode": "readWrite"

}

]

},

"clusterSpec": {

"name": "SECONDARY",

"vsanClusterSpec": {

"deduplication": true,

"compression": true

},

"evcMode": "disabled",

"hosts": [

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.101",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.101",

"subnet": "255.255.255.0",

"fqdn": "esxmb1.cloud.vmw",

"gw": "192.168.101.1"

},

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 104

Page 105: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.101",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.101",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.102",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 105

Page 106: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"ip": "192.168.101.102",

"subnet": "255.255.255.0",

"fqdn": "esxmb2.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.102",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.102",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.103",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 106

Page 107: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"name": "vmk1",

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.103",

"subnet": "255.255.255.0",

"fqdn": "esxmb3.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.103",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.103",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

}

]

}

}

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 107

Page 108: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Without NFS:

{

"clusterSpec": {

"name": "SECONDARY",

"vsanClusterSpec": {

"deduplication": true,

"compression": true

},

"evcMode": "disabled",

"hosts": [

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.101",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.101",

"subnet": "255.255.255.0",

"fqdn": "esxmb1.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.101",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 108

Page 109: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.102",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.102",

"subnet": "255.255.255.0",

"fqdn": "esxmb2.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.102",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 109

Page 110: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.103",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.103",

"subnet": "255.255.255.0",

"fqdn": "esxmb3.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.103",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

}

]

}

}

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 110

Page 111: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Remove a ClusterRemove a cluster within a specific SDDC.

Prerequisites

n If you want to remove a host with NFS enabled, verify that the NFS mount is active.

n You must have the required privileges to perform this task.

Procedure

u Send the following DELETE request to the server. The session ID is sent in the header and the host specification is sent in the body of the request.

https://{{server_ip}}:9443/api/v1/sddc/1/clusters/SEC_CLU

curl --location --request DELETE "https://{{server_ip}}:9443/api/v1/sddc/1/clusters/SEC_CLU" \

--header "Content-Type: application/json" \

--header "JSESSIONID: {{JSESSIONID}}" \

--data "{...}"

Results

A successful call returns the ID with the status:

{

"task_id": "1"

}

Example: Body of the Request With and Without NFS

With NFS:

{

"name": "SECONDARY",

"vsanClusterSpec": {

"deduplication": true,

"compression": true

},

"evcMode": "disabled",

"hosts": [

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.101",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

"name": "vmk1",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 111

Page 112: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.101",

"subnet": "255.255.255.0",

"fqdn": "esxmb1.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.101",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.101",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.102",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 112

Page 113: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.102",

"subnet": "255.255.255.0",

"fqdn": "esxmb2.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.102",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.102",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 113

Page 114: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.103",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.103",

"subnet": "255.255.255.0",

"fqdn": "esxmb3.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.103",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

},

"nfs": {

"ipSpec": {

"ip": "192.168.104.103",

"subnet": "255.255.255.0",

"gw": "192.168.104.1"

},

"type": "NFS",

"name": "vmk3",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 114

Page 115: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

}

]

}

Without NFS:

{

"name": "SECONDARY",

"vsanClusterSpec": {

"deduplication": true,

"compression": true

},

"evcMode": "disabled",

"hosts": [

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.101",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.101",

"subnet": "255.255.255.0",

"fqdn": "esxmb1.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.101",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

},

"pnicSpec": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 115

Page 116: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.102",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.102",

"subnet": "255.255.255.0",

"fqdn": "esxmb2.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.102",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 116

Page 117: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

}

},

{

"username": "root",

"password": "Skoda1!",

"type": "SECONDARY",

"vmknicSpecs": {

"vsan": {

"ipSpec": {

"ip": "192.168.103.103",

"subnet": "255.255.255.0",

"gw": "192.168.103.1"

},

"type": "VSAN",

"name": "vmk1",

"vlanId": 0

},

"esxiMgmt": {

"ipSpec": {

"ip": "192.168.101.103",

"subnet": "255.255.255.0",

"fqdn": "esxmb3.cloud.vmw",

"gw": "192.168.101.1"

},

"type": "ESXi_MGMT",

"name": "vmk0",

"vlanId": 0

},

"vmotion": {

"ipSpec": {

"ip": "192.168.102.103",

"subnet": "255.255.255.0",

"gw": "192.168.102.1"

},

"type": "VMOTION_PG",

"name": "vmk2",

"vlanId": 0

}

},

"pnicSpec": {

"uplink1": {

"name": "vmnic0"

},

"uplink2": {

"name": "vmnic1"

}

},

"vsanDiskSpec": {

"autoDiskGroups": true,

"diskGroups": []

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 117

Page 118: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

}

]

}

HCX Cloud APIsThe following sections describe the HCX APIs that you can use to perform various HCX Cloud operations.

See the VMware HCX User Guide for detailed information about HCX.

The following table lists the supported HCX operations that you can perform with the HCX APIs. You must have logged in and created a session before you can use the APIs.

Table 8-3. HCX APIs

Task Method URL

Modify a HCX Cloud Specification PUT https://{{server_ip}}:9443/api/v1/

sddc

Deploy a HCX Enterprise PUT https://{{server_ip}}:9443/api/v1/

sddc/hcx/enterprise/deploy

Create a HCX Service Mesh POST https://{{server_ip}}:9443/api/v1/

sddc/hcx/servicemesh

Delete a HCX Service Mesh DELETE https://{{server_ip}}:9443/api/v1/

sddc/hcx/servicemesh

Modify HCX Cloud SpecificationYou can add or modify the HCX Cloud specification through a PUT request.

Procedure

u Send the following PUT request to the server. The session ID is sent in the header of the request.

https://{{server_ip}}:9443/api/v1/sddc

Results

No response is expected.

Example: HCX Cloud Specification Information

{

"dataCenter": {

"name": "MGMT_DC",

"managementFolder": "MGMT_VMs",

"clusters": {

"management": {

"name": "MGMT_CLU",

"hosts": []

},

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 118

Page 119: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"secondaryClusters": []

}

},

"vcSpec": {

"credentialSpec": {

"ssoPassword": "VMware123!",

"ssoDomain": "vsphere.local",

"rootVcenterPassword": "VMware123!"

},

"managementNetwork": {

"ip": "192.168.105.50",

"fqdn": "vc.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1"

},

"esx1Datastore": "vsanDatastore",

"licenseSpec": {

"vcLicense": "",

"hostLicense": ""

},

"dep_network": "VM Network",

"thin_disk_mode": "true",

"deployment_option": "small"

},

"dnsSpec": {

"dns_1": [

"192.168.101.5"

],

"domains": [

"cloud.vmw",

"vmware.com"

]

},

"ntpSpec": {

"ntp_server": [

"time.vmware.com"

]

},

"dvsSpec": {

"dvsName": "MGMT_DVS"

},

"resourcePools": {

"managementResourcePool": "MGMT-ResourcePool",

"workloadResourcePool": "Compute-ResourcePool"

},

"nsxSpec": {

"diskMode": "thin",

"deploymentOption": "small",

"nsxManagerCredentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!",

"auditPassword": "NSRRocks123!"

},

"nsxManager1": {

"managementNetwork": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 119

Page 120: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"ip": "192.168.105.51",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.51",

"gateway": "192.168.105.1"

}

},

"nsxManager2": {

"managementNetwork": {

"ip": "192.168.105.52",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.51",

"gateway": "192.168.105.1"

}

},

"nsxManager3": {

"managementNetwork": {

"ip": "192.168.105.53",

"subnet": "255.255.255.0",

"fqdn": "192.168.105.53",

"gateway": "192.168.105.1"

}

},

"virtualIP": "192.168.105.55",

"nsxEdgeSpec": {

"edgeCluster": "NSX_EDGE_CLUSTER",

"edgeNode1": {

"credentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

"ip": "192.168.105.61",

"fqdn": "edge1.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1",

"subnet": "255.255.255.0"

},

"datastore": "vsanDatastore",

"deploymentNetwork": {

"network0": "VM_MGMT",

"network1": "EDGE_OVERLAY",

"network2": "EDGE_UPLINK1",

"network3": "EDGE_UPLINK2"

},

"thinDiskMode": "true",

"deploymentOption": "small",

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"uplinkProfile": "nsx-edge-overlay-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 120

Page 121: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"nvds2": {

"switchName": "NVDS-2",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

"nvds3": {

"switchName": "NVDS-3",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

}

},

"edgeNode2": {

"credentialSpec": {

"rootPassword": "NSRRocks123!",

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

"ip": "192.168.105.62",

"fqdn": "edge2.cloud.vmw",

"prefix": "24",

"gateway": "192.168.105.1",

"subnet": "255.255.255.0"

},

"datastore": "vsanDatastore",

"deploymentNetwork": {

"network0": "VM_MGMT",

"network1": "EDGE_OVERLAY",

"network2": "EDGE_UPLINK1",

"network3": "EDGE_UPLINK2"

},

"thinDiskMode": "true",

"deploymentOption": "small",

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"uplinkProfile": "nsx-edge-overlay-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

},

"nvds2": {

"switchName": "NVDS-2",

"uplinkProfile": "nsx-edge-uplink-profile",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 121

Page 122: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

"nvds3": {

"switchName": "NVDS-3",

"uplinkProfile": "nsx-edge-uplink-profile",

"ipPool": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

}

}

},

"uplinkProfileSpec": {

"nsxEdgeOverlayUplinkProfile": {

"displayName": "nsx-edge-overlay-uplink-profile",

"description": "Used to define how the Edge Node VMs connect to the network to

provide participate in the Overlay network.",

"mtu": "9000",

"transportVlan": "0",

"teaming": {

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

],

"policy": "FAILOVER_ORDER"

}

},

"nsxEdgeUplinkProfile": {

"displayName": "nsx-edge-uplink-profile",

"description": "Used to define how the Edge Node VMs connect to the physical

network.",

"mtu": "1500",

"transportVlan": "0",

"teaming": {

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

],

"policy": "FAILOVER_ORDER"

}

},

"hostUplinkProfile": {

"displayName": "host-uplink-profile",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 122

Page 123: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"mtu": "9000",

"teaming": {

"policy": "LOADBALANCE_SRCID",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC",

"deviceName": "vmnic2"

},

{

"uplinkName": "uplink-2",

"uplinkType": "PNIC",

"deviceName": "vmnic3"

}

]

},

"transportVlan": "1200",

"namedTeamings": [

{

"name": "Edge_Transport",

"policy": "FAILOVER_ORDER",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

]

},

{

"name": "Uplink1_Only",

"policy": "FAILOVER_ORDER",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-1",

"uplinkType": "PNIC"

}

]

},

{

"name": "Uplink2_Only",

"policy": "FAILOVER_ORDER",

"standbyList": [],

"activeList": [

{

"uplinkName": "uplink-2",

"uplinkType": "PNIC"

}

]

}

]

}

},

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 123

Page 124: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"ipPoolSpec": {

"sddcIpPool": {

"displayName": "SDDC_ESX_TEP_IP_POOL_GENEVE2",

"start": "192.168.106.10",

"end": "192.168.106.30",

"cidr": "192.168.106.0/24",

"tepGatewayIp": "192.168.106.1"

},

"sddcEdgeIpPool": {

"displayName": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"start": "192.168.107.10",

"end": "192.168.107.20",

"cidr": "192.168.107.0/24",

"tepGatewayIp": "192.168.107.1"

}

},

"nsxTransportZones": {

"sddcNvdsName": "NVDS-1",

"edgeUplink1TransportZone": {

"displayName": "SDDC_EDGE_UPLINK1_TZONE",

"hostSwitchName": "NVDS-2",

"description": "Used for connecting one of the Edge Node VMs interfaces to the

physical network",

"transportType": "VLAN"

},

"edgeUplink2TransportZone": {

"displayName": "SDDC_EDGE_UPLINK2_TZONE",

"hostSwitchName": "NVDS-3",

"description": "Used for connecting one of the Edge Node VMs interfaces to the

physical network",

"transportType": "VLAN"

},

"vlanTransportZone": {

"displayName": "SDDC_VLAN_TZONE",

"hostSwitchName": "NVDS-1",

"description": "SDDC_VLAN_TZONE",

"transportType": "VLAN",

"uplinkTeamingPolicyNames": [

"Edge_Transport",

"Uplink1_Only",

"Uplink2_Only"

]

},

"overlayTransportZone": {

"displayName": "SDDC_OVERLAY_TZONE",

"hostSwitchName": "NVDS-1",

"description": "SDDC_OVERLAY_TZONE",

"transportType": "OVERLAY"

}

},

"logicalSwitchSpec": {

"edgeOverlay": {

"displayName": "EDGE_OVERLAY",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Edge_Transport",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 124

Page 125: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"vlan": "1100"

},

"edgeUplink1": {

"displayName": "EDGE_UPLINK1",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Uplink1_Only",

"vlanRanges": {

"start": 0,

"end": 4094

}

},

"edgeUplink2": {

"displayName": "EDGE_UPLINK2",

"transportZone": "SDDC_VLAN_TZONE",

"uplinkTeamingPolicyNames": "Uplink2_Only",

"vlanRanges": {

"start": 0,

"end": 4094

}

}

},

"routerSpec": {

"tierZeroGateway": {

"name": "T0",

"haMode": "ACTIVE_STANDBY",

"failOverMode": "NON_PREEMPTIVE",

"description": "T0 gateway router for outboud connections.",

"routeRedistributionTypes": [

"TIER0_NAT"

],

"routeAdvertisementTypes": [

"TIER1_CONNECTED"

],

"edgeUplink1TransportZoneSegment": {

"name": "VLAN-UPLINK-SEGMENT-1",

"description": "VLAN-UPLINK-SEGMENT-1-2100",

"vlan": "2100"

},

"edgeUplink2TransportZoneSegment": {

"name": "VLAN-UPLINK-SEGMENT-2",

"description": "VLAN-UPLINK-SEGMENT-2-2200",

"vlan": "2200"

},

"tierZeroInterfaces": [

{

"name": "Uplink-I1",

"ipAddressWithCidr": "172.16.1.1/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",

"placementEdgeNode": "edge1.cloud.vmw"

},

{

"name": "Uplink-I2",

"ipAddressWithCidr": "172.16.2.1/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",

"placementEdgeNode": "edge1.cloud.vmw"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 125

Page 126: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

{

"name": "Uplink-I3",

"ipAddressWithCidr": "172.16.1.2/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-1",

"placementEdgeNode": "edge2.cloud.vmw"

},

{

"name": "Uplink-I4",

"ipAddressWithCidr": "172.16.2.2/24",

"connectedWithSegment": "VLAN-UPLINK-SEGMENT-2",

"placementEdgeNode": "edge2.cloud.vmw"

}

]

},

"tierOneGateway": {

"name": "CGW",

"failOverMode": "NON_PREEMPTIVE",

"routeAdvertisementTypes": [

"TIER1_CONNECTED"

],

"description": "Tier 1 Router for internal East-west SDDC overlay traffic.",

"logicalOverlaySwitches": [

{

"name": "WorkloadLS1",

"description": "Segment for internal overlay Network.",

"type": "ROUTED",

"gatewayIpAddressWithCidr": "192.168.200.1/24",

"internalNetwrokWithCidr": "192.168.200.0/24"

}

]

}

},

"licenseKey": ""

},

"portGrpSpecs": {

"vmMgmt": {

"type": "VM_MGMT",

"vlan": 0

},

"vsan": {

"type": "VSAN",

"vlan": 0

},

"nsxTransport": {

"type": "TRANSPORT_PG",

"vlan": 0

},

"vmotion": {

"type": "VMOTION_PG",

"vlan": 0

},

"esxMgmt": {

"type": "ESXi_MGMT",

"vlan": 0

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 126

Page 127: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"hcxUplink": {

"type": "HCX_UPLINK",

"vlan": 0

}

},

"vsanSpec": {

"license": ""

},

"hcxSpec": {

"hcxCloudDeploy": "true",

"hcxEnterpriseDeploy": "false",

"hcxCloudSpec": {

"mgrCliPassword": "NSRRocks123!",

"mgrRootPassword": "NSRRocks123!",

"hostname": "hcx.cloud.vmw",

"mgrIp": "192.168.108.2",

"mgrGateway": "192.168.108.1",

"systemName": "hcx-cloud",

"datastore":"vsanDatastore",

"resourcePoolName": "MGMT-ResourcePool",

"diskMode": "thin",

"publicAccessUrl": "https://192.168.108.2",

"dataCenterLocation": {

"city": "Dallas",

"country": "United States",

"province": "Texas",

"latitude": "32.78306",

"longitude": "-96.80667"

},

"hcxActivation": {

"url": "https://connect.hcx.vmware.com",

"activationKey": ""

},

"networkProfiles": {

"mgmtNetworkProfile": {

"name": "HCX_MGMT",

"portGroupName": "VM_MGMT",

"switchName": "MGMT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "192.168.108.10",

"endAddress": "192.168.108.20"

}

],

"gateway": "192.168.108.1",

"primaryDns": "192.168.101.5"

}

]

},

"vMotionNetworkProfile": {

"name": "VMOTION",

"portGroupName": "VMOTION_PG",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 127

Page 128: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"switchName": "MGMT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "192.168.103.30",

"endAddress": "192.168.103.40"

}

],

"gateway": "192.168.103.1",

"primaryDns": "192.168.101.5"

}

]

},

"externalNetworkProfile": {

"name": "HCX_UPLINK",

"portGroupName": "HCX_UPLINK",

"switchName": "MGMT_DVS",

"ipScopes": [

{

"networkIpRanges": [

{

"startAddress": "192.168.109.10",

"endAddress": "192.168.109.20"

}

],

"gateway": "192.168.109.1",

"primaryDns": "192.168.101.5"

}

]

}

},

"computeProfile": {

"name": "CLOUDCP",

"datastoreName": "vsanDatastore",

"resourcePoolName": "MGMT-ResourcePool",

"switchName": "SDDC_OVERLAY_TZONE",

"computeNetworkProfileTags": {

"mgmtNetworkProfile": [

"management",

"replication"

],

"externalNetworkProfile": [

"uplink"

],

"vMotionNetworkProfile": [

"vmotion"

]

}

}

}

}

}

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 128

Page 129: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Deploy HCX EnterpriseDeploy the HCX Enterprise through a PUT request.

Procedure

u Send the following PUT request to the server. The session ID is sent in the header of the request.

https://{{server_ip}}:9443/api/v1/sddc/hcx/enterprise/deploy

Results

A sample response is shown below:

{

"task_id": "1"

}

Create a HCX Service Mesh

Procedure

u Send the following POST request to the server. The session ID is sent in the request header.

https://{{server_ip}}:9443/api/v1/sddc/hcx/servicemesh

Results

The API call returns a task ID that you can use to query the task status.

{

"task_id": "1"

}

Delete a HCX Service Mesh

Procedure

u Send the following DELETE request to the server. The session ID is sent in the request header.

https://{{server_ip}}:9443/api/v1/sddc/hcx/servicemesh

Results

The API call returns a task ID that you can use to query the task status.

{

"task_id": "1"

}

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 129

Page 130: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Validate Bring-UpAfter the Enterprise SDDC or HCX bring-up is completed, you can validate the deployment with this POST request. A validation ID is returned, and you can then query the status using this ID.

Procedure

u Send the following POST request to the server. The session ID is sent in the request header.

https://{{server_ip}}:9443/api/v1/sddc/1/validation?command=validate&debug=false

Results

The API returns a validation ID.

Example: Body of the Request

{

"dataCenter": {

"name": "MGMT_DC",

"managementFolder": "MGMT_VMs",

"workloadFolder": "Workload_VMs",

"clusters": {

"management": {

"name": "MGMT_CLU"

}

}

},

"vcSpec": {

"credentialSpec": {

"ssoPassword": "VMware123!",

"ssoDomain": "vsphere.local"

},

"managementNetwork": {

"ip": "192.168.105.50",

"fqdn": "192.168.105.50"

}

},

"nsxSpec": {

"nsxManagerCredentialSpec": {

"cliPassword": "NSRRocks123!"

},

"nsxManager1": {

"managementNetwork": {

"ip": "192.168.105.51"

}

},

"nsxManager2": {

"managementNetwork": {

"ip": "192.168.105.52"

}

},

"nsxManager3": {

"managementNetwork": {

"ip": "192.168.105.53"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 130

Page 131: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

}

},

"virtualIP": "192.168.105.55",

"nsxEdgeSpec": {

"edgeCluster": "NSX_EDGE_CLUSTER",

"edgeNode1": {

"credentialSpec": {

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

"ip": "192.168.105.61",

"fqdn": "edge1.lab.vmw"

},

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

},

"nvds2": {

"switchName": "NVDS-2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

"nvds3": {

"switchName": "NVDS-3",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

}

},

"edgeNode2": {

"credentialSpec": {

"cliPassword": "NSRRocks123!"

},

"managementNetwork": {

"ip": "192.168.105.62",

"fqdn": "edge2.lab.vmw"

},

"nodeSwitch": {

"nvds1": {

"switchName": "NVDS-1",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth0"

}

},

"nvds2": {

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 131

Page 132: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"switchName": "NVDS-2",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth1"

}

},

"nvds3": {

"switchName": "NVDS-3",

"virtualNic": {

"uplinkName": "uplink-1",

"deviceName": "fp-eth2"

}

}

}

}

},

"uplinkProfileSpec": {

"nsxEdgeOverlayUplinkProfile": {

"displayName": "nsx-edge-overlay-uplink-profile"

},

"nsxEdgeUplinkProfile": {

"displayName": "nsx-edge-uplink-profile"

},

"hostUplinkProfile": {

"displayName": "host-uplink-profile",

"namedTeamings": [{

"name": "Edge_Transport"

},

{

"name": "Uplink1_Only"

},

{

"name": "Uplink2_Only"

}

]

}

},

"ipPoolSpec": {

"sddcIpPool": {

"displayName": "SDDC_ESX_TEP_IP_POOL_GENEVE2",

"start": "192.168.106.10",

"end": "192.168.106.30"

},

"sddcEdgeIpPool": {

"displayName": "SDDC_EDGE_TEP_IP_POOL_GENEVE2",

"start": "192.168.107.10",

"end": "192.168.107.30"

}

},

"nsxTransportZones": {

"edgeUplink1TransportZone": {

"displayName": "SDDC_EDGE_UPLINK1_TZONE"

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 132

Page 133: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

},

"edgeUplink2TransportZone": {

"displayName": "SDDC_EDGE_UPLINK2_TZONE"

},

"vlanTransportZone": {

"hostSwitchName": "NVDS-1",

"displayName": "SDDC_VLAN_TZONE"

},

"overlayTransportZone": {

"displayName": "SDDC_OVERLAY_TZONE"

}

},

"logicalSwitchSpec": {

"edgeOverlay": {

"displayName": "EDGE_OVERLAY"

},

"edgeUplink1": {

"displayName": "EDGE_UPLINK1"

},

"edgeUplink2": {

"displayName": "EDGE_UPLINK2"

}

},

"routerSpec": {

"tierZeroGateway": {

"name": "T0"

},

"tierOneGateway": {

"name": "CGW"

}

},

"licenseKey": ""

},

"portGrpSpecs": {

"vmMgmt": {

"type": "VM_MGMT",

"vlan": 0

},

"vsan": {

"type": "VSAN",

"vlan": 0

},

"nsxTransport": {

"type": "TRANSPORT_PG",

"vlan": 0

},

"vmotion": {

"type": "VMOTION_PG",

"vlan": 0

},

"esxMgmt": {

"type": "ESXi_MGMT",

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 133

Page 134: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

"vlan": 0

},

"hcxUplink": {

"type": "HCX_UPLINK",

"vlan": 0

},

"nfs": {

"type": "NFS",

"vlan": 0

}

},

"components": {

"vcenter": {

"build": "13950066",

"version": "6.7.0.40000"

},

"nsxt": {

"build": "13952734",

"version": "2.5.0.0.0"

},

"esxi": {

"build": "13962079",

"version": "6.7.0-1.39"

}

},

"resourcePools": {

"managementResourcePool": "MGMT-ResourcePool",

"workloadResourcePool": "Compute-ResourcePool"

},

"hcxSpec": {

"hcxCloudSpec": {

"mgrIp": "192.168.101.99",

"mgrCliPassword": "Skoda1!",

"networkProfiles": {

"mgmtNetworkProfile": {

"name": "MGMTNetworkProfile"

},

"vMotionNetworkProfile": {

"name": "vMotionNetworkProfile"

},

"externalNetworkProfile": {

"name": "ExternalNetworkProfile"

}

},

"computeProfile": {

"name": "sample"

}

}

}

}

Get Validation StatusAfter you send a validation request, you can retrieve the status of the validation using this GET request.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 134

Page 135: Getting Started With VMware Cloud Provider Stack - VMware ... · The Delivery and Acceptance process verifies that all VMware and custom partner pipelines run successfully against

Prerequisites

You must have sent a validation request to the server, and know the validation ID that is returned.

Procedure

u Send the following GET request to the server. The session ID is sent in the request header.

https://{{server_ip}}:9443/api/v1/sddc/1/validation/{{validation-id}}/status

Results

A validation report is returned as the response.

Getting Started With VMware Cloud Provider Stack

VMware, Inc. 135


Recommended