VM Pool Installation on VMware vCD
This document focuses on the use of VMWare Cloud Director as the VIM for EdgeXR VM Pool Deployment Model.
Scope and Constraints
Only cloud-native containerized workloads are currently supported; this includes docker and Kubernetes deployments.
Deployment of native virtual machines (VMs) is not supported.
Specialized device/GPU support is limited, and may require the EdgeXR DevOps team to assist in the deployment process.
The use of VIM level health checks and re-assignment based on machine policies is not supported.
EdgeXR only controls resource management within the scope of the EdgeXR platform; VIM Operators have control over resource management beyond the platform. However, all changes must be done in coordination with EdgeXR.
Platform and Pool VMs
The EdgeXR platform requires a dedicated instance to manage the deployment, communicate back to the EdgeXR services, and orchestrate workloads. The dedicated instance is separate from the Pool VMs; these instances provide the compute capability for workloads deployed to the cloudlet.
Operator Workflow
Step 1: Determine the correct version/format required.
Step 2: Download artifacts from the EdgeXR repository.
Step 3: Verify the SHA256 Checksums.
Step 4: Load the resources into the VCD Catalog
Step 5: Validate Network Configuration
Step 6: Provide deployment information to EdgeXR.
Step 7: Cloudlet Deployment (EdgeXR Responsibility)
Step 8: Handover Testing
Step 1: Determine versions
EdgeXR will provide you with the version number and format information for the artifacts you will require for your environment. Versioning will come in the form of a full URL for download:
For example, for a VCD deployment of v3.1.5, you will be provided with the following artifact paths for download:
https://artifactory.edgexr.org/artifactory/baseimages/vsphere-ovf-3.1.5/mobiledgex-v3.1.5-vsphere-disk-0.vmdk
https://artifactory.edgexr.org/artifactory/baseimages/vsphere-ovf-3.1.5/mobiledgex-v3.1.5-vsphere.ovf
Step 2: Download resources
EdgeXR provides the platform image in several formats:
IaaS / VIM | File Format/Type | Notes |
OpenStack | qcow2 | QEMU Copy on Write format. |
VMWare | vmdk | Virtual Machine DisK Image |
VMWare | ovf | XML file that contains metadata for the VM, Template, or App Template. |
VMWare | mf | A manifest file containing all SHA1 checksums for all files in the VMWare deployment package. |
EdgeXR will direct you to download the correct format for your environment.
These files can be downloaded in one of two ways:
Directly from Artifactory GUI
You can use your console username/password to log into the EdgeXR Artifactory installation and download the artifacts using the web browser of your choice. The files are under the Base images folder and are further broken down by format/type.
From the CLI
The files can also be downloaded directly from the command line using cURL.
For example, the following commands would be provided for the download of the vSphere format of version 3.1.5 of the software:
curl -u <CONSOLEUSER>:<CONSOLEPASS> -O "https://artifactory.edgexr.org/artifactory/baseimages/vsphere-ovf-3.1.5/mobiledgex-v3.1.5-vsphere-disk-0.vmdk"
curl -u <CONSOLEUSER>:<CONSOLEPASS> -O "https://artifactory.edgexr.org/artifactory/baseimages/vsphere-ovf-3.1.5/mobiledgex-v3.1.5-vsphere.ovf"
Step 3: Verify the SHA256
It is vital to ensure that the artifacts are not corrupted in the file transfer. Artifactory computes a SHA256 Checksum for each file it serves. You will need to generate the SHA256 checksum on the downloaded file and then compare it to the checksum in Artifactory.
Computing the SHA256
The process of computing the SHA256 varies by platform; for Linux you can use the sha256sum utility (you may need to install this using your package manager):
$ sha256sum mobiledgex-v3.1.5-vsphere.ovf
167fefcf151002e9f4b411c09d455d8b0d194c7adc3804fd0eb255109eff130f
mobiledgex-v3.1.5-vsphere.ovf
For macOS, you can use the sha2 package, which can be installed via Homebrew.
$ sha2 -256 mobiledgex-v3.1.5-vsphere.ovf
SHA-256 (./mobiledgex-v3.1.6.qcow2) = 167fefcf151002e9f4b411c09d455d8b0d194c7adc3804fd0eb255109eff130f
Under Windows, you can use the Get-FileHash commandlet in PowerShell to calculate the SHA256:
If the SHA256 calculated locally does not match the value provided in Artifactory, delete the file and retry the download. If this still does not match, please contact EdgeXR support.
Step 4: Load resources to VCD
The specific steps required to load the VCD catalog resources will vary depending on the software's version and the user's permissions. The examples below should work for all software versions; however, the screenshots/names may not match up directly with newer versions.
VCD Workflow
Connect to the VCD portal.
Navigate to Libraries → App Templates
Select Source and upload OVF and VMDK files downloaded in Step 2.
Select Next.
The Review Details option screen will display.
Under Select vApp Template Name, select the catalog to which you are deploying the vAPP.
Select Finish.
Wait for the template to complete uploading and processing.
If any errors are returned, please check your permissions. Most load failures are due to the user not having the correct permissions.
Notes:
Appropriate user permissions will be required to upload media and other resources to the Catalog. If your permissions do not allow you to upload, please see your VCD Administrator.
Resources can be supplied in either vApp Template or as a VMWare Virtual Machine. Please ensure you are importing the correct format.
On older versions of the VCD software, there is the possibility that the resources supplied are built using a newer/unsupported hardware version. If this happens, please contact EdgeXR support.
For additional information, please see the VMWare Cloud Directory documentation portal.
Provision virtual machines
Once the artifacts have been loaded into the catalog, the required virtual machines can be created for the installation process. At a minimum, the values provided below in the VM Configuration table should be met.
VM configuration
Resource | Value |
vcpu | 4 |
memory | 16 Gb |
disk | 400 Gb |
network | 1GB |
At a minimum, four VMs will be required per datacenter to fully standup the environment.
Assumptions
Operators will define the size of VMs within the VMPool based on our request and upload it to their data store.
Operators will host us as a tenant and offer standard RBAC methods to consume VMPool created in this process.
Operators will create required VMs and create a flat network binding across all VMs within a Pool and attach an IP address and name them.
Operators will assign specific VMs external access to the internet and create routes to ingress internal VMs within Pool and egress to external network internet or mobile network.
Step 5: Validate network configuration
All virtual machines created as part of this deployment will require full access to the full complement of deployed virtual machines.
please refer to our Firewall Requirement section for the network firewall, and security groups configuration needed.
Note:
All VMPool VMs, including those with internal-network access only, should have egress access to the internet.
All VMPool VMs must have their system time synchronized with the NTP server.
Step 6: Provide deployment information
The following should be provided for each VM that has been deployed.
Datacenter
VM Name
External IP
Internal IP
Step 7: Cloudlet deployment
The EdgeXR DevOps team will use the information above to deploy the cloudlet and confirm that it communicates with all necessary services and works correctly. During this process, EdgeXR requests that the operator has a defined contact point if there are any issues with the deployed VMs, network, firewall, or other problems.
Step 8: Handover testing
After completing the cloudlet deployment, the EdgeXR DevOps team will run through the deployment test process to validate the configuration. Once this is complete, the customer will deploy workloads to the cloudlet. Simultaneously, the EdgeXR support team monitors the deployment and management until both EdgeXR and the operator agree that the cloudlet is working correctly.