https://pulumi.com logo
Title
a

acceptable-plumber-31485

03/13/2023, 6:52 PM
Is there an abstraction library I can use on top of pulumi so that our developers/users won't have to write Pulumi code to build aws resources? I'd like to make it invisible for them.
b

billowy-army-68599

03/13/2023, 6:54 PM
yes, automation API
you can embed pulumi into web apps and CLI tools
a

acceptable-plumber-31485

03/13/2023, 6:55 PM
Can you please show me a link to the documentation of that?
I'd like to build something similar to what we are using right now
b

billowy-army-68599

03/13/2023, 6:55 PM
a

acceptable-plumber-31485

03/13/2023, 6:55 PM
thank you
I'd like to clarify. I don't want our developers to write any pulumi functions like aws.ec2.get_ami, etc. What they just need to do is create a configuration file that will be read by our tool(in this case will be the automation api you mentioned)
b

billowy-army-68599

03/13/2023, 6:58 PM
oh, you could just use pulumi-yaml for that? https://www.pulumi.com/docs/intro/languages/yaml/
a

acceptable-plumber-31485

03/13/2023, 7:04 PM
we are currently using Foremast. It is running on gitlab, maybe in a gitlab-runner. The only thing that developers have to do is create a runway directory in their git projects and create exact filenames of configuration that will be read by Foremast like application-master-dev.json or application-master-prod.json. This json file contains configuration of the aws resource(like EC2) where their application will be stored. It is also used to describe the type of load balancer if the users want one. Our developers doesn't have to write any Foremast code. I'm looking for something similar so that I can hide Pulumi code from users and eventually say goodbye to Foremast.
b

billowy-army-68599

03/13/2023, 7:05 PM
you can definitely create that experience, but it would be hand rolled
a

acceptable-plumber-31485

03/13/2023, 7:05 PM
nothing exist right now?
I was actually thinking the whole night/morning yesterday
I already have ideas but I was hoping there something exists so I don't have to redo it
b

billowy-army-68599

03/13/2023, 7:13 PM
certainly nothing off the shelf, but with a combination of a component and automation API you can reproduce the experience
a

acceptable-plumber-31485

03/13/2023, 7:19 PM
cool
I'll continue reading the automation api
So far, it's my 3rd day playing with Pulumi and I'm enjoying it. There are things that I still have questions about it. I don't know how resource organization is done in Pulumi. In Terraform, we just create .tf files and it will be parsed. That's one of my questions
b

billowy-army-68599

03/13/2023, 7:36 PM
yeah Pulumi doesn’t have the interpolates everything behavior, generally you’ll want to separate module like behaviour into a component resource then import it, like this: https://github.com/jaxxstorm/pulumi-examples/blob/main/python/aws/webserver_component/__main__.py#L18 https://github.com/jaxxstorm/pulumi-examples/blob/main/python/aws/webserver_component/webserver.py#L19
a

acceptable-plumber-31485

03/13/2023, 7:38 PM
awesome!
and those component will be in a single stack right?
Very nice example! I feel like I am writing a ReactJS application 🙂
b

billowy-army-68599

03/13/2023, 7:41 PM
there’s an example here of an automation API app bundled in a CLI, which may be a nice UX for your users https://github.com/jaxxstorm/pulumi-productionapp/tree/main/cli
a

acceptable-plumber-31485

03/13/2023, 7:41 PM
cool!
I'll have to study Go, I haven't used it.
b

billowy-army-68599

03/13/2023, 7:55 PM
you can achieve a similar result with the other SDKs