Skip to content

Latest commit

 

History

History
36 lines (25 loc) · 1.46 KB

File metadata and controls

36 lines (25 loc) · 1.46 KB
page_title description
Plugin Development - Debugging Framework Providers
How to implement debugger support in Framework Terraform providers.

Debugging Framework Providers

-> Note: The Plugin Framework is in beta.

This page contains implementation details for inspecting runtime information of a Terraform provider developed with Framework via a debugger tool by adjusting the provider server implementation. 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 providerserver/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 on protocol version 6:

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 := providerserver.ServeOpts{
		Address: "registry.terraform.io/example-namespace/example",
		Debug:   debug,
	}

	err := providerserver.Serve(context.Background(), provider.New(), opts)

	if err != nil {
		log.Fatal(err.Error())
	}
}