This project is deprecated. See https://github.com/crossplane-contrib/terrajet.
provider-terraform-vsphere
is an experimental Crossplane infrastructure provider for
the vSphere vCenter Server and
ESXi APIs.
Available resources and their fields can be found in the CRD
Docs.
Documentation for the original Terraform resources that were used to generate these CRDs,
and descriptions for the attributes which compose them, can be found in the documentation for the
Terraform vSphere provider.
Source code for the Terraform provider can be found at https://github.com/hashicorp/terraform-provider-vsphere
If you encounter an issue please reach out on
slack.crossplane.io and create an issue in
the crossplane-contrib/provider-terraform-vsphere
repo.
- Custom Resource Definitions (CRDs) that model vSphere the infrastructure and services, following the schema observed in the Terraform vSphere Provider.
- Generated code enabling Go representations of the CRDs to be encoded and decoded to/from the native Terraform format zclconf/go-cty for serialization to the Terraform GRPC wire format
- Generated code enabling Go representations of Resources to be compared, so that differences between the desired and observed state of a Resource can be detected.
- Taken together, these capabilities enable the generic controller implemented in
crossplane-contrib/terraform-runtime to fulfill the
crossplane/crossplane-runtime
ExternalClient
interface.
This provider was generated by running https://github.com/crossplane-contrib/terraform-provider-gen pointed at the plugin binary built from https://github.com/hashicorp/terraform-provider-vsphere
The same provider binary used to build the provider must also be present at runtime. Point the runtime at the
full path to the plugin on the local filesystem using the --pluginPath=
cli flag. When using an official image
the appropriate plugin binary will be bundled. For local development, the binary required by terraform-provider-gen.yaml
can be downloaded using the command:
go run github.com/crossplane-contrib/terraform-provider-dl --config=terraform-provider-gen.yaml --output=$DIRECTORY
Where $DIRECTORY
is the directory you would like to use for the --pluginPath
argument. Please use an empty directory
because the plugin expects the directory to only contain the terraform plugin.
This is the demo we ran on the TBS livestream @ https://www.youtube.com/watch?v=nDZdQxjGAkw
./hack/integration-test/setup.sh
./demo.sh
kubectl apply -f examples/controller-config.yaml
kubectl apply -f examples/provider.yaml
kubectl apply -f hack/integration-test/provider
kubectl apply -f hack/integration-test/resources
For getting started guides, installation, deployment, and administration, see our Documentation.
provider-terraform-vsphere is a community driven project and we welcome contributions. See the Crossplane Contributing guidelines to get started.
Please see the documentation for crossplane-contrib/terraform-provider-gen for the latest documentation on using the code generation tools. This tool is still highly experimental so it is possible that new resources could uncover edge cases that require further development on the shared codegen tools.
For filing bugs, suggesting improvements, or requesting new features, please open an issue.
Please use the following to reach members of the community:
- Slack: Join our slack channel
- Forums: crossplane-dev
- Twitter: @crossplane_io
- Email: info@crossplane.io
provider-terraform-vsphere goals and milestones are currently tracked in the Crossplane repository. More information can be found in ROADMAP.md.
provider-aws is run according to the same Governance and Ownership structure as the core Crossplane project.
provider-aws adheres to the same Code of Conduct as the core Crossplane project.
provider-terraform-vsphere is licensed under the Apache License, Version 2.0.