The Extensibility Feature of vCloud Director: Enabling New Functionalities and Consistent User Experience
Virtualized infrastructures are becoming increasingly common, particularly in Service Providers and large enterprises with sizable infrastructure. VMware vCloud Director is a crucial tool in these environments, providing Infrastructure-as-a-Service (IaaS) resources to tenants or service-based restrictions. The native portal of vCloud Director offers a simplified view tailored for VM users, allowing them to consume IaaS resources with ease. However, this feature set is limited to the consumption of VMs, storage, and network resources (both L2 & L3).
Since version 9.1, released in March 2018, vCloud Director has introduced an extensibility feature that enables platform administrators to extend the features perimeter. This feature allows developers to create technical contexts for automation related to new features, which can be added to the vCD portal. This opens up numerous possibilities for expanding the capabilities of vCD and providing more value to users.
One such use case is LUMExt, an extension developed by SII (Software Infrastructure and Integration) for managing LDAP-based users in vCloud Director. LUMExt aims to provide a vCD-integrated management of LDAP-based users, allowing administrators to associate users with organizations and roles, thereby enabling their connection to the vCD portal. This extension API is based on a Python script named lumext, which initiates a new thread for each request from the AMQP queue.
The benefits of using per-request Python threads include:
1. Consuming and publishing messages with AMQP protocol: The Kombu Python package is used for this purpose, as it provides reliable and easy support for thread usage.
2. Horizontal scaling for the backend: This feature allows for the extension of the backend to multiple nodes if necessary, ensuring high availability or load balancing.
The LUMExt interface is fully integrated into the vCD portal and is based on the same UI components (Angular) and graphic charter (open-source Clarity framework from VMware). The main navigation menu is supplemented with a new link to access the LUMExt pages. By default, the list of LDAP-based users is displayed:
1. To create a new user, some form fields are requested: The data is sent to the backend and stored in the LDAP server’s appropriate directory fields.
2. User edition and deletion, as well as a specific password reset wizard, are also available: These features are provided for users to edit and delete users and reset passwords.
Note that LDAP-based groups support is intended but not yet developed. LUMExt is an internal SII project that has been “open-sourced” (under the MIT license) on GitHub to demonstrate the extensibility capabilities of vCD with a technical and complete use case. Since about six months, our teams have been working on such plugins for our customers to extend the available features of the vCD portal with tools for their customers (as “Service Providers”). It is also an excellent example of combined developer and infrastructure engineering work in our teams when, in computer science history, both jobs are becoming increasingly intertwined.