Extensibility is key for implementing an effective and realistic Cross-Cloud deployment; there is no other way to solve the inter-connectivity and compatibility issues you will be facing when provisioning workloads into a multi-cloud environment. Extensibility is critical when considering Infrastructure-as-a-Code, which is a relevant component within your Cloud automation and DevOps initiatives.
Currently, VMware’s CPSBU just released vCloud Director v9.1 Build# 7905839 where vCloud Director VCD is part of the VMware’s Cloud Provider Platform 1.0 available for VCPP program members only, see details in diagram below:
vCloud Director (VCD) enables the Infrastructure-as-a-Code strategy for VMware-powered Cloud Providers by automating the deployment and delivery of multiple third-party services, featuring the Extensibility framework and including some relevant features and integration alternatives being mentioned below:
1- VMware vCloud Director HTML5 UI SDK
2- Hashicorp Terraform integration with vCloud Director
3- VMware vRealize Orchestrator Plug-In for vCloud Director
4- vCloud API for vCloud Director
4.a. vCloud API Programming Guide for Service Providers
4.b. vCloud Director API for NSX
1- VMware vCloud Director HTML5 UI SDK
The vcd-ext-sdk
is a GitHub project to support a set of templates for creating extensions to VMware vCloud Director. Cloud Providers who are looking to add custom service offerings to vCloud Director, can use these templates as a starting point to build new services. These templates capture the best practices for API and UI extension development being offered in Java, Javascript/Typescript/nodejs and, Python in particular.
NOTE: The vcd-ext-sdk
project allows contributions from the community. Please refer to the Contributor License Agreement (see FAQ) to contributing.
SOURCE: https://github.com/vmware/vcd-ext-sdk
VCD HTML5 UI Plugin SDK
As part of the prerequisites, UI developers be familiar with the following:
SOURCE: https://github.com/vmware/vcd-ext-sdk/blob/master/ui/vcd-plugin-seed/README.md
2- Hashicorp Terraform integration with vCloud Director
Terraform is one of the leading tools for managing infrastructure as code. It enables you to safely and predictably create, change, and improve infrastructure. Terraform is an open source tool that codifies APIs into declarative configuration files that can be shared among team members, treated as code, edited, reviewed, and versioned.
There is a Github repository named vcd-terraform-provider-vcloud-director
which allows you to interact directly with the VMware vCloud Director’s API (See the Setup Guide ).This project uses the hashicorp go-plugin infrastructure to offer a terraform provider for VMware vCloud Director by interfacing with the python vcd api implementation.
DETAILS? Please visit the following link for details: https://github.com/hashicorp/go-plugin/tree/master/examples/grpc
SOURCE: https://github.com/vmware/terraform-provider-vcloud-director/blob/master/README.md
TerraForm INFO: https://www.terraform.io
3- VMware vRealize Orchestrator Plug-In for vCloud Director
Cloud Providers can leverage the library of pre-designed vRO workflows to build and deploy custom vCD workflows (both SP and tenant facing) that automate and orchestrate many of the SP admin and tenant tasks in vCD (such vRO workflows can be executed in the security context of a given user, either CSP or tenant level). Enabling access to vCD tasks through vRO workflows makes the platform more appealing and flexible, by providing more automation and orchestration options into the VMware Cloud Platform.
Please watch the following video for details about Service Integration with VCD 9.1:
This plug-in allows Cloud Providers to simplify how they manage their cloud infrastructure by extending the robust workflow automation platform of VMware to the vCloud environment. These workflows are available when using the drag-and-drop ability of the workflow editor in the Orchestrator client. vRealize Orchestrator uses the plug-in to reach the functionality of vCloud Director and the vCloud API in a multi-tenant fashion.
The VMware vRealize Orchestrator plug-in for vCloud Director 9.1 release runs on VMware vRealize Orchestrator 7.x. The plug-in is compatible with VMware vCloud Director 9.1 and introduces various new workflows designed to cover the NSX-based networking components that are available in vCloud Director. With these workflows, you can manage first-entity networking configuration objects, such as Firewall, NAT, DHCP pools, DHCP bindings, and Certificates. You can create, edit, or delete instances of these objects. The plug-in also includes workflows for managing advanced gateways and legacy gateways.
SOURCE: https://docs.vmware.com/en/vCloud-Director/9.10/rn/vcd-plugin-910-release-notes.html
Click here to visit the vRealize Orchestrator Plugins Marketplace
4- vCloud API for vCloud Director (VCD-CLI)
The vCloud API Schema Reference includes reference material for all elements, types, operations, and queries in the vCloud API.
4.a. vCloud API Programming Guide for Service Providers
The VMware vCloud API provides support for developers who are building interactive clients of VMware vCloud Director using a RESTful application development style.
vCloud API clients communicate with servers over HTTP, exchanging representations of vCloud objects. These representations take the form of XML elements. You use HTTP GET requests to retrieve the current representation of an object, HTTP POST and PUT requests to create or change an object, and HTTP DELETE requests to delete an object.
Please download PDF with full API documentation here.
4.b. vCloud Director API for NSX
The vCloud Director API for NSX is a proxy API that enables vCloud API clients to make requests to the NSX API. It is a subset of NSX API requests supported by the vCloud Director API for NSX, and it supports a subset of the operations and objects defined in the NSX vSphere API Guide. The NSX Proxy API allows to addressing NSX objects within the scope of a vCloud Director tenant organization.
Each NSX Edge Gateway provides network edge security and gateway services to isolate a virtualized network, by coding the following L2-L7 services at tenant level:
- Edge Gateway
- Edge DHCP
- Edge Firewall
- Edge NAT
- Edge Routing & Switching
- Edge Load Balancer
- Edge SSL VPN
- Edge L2 VPN
- Edge IPSec VPN
- Edge Interfaces, Logging, Statistics, and Remote Access Properties
- Distributed Firewall
- Applications Groups
- Security tags
Please download the following PDF with complete information about the NSX API here.
MORE INFO?
vCloud API Reference: https://code.vmware.com/apis/287/vcloud
VMware API center: https://code.vmware.com/home
5- Python support & Command Line CLI for vCloud Director (VCD-CLI)
pyvcloud
is a Python SDK that calls an underlying VCD REST API . In general, there is a 1:1 correspondence between Python SDK functions and related VCD API call.
SOURCE: https://github.com/vmware/pyvcloud
vcd-cli
is the Command Line Interface for VMware vCloud Director. It uses pyvcloud, the Python SDK for VMware vCloud Director. It requires Python 3. (see details at https://vmware.github.io/vcd-cli/ ). vcd-cli allows system administrators and tenants to do operations from the command line for convenience and automation.
SOURCE: https://github.com/vmware/vcd-cli
NOTE: This project is under development, the commands, parameters and options might change over time.
6- Container Service Extension
The container-service-extension is a vCloud Director add-on that manages the life cycle of Kubernetes clusters for tenants.This extension is designed to be installed on a vCloud Director instance by the service provider (system administrator). The container-service-extension is distributed as a Python package.
SOURCE: https://github.com/vmware/container-service-extension
VCD 9.1 Information Center
vRO Plugin vor VCD (Compatibility list)
Download Details:
Name: vmware-vcloud-director-distribution-9.1.0-7905839.bin
Release Date: 2018-03-08
Build Number: 7905839
File size: 244.99 MB
File type: bin