127 lines
6.2 KiB
Markdown
127 lines
6.2 KiB
Markdown
<!-- markdownlint-disable first-line-h1 no-inline-html -->
|
||
|
||
[][ci-build]
|
||
[][ci-tests]
|
||
[][go-report-card]
|
||
[][latest-release]
|
||
[][go-reference]
|
||
[][go-version]
|
||
|
||
# govmomi
|
||
|
||
A Go library for interacting with VMware vSphere APIs (ESXi and/or vCenter Server).
|
||
|
||
In addition to the vSphere API client, this repository includes:
|
||
|
||
* [govc][govc] - vSphere CLI
|
||
* [vcsim][vcsim] - vSphere API mock framework
|
||
* [toolbox][toolbox] - VM guest tools framework
|
||
|
||
## Compatibility
|
||
|
||
This library supports vCenter Server and ESXi versions following the [VMware Product Lifecycle Matrix][reference-lifecycle].
|
||
|
||
Product versions that are end of support may work, but are not officially supported.
|
||
|
||
## Documentation
|
||
|
||
The APIs exposed by this library closely follow the API described in the [VMware vSphere API Reference Documentation][reference-api]. Refer to the documentation to become familiar with the upstream API.
|
||
|
||
The code in the `govmomi` package is a wrapper for the code that is generated from the vSphere API description. It primarily provides convenience functions for working with the vSphere API. See [godoc.org][reference-godoc] for documentation.
|
||
|
||
## Installation
|
||
|
||
### Binaries and Docker Images for `govc` and `vcsim`
|
||
|
||
Installation instructions, released binaries, and Docker images are documented in the respective README files of [`govc`][govc] and [`vcsim`][vcsim].
|
||
|
||
## Discussion
|
||
|
||
The project encourages the community to collaborate using GitHub [issues][govmomi-github-issues], GitHub [discussions][govmomi-github-discussions], and [Slack][slack-channel].
|
||
|
||
> **Note**
|
||
> Access to Slack requires a free [VMware {code}][slack-join] developer program membership.
|
||
|
||
## Status
|
||
|
||
Changes to the API are subject to [semantic versioning][reference-semver].
|
||
|
||
Refer to the [CHANGELOG][govmomi-changelog] for version to version changes.
|
||
|
||
## Notable Projects Using govmomi
|
||
|
||
* [collectd-vsphere][project-travisci-collectd-vsphere]
|
||
* [Docker LinuxKit][project-docker-linuxKit]
|
||
* [Elastic Agent VMware vSphere integration][project-elastic-agent]
|
||
* [Gru][project-gru]
|
||
* [Juju][project-juju]
|
||
* [Jupiter Brain][project-travisci-jupiter-brain]
|
||
* [Kubernetes vSphere Cloud Provider][project-k8s-cloud-provider]
|
||
* [Kubernetes Cluster API][project-k8s-cluster-api]
|
||
* [OPS][project-nanovms-ops]
|
||
* [OpenTelemetry Collector Contrib][opentelemetry-collector-contrib]
|
||
* [Packer Plugin for VMware vSphere][project-hashicorp-packer-plugin-vsphere]
|
||
* [Rancher][project-rancher]
|
||
* [Terraform Provider for VMware vSphere][project-hashicorp-terraform-provider-vsphere]
|
||
* [Telegraf][project-influxdata-telegraf]
|
||
* [VMware Event Broker Appliance][project-vmware-veba]
|
||
* [VMware vSphere Integrated Containers Engine][project-vmware-vic]
|
||
* [VMware vSphere 7.0][project-vmware-vsphere]
|
||
|
||
## Related Projects
|
||
|
||
* [go-vmware-nsxt][reference-go-vmware-nsxt]
|
||
* [pyvmomi][reference-pyvmomi]
|
||
* [rbvmomi][reference-rbvmomi]
|
||
|
||
## License
|
||
|
||
govmomi is available under the [Apache 2 License][govmomi-license].
|
||
|
||
## Name
|
||
|
||
Pronounced: _go·v·mom·ie_
|
||
|
||
Follows pyvmomi and rbvmomi: language prefix + the vSphere acronym "VM Object Management Infrastructure".
|
||
|
||
[//]: Links
|
||
|
||
[ci-build]: https://github.com/vmware/govmomi/actions/workflows/govmomi-build.yaml
|
||
[ci-tests]: https://github.com/vmware/govmomi/actions/workflows/govmomi-go-tests.yaml
|
||
[latest-release]: https://github.com/vmware/govmomi/releases/latest
|
||
[govc]: govc/README.md
|
||
[govmomi-github-issues]: https://github.com/vmware/govmomi/issues
|
||
[govmomi-github-discussions]: https://github.com/vmware/govmomi/discussions
|
||
[govmomi-changelog]: CHANGELOG.md
|
||
[govmomi-license]: LICENSE.txt
|
||
[go-reference]: https://pkg.go.dev/github.com/vmware/govmomi
|
||
[go-report-card]: https://goreportcard.com/report/github.com/vmware/govmomi
|
||
[go-version]: https://github.com/vmware/govmomi
|
||
[opentelemetry-collector-contrib]: https://github.com/open-telemetry/opentelemetry-collector-contrib
|
||
[project-docker-linuxKit]: https://github.com/linuxkit/linuxkit/tree/master/src/cmd/linuxkit
|
||
[project-elastic-agent]: https://github.com/elastic/integrations/tree/main/packages/vsphere
|
||
[project-gru]: https://github.com/dnaeon/gru
|
||
[project-hashicorp-packer-plugin-vsphere]: https://github.com/hashicorp/packer-plugin-vsphere
|
||
[project-hashicorp-terraform-provider-vsphere]: https://github.com/hashicorp/terraform-provider-vsphere
|
||
[project-influxdata-telegraf]: https://github.com/influxdata/telegraf/tree/master/plugins/inputs/vsphere
|
||
[project-juju]: https://github.com/juju/juju
|
||
[project-k8s-cloud-provider]: https://github.com/kubernetes/cloud-provider-vsphere
|
||
[project-k8s-cluster-api]: https://github.com/kubernetes-sigs/cluster-api-provider-vsphere
|
||
[project-nanovms-ops]: https://github.com/nanovms/ops
|
||
[project-rancher]: https://github.com/rancher/rancher/blob/master/pkg/api/norman/customization/vsphere/listers.go
|
||
[project-travisci-collectd-vsphere]: https://github.com/travis-ci/collectd-vsphere
|
||
[project-travisci-jupiter-brain]: https://github.com/travis-ci/jupiter-brain
|
||
[project-vmware-veba]: https://github.com/vmware-samples/vcenter-event-broker-appliance/tree/development/vmware-event-router
|
||
[project-vmware-vic]: https://github.com/vmware/vic
|
||
[project-vmware-vsphere]: https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-esxi-vcenter-server-7-vsphere-with-kubernetes-release-notes.html
|
||
[reference-api]: https://developer.vmware.com/apis/968/vsphere
|
||
[reference-godoc]: http://godoc.org/github.com/vmware/govmomi
|
||
[reference-go-vmware-nsxt]: https://github.com/vmware/go-vmware-nsxt
|
||
[reference-lifecycle]: https://lifecycle.vmware.com
|
||
[reference-pyvmomi]: https://github.com/vmware/pyvmomi
|
||
[reference-rbvmomi]: https://github.com/vmware/rbvmomi
|
||
[reference-semver]: http://semver.org
|
||
[slack-join]: https://developer.vmware.com/join/
|
||
[slack-channel]: https://vmwarecode.slack.com/messages/govmomi
|
||
[toolbox]: toolbox/README.md
|
||
[vcsim]: vcsim/README.md
|