Terraform
Debugging SDKv2 Providers
This page contains implementation details for inspecting runtime information of a Terraform provider developed with SDKv2 via a debugger tool. Review the top level Debugging page for information pertaining to the overall Terraform provider debugging process and other inspection options, such as log-based debugging.
Code Implementation
Update the main
function for the project to conditionally enable the plugin/ServeOpts.Debug
field. Conventionally, a -debug
flag is used to control the Debug
value.
This example uses a -debug
flag to enable debugging, otherwise starting the provider normally:
func main() {
var debug bool
flag.BoolVar(&debug, "debug", false, "set to true to run the provider with support for debuggers like delve")
flag.Parse()
opts := &plugin.ServeOpts{
Debug: debug,
ProviderAddr: "registry.terraform.io/example-namespace/example",
ProviderFunc: provider.New(),
}
plugin.Serve(opts)
}