The VMware Cloud Director (VCD) Terraform provider v3.14.0 is now available and supports VCD versions 10.4.0 through 10.6.0. This release provides actively requested features and enhancements from users. It contains 5 new resources and 7 new data sources, 11 enhancements, and 9 bug fixes.
API Filters and External Endpoints
API filters allow you to extend the VCD API with custom URLs that can be redirected to an external endpoint. These two concepts now have their respective resources in the Terraform provider:
Here is an example showing how to use them:
resource “vcd_external_endpoint” “ep1” {
supplier = “broadcom”
name = “my-endpoint”
version = “1.0.0”
enabled = true
description = “A simple external endpoint example”
root_url = “https://10.1.1.1/my-service”
}
resource “vcd_api_filter” “af” {
vcd_external_endpoint.ep1.id = vcd_external_endpoint.ep1.id
url_matcher_pattern = “/my-service/.*”
url_comparison_scope = “EXT_API”
}
When this setting is applied, all requests made to
You will be redirected to https://10.1.1.1/my-service
with all request content and query parameters coming from VCD.
ALB Virtual Service Policies
Three new resources and data sources for managing ALB virtual services HTTP policies. These resources can become quite large due to the number of matching criteria and action configuration, but examples can be found on each of their own documentation pages:
Improvements
Improved user experience with RDE Behaviors
Resources and data sources vcd_rde interface behavior and vcd_rde type behavior had the execution
argument, which only supported key-value mappings to define behavior executions. This version adds a new argument, execution_json
which allows you to define more complex behavior executions by providing a complex JSON string with the specification:
resource “vcd_rde_interface_behavior” “behavior” {
rde_interface_id = vcd_rde_interface.my_interface.id
name = “MyBehavior”
# ‘execution_json’ allows you to use complex structures that are not possible with regular code.
# ‘Execution’ map, such as a nested “execution_properties” in a webhook behavior:
json_execution = jsonencode({
“type”: “WebHook”,
“id” : “testWebHook”,
“href”: “https://hooks.slack.com:443/services/T07UZFN0N/B01EW5NC42D/rfjhHCGIwzuzQFrpPZiuLkIX”,
“_internal_key” : “secret key”,
“run_properties” : {
“template” : {
“content” : “
},
“_secure_token”: “secure token”,
“summon timeout”: 7
}
})
}
Note that the argument execution
can still be used for simpler definitions. In addition, the vcd_rde_behavior_invocation
The data source also allows the use of JSON arguments:
data “vcd_rde_behavior_invocation” “invoke” {
rde_id = vcd_rde.rde.id
behavior_id = vcd_rde_interface_behavior. behavior_id
invoke_on_refresh = true
json_arguments = jsonencode({
“template” : {
“content”: “hello world”
},
“_secure_token”: “secure token”,
“summon timeout”: 7
})
}
New data source for Catalog access controls
With the new vcd catalog access control data source, you can read the access controls to the Catalog and all the information it provides in its attributes (such as the Organizations with which the Catalog is shared).
Other notable improvements
Bug fixes
Not everything is listed here, but there is a list of user-requested bug fixes that were addressed and can be reviewed at changelog.
Go SDK version 2.26.0 released
Last but not least, there is a new version. version 2.26.0 of Go SDK for VMware Cloud Director.