How do you set up a Pulumi project fast with all b...
# general
b
How do you set up a Pulumi project fast with all best practices? Is there some tooling like projen?
s
Best practices can depend on the architecture. What infrastructure are you spinning up?
b
I meant best-practices also for the tooling-side like TypeScript config, Biome or ESLint+Prettier, etc.
s
I love this question! Easiest way would be to make a custom template with your preferred setup and then you can do
pulumi new <https://github.com/><user>/<repo>/tree/<branch>
.
b
So there's no plan to have official templates not requiring a URL?
I think you could actually have
pulumi new aws-typescript
with all best practices in TypeScript for the project, so you don't have to worry about the settings.
But you would need an engine that keeps regenerating the settings and manage the files for you.
Not sure if Pulumi can reuse the engine it uses for deploying also for managing the local configuration.
Basically do what projen does, which is powered by CDK but it's used to manage the git repo configuration instead of your IaC state.
s
So there's no plan to have official templates not requiring a URL?
All templates in
pulumi/templates
do not require a URL. The URL is when you want to use your own custom template.
I think you could actually have pulumi new aws-typescript with all best practices in TypeScript for the project, so you don't have to worry about the settings.
The problem here is "whose best practices"? Pulumi is used by a ton of different orgs, so we can't really afford to be too prescriptive in our default TS template. Now, if there's some common standard
foo
, then we could do something like
pulumi new typescript-foo
.
I do think that boilerplating a Pulumi project via Projen would be a cool experiment, tho. Would you be interested in trying to implement it? If so, I can ask about getting you a spot in the Pulumi blog.
(And if you're writing the code, you can be as opinionated as you want!)
b
What does this do?
A template for tags?
s
It says which template was used to create the project. If you wanted to use projen, you might set it to something like
projen-python
.
b
ah this must be a new thing
s
Relatively new.