Metadata-Version: 2.4
Name: saltext.vcf
Version: 1.0.0
Summary: Salt Extension for VMware VCF infrastructure management (vCenter, NSX, SDDC Manager, VCF Operations, VKS, VMSP)
Author-email: VCF Platform Engineering <vcf-platform@broadcom.net>
License: Apache Software License
Project-URL: Homepage, https://github.com/salt-extensions/saltext-vcf
Project-URL: Documentation, https://salt-extensions.github.io/saltext-vcf/
Project-URL: Source, https://github.com/salt-extensions/saltext-vcf
Project-URL: Tracker, https://github.com/salt-extensions/saltext-vcf/issues
Keywords: salt-extension,vcf,vmware,vsphere,nsx,sddc-manager
Platform: any
Classifier: Programming Language :: Python
Classifier: Programming Language :: Cython
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: salt>=3006
Requires-Dist: requests>=2.3.0
Requires-Dist: pyvmomi>=8.0.0
Requires-Dist: pywbem>=1.7.0
Provides-Extra: vcenter
Requires-Dist: vmware-vcenter>=9.0.0.0; extra == "vcenter"
Provides-Extra: sddc
Requires-Dist: vmware-vcf>=0.4.0; extra == "sddc"
Provides-Extra: vks
Requires-Dist: saltext.kubernetes>=2.1.0; extra == "vks"
Requires-Dist: kubernetes>=27.2.0; extra == "vks"
Provides-Extra: changelog
Requires-Dist: towncrier==25.8.0; extra == "changelog"
Provides-Extra: dev
Requires-Dist: nox[uv]!=2025.05.01,>=2024.3; extra == "dev"
Requires-Dist: pre-commit>=2.21.0; extra == "dev"
Provides-Extra: dev-extra
Requires-Dist: black==26.3.1; extra == "dev-extra"
Requires-Dist: isort!=5.13,<8,>=5; extra == "dev-extra"
Requires-Dist: coverage==7.13.4; extra == "dev-extra"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-prompt; extra == "docs"
Requires-Dist: sphinxcontrib-spelling; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Requires-Dist: towncrier==25.8.0; extra == "docs"
Requires-Dist: sphinxcontrib-towncrier; extra == "docs"
Requires-Dist: myst_parser; extra == "docs"
Requires-Dist: furo; extra == "docs"
Requires-Dist: sphinx-inline-tabs; extra == "docs"
Provides-Extra: docsauto
Requires-Dist: sphinx-autobuild; extra == "docsauto"
Provides-Extra: lint
Requires-Dist: pylint==4.0.4; extra == "lint"
Provides-Extra: tests
Requires-Dist: pytest>=7.2.0; extra == "tests"
Requires-Dist: pytest-salt-factories>=1.0.0; extra == "tests"
Requires-Dist: pytest-helpers-namespace>=2019.1.8; extra == "tests"
Requires-Dist: pytest-timeout; extra == "tests"
Requires-Dist: pytest-instafail; extra == "tests"
Requires-Dist: responses>=0.25.0; extra == "tests"
Requires-Dist: tornado<7,>=6.3; extra == "tests"
Requires-Dist: looseversion; extra == "tests"
Requires-Dist: packaging; extra == "tests"
Requires-Dist: psutil; extra == "tests"
Requires-Dist: pyzmq; extra == "tests"
Requires-Dist: msgpack; extra == "tests"
Requires-Dist: pyyaml; extra == "tests"
Requires-Dist: markupsafe; extra == "tests"
Requires-Dist: jinja2; extra == "tests"
Requires-Dist: pycryptodomex; extra == "tests"
Requires-Dist: python-dateutil; extra == "tests"
Requires-Dist: distro; extra == "tests"
Dynamic: license-file

# saltext.vcf

Salt extension for VMware Cloud Foundation 9.x. Targets the full VCF
stack: vCenter, NSX, SDDC Manager, VCF Operations, VKS (Supervisor),
VMSP (mediated), vSAN, and standalone ESXi.

## Coverage

- **vCenter** — REST `/api/` for clusters, hosts, VMs, datacenters,
  datastores, networks, storage policies, content libraries, folders,
  resource pools, tags, custom attributes, appliance services, KMS
  providers; pyVmomi/SOAP for alarms, perf, extensions, VM snapshots.
- **vSphere 9 Cluster Configuration Profile** — desired-state profile
  API for vCenter-managed clusters (replaces direct ESXi REST).
- **NSX** — Policy API (segments, tier-0/tier-1, groups, security
  policies, firewall rules, services, context profiles, NAT, IP
  blocks/pools, DHCP, edge clusters) and Management API (node,
  cluster status, transport zones/nodes, compute collections, RBAC).
- **SDDC Manager** — hosts, clusters, workload domains, vCenters,
  bundles, network pools, releases, upgrades, certificates,
  credentials, VMSP service health via `/v1/vcf-services`.
- **VCF Operations** — resources, adapters, alert/symptom definitions,
  active alerts, policies, notifications, recommendations, RBAC
  (sources/roles/users/groups/privileges), collectors, credentials,
  super metrics, resource groups, reports, maintenance schedules,
  tasks, solutions, node status.
- **VKS** — Supervisor enablement, services catalog, namespaces, VM
  classes, software lifecycle, compatibility probes, kubeconfig fetch
  bridge to [saltext-kubernetes].
- **vSAN** — cluster config, disk groups, fault domains, health (SOAP
  at `/vsanHealth`).
- **Salt Resources framework** — `vcenter`, `sddc`, `nsx`, `vcfops`,
  `esxi`, `vcf_vm` resource types for fleet-style management with
  grain-based targeting.

~80 execution modules, 27 state modules, 82 REST/SOAP clients across
six VCF components.

## Quickstart

```bash
pip install saltext-vcf
```

Configure pillar:

```yaml
saltext.vcf:
  vcenter:
    host: mgmt-vc.example.com
    username: administrator@vsphere.local
    password: secret
    verify_ssl: false
  sddc_manager:
    host: sddc-manager.example.com
    username: administrator@vsphere.local
    password: secret
    verify_ssl: false
  nsx:
    host: mgmt-nsx.example.com
    username: admin
    password: secret
    verify_ssl: false
  vcf_ops:
    host: ops.example.com
    username: admin
    password: secret
    verify_ssl: false
```

Run from any minion with the extension installed:

```bash
salt-call vcf_vcenter_cluster.list_
salt-call vcf_sddc_domain.list_
salt-call vcf_nsx_segment.list_
salt-call vcf_vcfops_deployment.healthy
salt-call vcf_vcf_services.status_map
```

## Extras

| Extra | Adds |
|---|---|
| `[vcenter]` | `vmware-vcenter` SDK for advanced vCenter REST flows |
| `[sddc]` | `vmware-vcf` SDK for SDDC Manager flows |
| `[vks]` | `saltext-kubernetes` + `kubernetes` for the VKS kubeconfig bridge |

```bash
pip install 'saltext-vcf[vks]'
```

## Documentation

Full docs at <https://salt-extensions.github.io/saltext-vcf/>.

Local build:

```bash
pip install -e '.[docs]'
make -C docs html
xdg-open docs/_build/html/index.html
```

Topic guides under `docs/topics/`:
- [Installation](docs/topics/installation.md)
- [Configuration](docs/topics/configuration.md)
- [Resources Framework](docs/topics/resources-framework.md)
- [VKS / Supervisor bridge](docs/topics/vks-bridge.md)
- [vSAN over SOAP](docs/topics/vsan-soap.md)
- [VMSP mediated access](docs/topics/vmsp-mediated.md)

Examples per component live under `docs/examples/`.

## Development

```bash
pip install -e '.[dev,tests,lint]'
pre-commit install
pytest tests/ -q
```

Live integration tests run against a real VCF lab and live in a separate
integration repository; they're not part of the unit test suite here.

## License

Apache 2.0. See [LICENSE](LICENSE).

[saltext-kubernetes]: https://github.com/salt-extensions/saltext-kubernetes
