Has anyone developed pulumi native provider? Looks...
# general
m
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
I haven’t myself — will see if I can find someone to help ya.
m
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
I’m sorry if this is obvious, but I’m curious, what is your use case for creating a provider yourself?
m
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
ok so like for config management? i.e. salt, Ansible, etc.?
m
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
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:
Copy code
# 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
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
“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
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
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
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
Do you have by chance your code available to look at?
Otherwise I will create a provider from the template
m
It's a default boilerplate template repository. https://github.com/pulumi/pulumi-provider-boilerplate/issues/46