https://pulumi.com logo
#golang
Title
# golang
p

purple-jelly-68780

08/27/2021, 4:34 PM
Since dynamic providers are not supported in Go, what is the appropriate workaround when you need to implement a new provider? In particular, I'm looking to create a new provider in order to update GoDaddy domain nameservers. I see that in this doc there is reference to a third type of provider that you can write yourself and share. Are there any examples on how to implement one of these providers?
Actually I wonder if all I need is a custom component resource
The component resource approach seems to have some downsides - namely I seem to only be able to manage creating a resource and not the update/delete cycles like you can with a dynamic provider
g

green-musician-49057

08/31/2021, 8:51 PM
@purple-jelly-68780 What solution did you end up going with for this?
p

purple-jelly-68780

08/31/2021, 8:54 PM
@green-musician-49057 I wasn't able to use Go for this without a lot of extra effort to build out a custom provider, so I implemented the dynamic provider in JS. I didn't have a lot of time to invest in this piece of the project unfortunately. Here's the dynamic provider in JS if you're interested: https://github.com/cwinters8/pulumi-aws-godaddy-dns/blob/main/providers/godaddy.js
The alternative is to build out the same functionality using this boilerplate: https://github.com/pulumi/pulumi-provider-boilerplate
g

green-musician-49057

08/31/2021, 9:02 PM
Ah yep too bad it couldn't be done (quickly) in Go, but your solution doesn't look bad at all! We're looking to encapsulate some custom tooling with a custom provider, so it's good to see some real examples
p

purple-jelly-68780

08/31/2021, 9:05 PM
Yeah it was fairly simple to do in JS. I really like the concept of the dynamic providers, just wish they were supported in Go projects. The big downside of the implementation is that now I have two different stacks I have to spin up. But that's a tradeoff I was willing to make for the time savings
3 Views