jackall3n / terraform-provider-render

A terraform provider for render.com
https://registry.terraform.io/providers/jackall3n/render
Mozilla Public License 2.0
21 stars 9 forks source link

Plugin error on Plan field #7

Open kaskaz opened 11 months ago

kaskaz commented 11 months ago

I get the following error when executing terraform apply and I specify the the plan field as free.

╷ │ Error: Plugin did not respond │ │ The plugin encountered an error, and failed to respond to the plugin6.(*GRPCProvider).ApplyResourceChange call. The plugin logs may contain more details. ╵

Stack trace from the terraform-provider-render_v1.3.0 plugin:

panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xa931c4]

goroutine 81 [running]: github.com/jackall3n/terraform-provider-render/render/resources.(serviceResource).Update(0xc000339c20, {0xd43748, 0xc000373a10}, {{{{0xd46a30, 0xc0002c5a10}, {0xb36360, 0xc00037bad0}}, {0xd47d18, 0xc0002303c0}}, {{{0xd46a30, ...}, ...}, ...}, ...}, ...) github.com/jackall3n/terraform-provider-render/render/resources/service.go:244 +0x564 github.com/hashicorp/terraform-plugin-framework/internal/fwserver.(Server).UpdateResource(0xc000159600, {0xd43748, 0xc000373a10}, 0xc00016b398, 0xc0005272a8) github.com/hashicorp/terraform-plugin-framework@v1.1.1/internal/fwserver/server_updateresource.go:118 +0x72e github.com/hashicorp/terraform-plugin-framework/internal/fwserver.(Server).ApplyResourceChange(0xd43748?, {0xd43748, 0xc000373a10}, 0xc000230e60, 0xc0005274c8) github.com/hashicorp/terraform-plugin-framework@v1.1.1/internal/fwserver/server_applyresourcechange.go:99 +0x1a5 github.com/hashicorp/terraform-plugin-framework/internal/proto6server.(Server).ApplyResourceChange(0xc000159600, {0xd43748?, 0xc0003738c0?}, 0xc000230e10) github.com/hashicorp/terraform-plugin-framework@v1.1.1/internal/proto6server/server_applyresourcechange.go:52 +0x27b github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server.(server).ApplyResourceChange(0xc0001ecfa0, {0xd43748?, 0xc0003730e0?}, 0xc0003f69a0) github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov6/tf6server/server.go:816 +0x574 github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6._Provider_ApplyResourceChange_Handler({0xbee400?, 0xc0001ecfa0}, {0xd43748, 0xc0003730e0}, 0xc0003f6930, 0x0) github.com/hashicorp/terraform-plugin-go@v0.14.3/tfprotov6/internal/tfplugin6/tfplugin6_grpc.pb.go:385 +0x170 google.golang.org/grpc.(Server).processUnaryRPC(0xc0001ea1e0, {0xd46b90, 0xc00040c1a0}, 0xc000370360, 0xc0003b9890, 0x11b5fe0, 0x0) google.golang.org/grpc@v1.51.0/server.go:1340 +0xd13 google.golang.org/grpc.(Server).handleStream(0xc0001ea1e0, {0xd46b90, 0xc00040c1a0}, 0xc000370360, 0x0) google.golang.org/grpc@v1.51.0/server.go:1713 +0xa1b google.golang.org/grpc.(Server).serveStreams.func1.2() google.golang.org/grpc@v1.51.0/server.go:965 +0x98 created by google.golang.org/grpc.(*Server).serveStreams.func1 google.golang.org/grpc@v1.51.0/server.go:963 +0x28a

Error: The terraform-provider-render_v1.3.0 plugin crashed!

This is always indicative of a bug within the plugin. It would be immensely helpful if you could report the crash with the plugin's maintainers so that it can be fixed. The output above should help diagnose the issue.

By reading Render API documentation I see that they don't accept the free value, even though I still tried, since I was charged using the starter value.

I'm also writing this here for the ones who try to use the plugin without specifying the plan field, you might get the following error:

{"message":"Payment information is required to complete this request. To add a card, visit https://dashboard.render.com/billing"}

Can anyone tell me if we are able to use Render API in the Free tier?

mateuszjanczak commented 10 months ago

Unfortunately, you can't create services in the free tier. https://api-docs.render.com/reference/create-service

I'm looking for a workaround, because the Render website communicates via GraphQL, which can be used to create an alternative terraform provider.

mateuszjanczak commented 10 months ago

Check out my short-term solution! @kaskaz https://github.com/move2-it/infrastructure/tree/cb37eaa3ded6949774a01b49518677020e6217ca/external_modules/render