Improving developer experience is one of the top priorities as we move forward with VMware Cloud Foundation (VCF). If one has to look at automation in general then there are two distinct personas, administrators and developers. Administrators are primarily concerned with operational automation, focusing on tasks such as deployment, configuration, and lifecycle management of the VCF environment. Their automation requirements often involve scripting and writing workflows that manage infrastructure at scale.
On the other hand, developers are focused on integrating VCF capabilities into custom applications and solutions. They need APIs and SDKs that allow programmatic access to VCF services and data, enabling them to build custom tools, services and extensions. The automation needs and requirements for both these personas are significantly different and uniquely tailored to their specific roles and responsibilities within the VCF ecosystem. Recognizing the distinct needs of both personas, Broadcom offers a set of Application Programming Interfaces (APIs), Software Development Kit (SDK) bindings, and a variety of automation tools such as PowerCLI, Terraform, and Ansible.
Looking back, we must acknowledge that we did well in serving our administrator community by offering tools such as PowerCLI, Terraform, and Ansible. However, the APIs and SDKs required a renewed focus on better documentation, better integration with VCF stack as a whole, and simplified developer experience. Prior to VCF 9.0, developers used to consume solution SDKs separately, dealing with all the complexities of integrating them such as interoperability, authentication, and API complexities. With the launch of VCF 9.0, we are happy to announce the general availability of Unified VCF SDK 9.0. Let us dive into what the Unified VCF SDK is.
Unified VCF SDK
The Unified VCF SDK is offered in two language bindings, Java and Python. It is a consolidated SDK that brings together all major VCF solution SDKs into a single, streamlined package. In its initial release, the Unified VCF SDK brings together existing SDKs and introduces new libraries for the VCF Installer and SDDC Manager.
Below is the list of VCF components included in the first release of the Unified VCF SDK –
- VMware vSphere
- VMware vSAN
- VMware Cloud Foundation SDDC Manager (New)
- VMware Cloud Foundation Installer (New)
- VMware vSAN Data Protection
Although the Unified VCF SDK is delivered as a single package, customers still have the flexibility to install and use only the specific libraries they need for their use cases.
For brevity, the Unified VCF SDK will be referred to as the VCF SDK throughout this article.
Benefits
The VCF SDK delivers a simple, extensible, and consistent developer experience throughout the development lifecycle.
Simplified Developer Lifecycle
With this release, we’ve standardized delivery and distribution methods to support different kinds of deployment scenarios:
- Online Installation via PyPI (Python) and Maven (Java) for direct access and easy installation/updates.
- Offline Installation through the Broadcom Developer Portal, ideal for regulated environments with restricted internet access.
- CI/CD Ready Integrations through GitHub-hosted packages and instructions, enabling seamless inclusion into automated pipelines for both install and upgrade use cases.
Better Documentation and Onboarding
We’ve revamped the documentation to help get started quickly.
- Getting Started Guides for Python and Java.
- Sample Examples for quicker onboarding.
OpenAPI Specification
OpenAPI specification defines the APIs in a standardized, machine-readable format (YAML/JSON). With the release of the VCF SDK, we are also publishing OpenAPI specifications for the API endpoints. Shipping OpenAPI specifications with the VCF SDK is more than a documentation effort—it’s a shift towards an API-first and developer-centric mindset. Whether you’re building your own platform on top of VCF or automating routine infrastructure tasks, the OpenAPI specs serve as your API reference document.
With the OpenAPI specification, developers can –
- Automatically generate client libraries in their preferred languages using tools like Swagger Codegen, Kiota or OpenAPI Generator.
- OpenAPI specs can be loaded into tools like Swagger UI, Redoc, or Postman, allowing users to visually explore all available endpoints, input parameters, response schemas, and error messages.
- Understand API structure and its behaviour.
Download the OpenAPI Specification from Broadcom Developer Portal or Github Repository.
VCF Python SDK
VCF Python SDK includes the following modules.
Component | Description |
pyVmomi (Includes vSAN) | pyVmomi is the Python SDK for the VMware vSphere Management API that allows you to rapidly build solutions integrated with VMware ESXi and vCenter Server |
vCenter Server | VMware vCenter Server library contains client bindings for VMware vCenter Server Automation APIs. |
VMware vSAN Data Protection | VMware vSAN Data Protection library contains client bindings to manage native snapshots stored locally on the vSAN cluster, recover VMs from operational failure or ransomware attacks etc. |
Software-Defined Data Center (SDDC) Manager | VMware SDDC Manager library contains client bindings for VMware SDDC Manager Automation APIs for managing software-defined data center (SDDC) infrastructure components. |
VMware Cloud Foundation (VCF) Installer | VCF Installer module of the VCF SDK contains libraries to validate, deploy, convert, and monitor the VCF and VVF installations using new or existing components. |
Distribution Channels
The Unified VCF SDK can be consumed from different distribution channels. We are doing it to cater to different types of environments and developers can consume it from wherever they would like to. The following distribution channels are available for you to download VCF SDK.
Broadcom Developer Portal
The VCF Python SDK is available for download in the Broadcom Developer Portal. You could extract the contents of the ZIP archive vcf-python-sdk-9.0.0.0-24798170.zip to explore the SDK libraries, utilities and samples. However, the third-party dependency packages are not bundled, they are listed in requirements-third-party.txt, present in the vcf-python-sdk-9.0.0.0-24798170.zip
The component vcf sdk .whl files are present in the ../pypi/* folders and the sample code for the vcf components are present in the /<component_name>-samples/ directory.
PyPI
The VCF SDK is available on PyPI, allowing developers to install and update the module online. This is the quickest way to get started with the VCF SDK. To install VCF SDK, run the following command-
1 |
$ pip install <em>vcf-sdk</em> |
Packages installed via pip can also be updated automatically. To update VCF SDK, run the command below –
1 |
$ pip install --upgrade <em>vcf-sdk</em> |
To install a specific library from VCF SDK, run the following command –
1 |
$ pip install {library-name} |
For example-
1 |
$ pip install <em>pyvmomi</em> |
1 |
$ pip install <em>vcf-installer</em> |
Github
Developers can download the VCF SDK package from VMware GitHub repository.
VCF Java SDK
VCF Java SDK includes the following artifacts.
Component | Description |
VMware vCenter Server | The vCenter module of the VCF SDK exposes operations related to content libraries and resource deployment, tagging, and managing internal and external security certificates. |
Virtual Infrastructure Management (VIM) | The Virtual Infrastructure Management (VIM) module of the VCF SDK exposes operations related to the management of compute, networking, and storage resources. These resources include virtual machines, ESXi hosts, clusters, datastores, networks, and system abstractions such as events, alarms, authorization, and plug-in extensions |
SSOCLIENT | The Single Sign-On module of the VCF SDK interfaces the Security Token Service (STS) to issue SAML tokens for authentication of vCenter API operations. |
VMware vSAN Data Protection (vSAN DP) | Using native snapshots stored locally on the vSAN cluster, vSAN data protection can quickly recover VMs from operational failure or ransomware attacks. The vSAN Data Protection API manages protection groups and discovers VM snapshots. |
Virtual Storage Lifecycle Management (VSLM) | The Virtual Storage Lifecycle Management (VSLM) module of the VCF SDK exposes operations related to First Class Disks (FCD), i.e, virtual disks not associated with a virtual machine. |
Storage Monitoring Service (SMS) | The Storage Monitoring Service (SMS) module of the VCF SDK provides methods to retrieve information about available storage topology, capabilities, and state. The vSphere API for Storage Awareness (VASA) permits storage arrays to integrate with vCenter for management functionality. VASA providers expose features of the physical storage devices, such as storage health status, configuration info, and storage capacity. SMS establishes and maintains connections with VASA providers. SMS retrieves information about storage availability from the providers. |
Storage Policy Based Management (SPBM) | The Storage Policy Based Management (SPBM) module of the VCF SDK exposes operations related to storage policies. They describe storage requirements for virtual machines and storage capabilities of storage providers. |
vSAN | The vSAN module of the VCF SDK exposes configuration and monitoring of vSAN disk clusters and related services on ESXi hosts and vCenter Server instances. Virtual disk functions such as mounting, partitioning, secure erasing, and snapshots are also included. |
ESX Agent Manager (EAM) | The ESX Agent Manager (EAM) in VMware vSphere allows developers to extend the functionality of vSphere environments by registering custom software applications as vCenter Server extensions. EAM acts as an intermediary between vCenter Server and these solutions, managing the provisioning and monitoring of agent virtual machines and vSphere Installation Bundle (VIB) modules. |
SDDC Manager | The SDDC Manager module of the VCF SDK exposes operations to manage and monitor the physical and virtual infrastructure deployed as part of a VMware Cloud Foundation deployment |
VMware Cloud Foundation (VCF) Installer | The VCF Installer module of the VCF SDK exposes operations to validate, deploy, convert, and monitor VCF and VVF installations using new or existing components. |
Distribution Channels
Similar to Python SDK, the JAVA SDK can also be consumed from different distribution channels, catering to a variety of environments.
Broadcom Developer Portal
The VCF Java SDK is available for download in the Broadcom Developer Portal. You could extract the contents of the ZIP archive vcf-java-sdk-9.0.0.0-24798170.zip to explore the SDK libraries, utilities and samples.
The SDK bindings .jar, utility .jar and the sdk bom files are in the ../maven/com/vmware/*
folder.
Maven
The VCF SDK artefacts are available in Maven Central under the groupId: com.vmware.sdk. The table below captures the VCF SDK artifact details for the 9.0.0.0 release.
To get started with VCF SDK, add the vcf-sdk dependency in your project pom.xml file.
<dependencies>
<dependency>
<groupId>com.vmware.sdk</groupId>
<artifactId>vcf-sdk</artifactId>
<version>9.0.0.0</version>
</dependency>
</dependencies>
Github
Developers can download the VCF SDK package from VMware GitHub Repository.
API Change Log
With the release of VCF 9.0, we are now publishing an API change log. This change log will detail all modifications, including new API additions, updates to existing APIs, and deprecation announcements. You can refer to the API change log here.
Resources
Github Repository
All in all, with VMware Cloud Foundation 9.0, the unification of different libraries into one SDK with improved documentation, sample codes, and OpenAPI specification is a right step towards delivering a simple, extensible, and consistent developer experience. The next step for you is to try out the Unified VCF SDK 9.0 and share your valuable feedback. We know you might be excited for deep-dive technical content, stay tuned for more!