https://pulumi.com logo
Title
m

many-helicopter-89037

11/30/2022, 4:43 PM
Has anyone developed pulumi native provider? Looks like https://github.com/pulumi/pulumi-provider-boilerplate repository is incomplete. I'm trying to setup a native provider repository for myself, would really appreciate any support to get it working.
m

miniature-musician-31262

11/30/2022, 6:47 PM
I haven’t myself — will see if I can find someone to help ya.
m

many-helicopter-89037

11/30/2022, 7:11 PM
Thanks much appreciated. I'd like to involve in the process of making the template complete and to easier to work with as well.
r

rhythmic-branch-12845

12/01/2022, 12:45 AM
I’m sorry if this is obvious, but I’m curious, what is your use case for creating a provider yourself?
m

many-helicopter-89037

12/01/2022, 12:46 AM
This may sound crazy. But I'm trying to build a provider for Linux OS.
and I think Pulumi is the most suitable candidate to work on at this moment.
File
,
Package
as
CustomResource
type etc..?
r

rhythmic-branch-12845

12/01/2022, 12:47 AM
ok so like for config management? i.e. salt, Ansible, etc.?
m

many-helicopter-89037

12/01/2022, 12:47 AM
Right, Eventually I should able to build a bridge for Ansible.
Basically grab existing available resources from Ansible definition.
Ansible is pretty procedural, not fully declarative and I'm tired of it.
I have a few DynamicResourceProvider in Typescript for small scale use case. But this won't scale without native provider I believe.
r

rhythmic-branch-12845

12/01/2022, 12:56 AM
re procedural: is it a matter of the syntax? I’m not sure how much experience you have with Pulumi, but Pulumi isnt fully (in my mind) declarative as well. What I mean is that while it is a great thing to have the power of the programming language to do data manipulation, logic, etc. you are handicapped also by the requirements of the programming language. To elaborate, whereas I can declare 2 resources out of order in Terraform, without worrying about the order because Terraform will sort it out for me, if I were to do the same in Pulumi with one of the resources depending on the other, this would fail:
# fail - need access to `parent_resource` variable!

child_resource = <http://aws.xx.bb|aws.xx.bb>(parent_id = parent_resource.id, ...)

parent_resource = aws.xx.aa(...)
m

many-helicopter-89037

12/01/2022, 12:58 AM
Indeed, it's also matter of taste. Programming language > Yaml programming.
Configuration management eco system is extreme. You have full pledged heavy infrastructure with agents on the one hand. On the other hand there is Ansible with yaml engineering but lightweight, agentless. And I work somewhere in between them using both of the sides.
r

rhythmic-branch-12845

12/01/2022, 1:02 AM
“Programming language > Yaml programming” YES!
have you considered using salt? Salt has an agentless way of doing things called salt-ssh. It’s probably not perfect (based on when I tried it years ago, inventory management and organization was basically manual), but you can basically use the same syntax and modules for both agent-based and agentless modes
m

many-helicopter-89037

12/01/2022, 1:41 AM
Puppet & Ansible can do pretty much everything Salt can do. Not planning to give it a try on another tool 🙂
Trying to move away from them 😄
m

many-telephone-49025

12/01/2022, 11:49 AM
Hi @many-helicopter-89037, Interested in what you mean in incomplete? Other than that, here is a native provider in action https://github.com/pulumi/pulumi-kubernetes-ingress-nginx maybe it helps to compare?
m

many-helicopter-89037

12/01/2022, 3:46 PM
Hello,
make build install
doesn't compile successfully (at least for NodeJS SDK). Please see https://github.com/pulumi/pulumi-provider-boilerplate/issues/46
I found this https://github.com/pulumi/pulumi-go-provider repository. Looks like another initiative to tackle this?
m

many-telephone-49025

12/01/2022, 6:25 PM
Do you have by chance your code available to look at?
Otherwise I will create a provider from the template
m

many-helicopter-89037

12/01/2022, 10:28 PM
It's a default boilerplate template repository. https://github.com/pulumi/pulumi-provider-boilerplate/issues/46