Skip to main content

vmware-vcf — Python SDK for VMware Cloud Foundation

A comprehensive Python SDK for programmatically managing VMware Cloud Foundation (VCF) infrastructure — SDDC Manager, NSX-T, and vCenter. Also includes an Ansible collection.

pip install vmware-vcf

Clients

Client API Auth
SDDCManager SDDC Manager REST API (100% of Broadcom spec) JWT with auto-refresh
NSXManager NSX-T Policy API HTTP Basic
VCenter vCenter REST API Session-based
CloudBuilder Cloud Builder API HTTP Basic

Quick Start

from vcf_sdk import SDDCManager, NSXManager, VCenter

# SDDC Manager
with SDDCManager("sddc.lab.dev", "admin@local", "password") as sddc:
    # List hosts
    hosts = sddc.hosts.list(status="COMMISSIONED")
    
    # Commission new hosts (validates first, then executes)
    task = sddc.hosts.commission([{
        "fqdn": "esxi-05.lab.dev",
        "username": "root",
        "password": "password",
        "storageType": "VSAN_ESA",
        "networkPoolId": "pool-uuid"
    }])
    
    # Wait for completion
    sddc.tasks.wait_for_completion(task.id, timeout=3600)
    
    # Manage identity providers
    providers = sddc.identity_providers.list()
    
    # Configure certificates
    sddc.certificates.set_microsoft_ca(
        server_url="https://ca.lab.dev/certsrv",
        username="admin", password="pass", template_name="VMware"
    )

# NSX-T
with NSXManager("nsx.lab.dev", "admin", "password") as nsx:
    # Create a segment (PATCH = idempotent)
    nsx.segments.create_or_update("web-segment", {
        "display_name": "Web Segment",
        "transport_zone_path": "/infra/sites/default/enforcement-points/default/transport-zones/tz-overlay",
        "connectivity_path": "/infra/tier-1s/t1-gateway",
        "subnets": [{"gateway_address": "192.168.1.1/24"}]
    })
    
    # Create firewall policy with rules
    nsx.security_policies.create_or_update("app-policy", {
        "display_name": "App Isolation",
        "category": "Application",
        "rules": [{
            "id": "allow-https",
            "action": "ALLOW",
            "source_groups": ["/infra/domains/default/groups/web-servers"],
            "services": ["/infra/services/HTTPS"]
        }]
    })

# vCenter
with VCenter("vcenter.lab.dev", "administrator@vsphere.local", "password") as vc:
    vms = vc.vms.list(power_states="POWERED_ON")
    datastores = vc.infrastructure.list_datastores()
    vc.tagging.attach("tag-id", "VirtualMachine", "vm-42")

SDDC Manager — 34 Managers

Hosts, clusters, domains, tasks, credentials, certificates, identity providers, network pools, licenses, bundles/upgrades, users/roles, DNS/NTP, backup, compliance, federation, Aria Suite, edge clusters, AVNs, ALB clusters, brownfield import, check sets, compatibility matrices, config drift, manifests, notifications, product catalogs, resource functionalities, trusted certificates, VASA providers, VCF components, version aliases, vSAN HCL/health, system config.

NSX-T Policy API — 44 Managers

Networking: Segments + ports, Tier-0/Tier-1 gateways (locale services, interfaces, static routes, BGP, OSPF, prefix/community lists, route maps, redistribution).

Security: Groups, distributed firewall policies/rules, gateway policies, services, context profiles, IDS/IPS, firewall exclude list, cluster security, predefined policies.

Load Balancing: Services, virtual servers, pools, monitors, application profiles, persistence profiles, SSL profiles.

VPN: IPSec (services, sessions, endpoints, IKE/tunnel/DPD profiles), L2 VPN.

Network Services: NAT, DHCP server/relay, DNS forwarder zones.

IP Management: IP pools + subnets + allocations, IP blocks + block subnets.

Fabric: Transport zones, edge clusters/nodes, host/edge transport nodes, TN collections/profiles, host switch profiles, edge HA profiles, sites, enforcement points, compute sub-clusters.

Multi-tenancy: Projects, VPCs (subnets, ports, groups, security/gateway policies, NAT, routes, IP allocations, DHCP bindings).

Profiles: IP/MAC discovery, spoof guard, segment security, QoS, gateway QoS, flood protection + bindings.

EVPN: Config, tenants, tunnel endpoints.

vCenter REST API — 11 Managers

VMs (lifecycle + power), content library (local + subscribed), namespace management (Tanzu/VKS), tagging (categories + tags + associations), infrastructure (clusters, datacenters, datastores, hosts, networks, resource pools, storage policies), OVF deployment, VM hardware (disks, NICs, CPU, memory), snapshots, DRS rules, folders, guest customization.

Version Awareness

The SDK auto-detects VCF and NSX versions on connect and warns when accessing endpoints not available on the connected version.

sddc = SDDCManager("sddc.lab.dev", "admin@local", "password")
print(sddc.version)  # "9.0.2.0"
# Accessing VPC features on NSX < 4.1.1 logs a warning

Ansible Collection

ansible-galaxy collection install ./ansible_collections/darrylcauldwell/vcf

Modules: vcf_host, vcf_cluster, vcf_domain, vcf_credential, vcf_dns, vcf_certificate, vcf_identity_provider, vcf_nsx_segment, vcf_nsx_gateway, vcf_nsx_firewall, vcf_nsx_nat.

- name: Commission hosts
  darrylcauldwell.vcf.vcf_host:
    sddc_hostname: sddc-manager.lab.dev
    sddc_username: admin@local
    sddc_password: "{{ vault_sddc_password }}"
    state: present
    host_spec:
      - fqdn: esxi-05.lab.dev
        username: root
        password: "{{ vault_esxi_password }}"
        storageType: VSAN_ESA
        networkPoolId: "{{ network_pool_id }}"

Development

python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest tests/ -v --cov=vcf_sdk
ruff check vcf_sdk/ tests/

License

MIT

Metadata

Release files for vmware-vcf 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vmware-vcf 0.4.0
File Size Uploaded
vmware_vcf-0.4.0.tar.gz 93.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vmware-vcf 0.4.0
File Interpreter ABI Platform
vmware_vcf-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 199.5 kB

Release files / vmware_vcf-0.4.0.tar.gz

Download URL vmware_vcf-0.4.0.tar.gz
Size 93.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a83a51b2bcb4d0422c554a2fb1519ca06a21e53ea76a70f7c260c5820e2b1e07
BLAKE2b-256 checksum
How to use checksums
83d57d6e5a0d3541f04543067c99f4e81054fd9e9037bdaaf41828efd2d9c5de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / vmware_vcf-0.4.0-py3-none-any.whl

Download URL vmware_vcf-0.4.0-py3-none-any.whl
Size 106.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c1ac72149a9403371eafb5db4032775544a28fcc8d48ac9f8a5585cf05c084f8
BLAKE2b-256 checksum
How to use checksums
dda0963b7262a7cd0c8a354f6cc65f89e792a0442fc48ffb4c76029674a9bf46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page