We have released a new HashiCorp Terraform vCloud Director Provider v2.4.0 version! While in the previous focused v2.3.0 release we had added support for the fresh Terraform 0.12 version, in this new v2.4.0 release we continued to build out the momentum of new capabilities and complete workflows. As usual, you can automatically download it via the terraform init
command and find the corresponding documentation on the HashiCorp Terraform website:
https://www.terraform.io/docs/providers/vcd/index.html
Note that if you’d like to read about the features added in the previous major v2.2.0 release, please see this article as well:
https://blogs.vmware.com/cloudprovider/2019/05/terraform-vcloud-director-provider-v2-2-0-released.html
v2.4.0 Features
First of all, we have added two new resources, which complete the full workflow of automating deployment of applications in an otherwise absolutely empty vCD instance:
- New resource
vcd_org_user
– for Org User management - New resource
vcd_edgegateway
– for automating management of Edge Gateways in the Org VDC
They become especially powerful when used together with the previously added resources like External Network, Org and Org VDC. Service providers can now automate creation of a working and usable tenant organizations from scratch.
In addition to being useful to users, we are using these capabilities in the development of this provider as well. You can see how we do that in the newly added make test-env-init
and make test-env-apply
build commands. They are able to setup all the test prerequisite resources in an empty vCD.
Then, there is a major addition to support Load Balancer which is available in the NSX Edge Gateway:
- New resources
vcd_lb_virtual_server
,vcd_lb_service_monitor
,vcd_lb_server_pool
,vcd_lb_app_profile
andvcd_lb_app_rule
– for automatic Load Balancer creation, similar to what you see in the tabs of the web GUI - New data sources
vcd_lb_virtual_server
,vcd_lb_service_monitor
,vcd_lb_server_pool
,vcd_lb_app_profile
andvcd_lb_app_rule
– for the ability to query and refer existing Load Balancer configurations in vCD from within the Terraform
Moreover, we have started adding import
functions for the ability to pull in existing resources into Terraform state file and configuration. Both Load Balancer resources and Org User resource come with this capability. For a specific example, please see “Importing” section of the Org User documentation page.
v2.4.0 Improvements
Of course, there are incremental improvements in this release as well:
- New arguments
network_name
withnetwork_type
invcd_snat
andvcd_dnat
resources – for ability to assign a specific network for a NAT rule - New argument
vcd_org_vdc.metadata
– for setting metadata to an Org VDC
Finally, it’s noteworthy, that we have refactored legacy code of how parallel operations are handled. Instead of retry calls the code is now using a reliable locking mechanism, which leads to both faster and more stable operations during apply
and destroy
phases. This is especially important when many resources are being handled.
Please also see our changelog for more changes and details with links to related GitHub pull requests.
Next Steps
As you can see, we are actively increasing the general capabilities of the Terraform vCloud Director Provider. If you have a need specific to your use case, consider contributing through the GitHub repository in a true open-source fashion. If you have any questions, please join our Slack channel #vcd-terraform-dev through VMware {code}.
And, most importantly, have fun!