Author – Fernando Escobar
Original posting by Fernando Escobar appeared – http://www.nebulaemagazine.com/breaking-down-cloud-silos-by-deploying-the-new-extensibility-framework-provided-by-vcd-9-1/
Extensibility is key to implementing an effective and realistic Cross-Cloud deployment; there is no other way to solve the inter-connectivity and compatibility issues you will face 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.
VMware’s Cloud Provider Software Business Unit recently released vCloud Director v9.1 Build# 7905839. vCloud Director (VCD) is a foundational part of VMware’s Cloud Provider Platform (available for VMware Cloud Provider Program members only), see details in the diagram below:
vCloud Director (VCD) enables an Infrastructure-as-a-Code strategy for VMware-powered Cloud Providers by automating the deployment and delivery of multiple third-party services. The following is an overview of the different options available as part of the vCloud Director Extensibility framework, and a description of each the relevant features and integration options:
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
5- Python support & Command line CLI for vCloud Director (VCD-CLI)
6- Container Service Extension
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
The VCD HTML5 UI plugin allows third-party service integration by customizing the UI based upon HTML5 standards (using Angular 4.x & Clarity), featuring development of custom menu and action items by inserting them into the VCD UI, allowing the perfect integration between the ISV / ecosystem of partners developments and the Cloud portal (i.e. insertion of internal calls to other products in the suite like VMware’s vCloud Availability, VCD Extender, vRealize suite, vRO-powered workflows and any third-party plug-in soon). By leveraging the plug-in registration process being deployed into VCD 9.1, the Cloud Provider can decide whether the plugins might be available to either the provider portal or to the tenant portal, and can additionally specify exactly which tenants have access to a plugin (role-based access). This allows for a lot of extensibility and integration options within the UI, and offers the potential to monetize new set of functionalities once visible to the UI.
The VCD HTML5 UI requires mixing of the following technologies:
– Angular 4.1 for routing, dependency injection, and component support;
– NGRX 1.2 for redux application state management;
– Clarity 0.9 for UI support.
As part of the prerequisites, UI developers be familiar with the following:
– NodeJS development & NPM usage,
– Module formats (UMD, AMD, CommonJS) and bundling strategies (especially AMD and SystemJS),
– Advanced Angular 4.x coding (including modules and component resolution), and
– Redux development including side-effects (especially NGRX)
Please watch the following video for details about HTML5-based UI under VCD 9.1:
[embedded content]
During the process, the plugin will need bootstrapping Angular, NGRX, and Clarity and loading various extension modules, based on straight calls to a simple and unique API, which is being abstracted out from the underlying interaction with backend services. The functionality is provided by extension modules that compose the VCD UI HTML5 by using plug-ins to load new extension modules created by third-parties.
NOTE: A full VCD HTML5 UI Plugin SDK Development Guide is available for download under NDA, please contact your preferred Cloud Specialist SE via e-mail for details.
SOURCE: https://github.com/vmware/vcd-ext-sdk/blob/master/ui/vcd-plugin-seed/README.md
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
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:
[embedded content]
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
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
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.
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 v9.1 Release Notes
vRO Plugin vor VCD (Compatibility list)
VCD v9.1 Documentation site
VCD v9.1 Download link
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
END