-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Neon provider #6188
base: master
Are you sure you want to change the base?
Add Neon provider #6188
Conversation
Signed-off-by: Dmitry Kisler <[email protected]>
Thanks for your contribution @kislerdm! A couple notes/questions:
|
Hi @kislerdm, thank you for opening this pull request! Adding to @mjeffryes - please ensure you have both an Please let us know if you need any assistance. 🙇♀️ |
@mjeffryes @guineveresaenger Hello! Thank you for your prompt replies.
It's the community-driven provider with me as the main contact person. I'm the author and core maintainer of the Neon terraform provider. Many Neon users and terraform community members indicated strong interest in Pulumi provider as well, so here we are 😀
Would it be possible for initial release to include SDKs only for the following technologies: typescript, python, go? The motivation: to cover the technologies with the most demand to acquire first feedback. Thanks for understanding!
@guineveresaenger could you please advise: is it OK for both pages to have identical content? I noticed that it's the case for some providers, e.g., aivan. The motivation: get the initial release publish ASAP without overthinking basic documentation to gain adoption momentum and collect feedback. Thank you for your help! |
@kislerdm - we really truly just check for existence of each page, so either a placeholder or identical content is absolutely fine. 👍 Just don't want your docs to fail. :) I notice that you've implemented a Pulumi native provider. Just in case you weren't aware, if a terraform provider already exists, it is also possible to "bridge" the existing terraform provider into a Pulumi provider using the Pulumi Terraform Bridge. |
@guineveresaenger thank you for the reply!
Cool, I'll add the missing page to be identical with "_index.md" for now then.
I decided to develop a native provider to avoid coupling to the terraform provider to enable both communities for independent development. Would you recommend building Pulumi provider as a proxy to terraform provider instead? Could you maybe share pro/cons from your experience? Thanks! |
That's great to hear!
Pulumi users will absolutely be able to use this provider without dotnet support, we just won't be able to list it in our registry until packages are available in all our core languages. (We realize this is a bit of a pain as a provider author; we're trying to figure out how we can make it less of a burden.) |
@mjeffryes thanks for clarification! I'll add the SDKs for missing languages and update the PR checklist once it's done. |
@mjeffryes Unfortunately, there seem to be a blocker for dotnet, see the issue. I suspect that other provider developers may face it as well. |
@kislerdm @mjeffryes unfortunately when .NET SDK generator picks names for SDK elements it may occasionally conflict (as is the case with pulumi/pulumi#17826 indeed). This is highly unfortunate indeed, but a comprehensive fix for this is very expensive. As the team maintaining providers we are able to work around these issues by customizing the names picked for SDK elements by hand to avoid the conflict. I've sketched out some notes in the attached issue. Do you think a workaround can also be applicable to the neon provider or the specific details of Neon make it harder than what we have in 1826? If you could provide a few more specifics and a repro we could take a look 🙏 |
@t0yv0 @mjeffryes hey folks! The root cause in my case was the clash of namespaces which was causing the compiler's confusion: // file Provider.cs
namespace Pulumi.Neon
{
[NeonResourceType("pulumi:providers:neon")]
public partial class Provider : global::Pulumi.ProviderResource
{
// ... The method // file Provider/Project.cs
namespace Pulumi.Neon.Provider
{
// ... My fix: to configure the package provider
import (
// ...
"github.com/pulumi/pulumi/sdk/v3/go/common/tokens"
// ...
)
// ...
ModuleMap: map[tokens.ModuleName]tokens.ModuleName{
"provider": "resource",
},
// ... WDYT? |
I think this is very reasonable, |
Description
Hello, Pulumi team! This PR adds the Neon provider package to the Pulumi Registry. The provider will enable users to provision Neon resources, e.g., project, database, branch etc. It's the initial release which only supports minimal functionality to provision the project resource.
Adding a new package?
If this pull request adds a new package:
Database
)./docs/_index.md
) that includes:layout
set topackage
./docs/installation-configuration.md
) that includes:pulumi config set
.v
that corresponds with a valid GitHub release and published package SDKs