This repo contains the templates for pulumi new, which make it easy to quickly get started building new Pulumi projects.
[!IMPORTANT] We are currently re-evaluating what content belongs in github.com/pulumi/templates, how it should be organized, and how it should be maintained. During this evaluation process, we will not be accepting new third-party templates.
Create a new directory for the template, e.g. my-template-typescript. By convention, hyphens are used to separate words and the language is included as a suffix.
Add template files in the new directory. Note that when new projects are created from templates, all of the files contained in the template directory are copied into the resulting Pulumi project. Be sure to exclude any unnecessary files.
Also note that dependency lockfiles like package-lock.json and go.sum are deliberately git-ignored to ensure that new projects always track with the latest Pulumi and provider SDKs.
If the template is an architecture template, include the requisite supplemental metadata at ./metadata:
If the template adds to an existing template group (for example, if it's a new a static-website-aws template), add a new line for the template in the templates section of that group:
name: AWS Static Website
...
templates:
...
- static-website-go
- static-website-csharp
- - static-website-yaml
+ - static-website-yaml
+ - static-website-java
If the template introduces a new architecture, make a new entry in ./metadata/architectures.yaml using the others as a guide (the keys and slug values correspond with these templates' eventual paths at https://pulumi.com/templates), then add a new file that lists the new template at ./metadata/groups/{architecture}-{cloud}-{language}.yaml. Set the new group's parent property to match the key/name of the item you added to architectures.yaml.
Ensure the template applies sensible, conservative defaults for all configuration values. Ideally, users should be able to run pulumi new --yes with your template and get an immediately deployable project out of the box.
Ensure the template supports the minimum runtime version for its associated language. Consult the Languages & SDKs documentation for reference. (This is why our CI workflows use older runtimes. Every template in this repository should comply with this requirement.)
Request a review from the @pulumi/content-engineering team.
The following special strings can be included in any template file; these will be replaced by the CLI when laying down the template files.
${PROJECT} - The name of the project.${DESCRIPTION} - The description of the project.(top 30 of 68)
HTML
27.8%
Go
18.7%
C#
14.2%
Python
12.4%
TypeScript
12.3%
HCL
9.2%
Java
2.1%
JavaScript
1.4%
This repo contains the templates for pulumi new, which make it easy to quickly get started building new Pulumi projects.
[!IMPORTANT] We are currently re-evaluating what content belongs in github.com/pulumi/templates, how it should be organized, and how it should be maintained. During this evaluation process, we will not be accepting new third-party templates.
Create a new directory for the template, e.g. my-template-typescript. By convention, hyphens are used to separate words and the language is included as a suffix.
Add template files in the new directory. Note that when new projects are created from templates, all of the files contained in the template directory are copied into the resulting Pulumi project. Be sure to exclude any unnecessary files.
Also note that dependency lockfiles like package-lock.json and go.sum are deliberately git-ignored to ensure that new projects always track with the latest Pulumi and provider SDKs.
If the template is an architecture template, include the requisite supplemental metadata at ./metadata:
If the template adds to an existing template group (for example, if it's a new a static-website-aws template), add a new line for the template in the templates section of that group:
name: AWS Static Website
...
templates:
...
- static-website-go
- static-website-csharp
- - static-website-yaml
+ - static-website-yaml
+ - static-website-java
If the template introduces a new architecture, make a new entry in ./metadata/architectures.yaml using the others as a guide (the keys and slug values correspond with these templates' eventual paths at https://pulumi.com/templates), then add a new file that lists the new template at ./metadata/groups/{architecture}-{cloud}-{language}.yaml. Set the new group's parent property to match the key/name of the item you added to architectures.yaml.
Ensure the template applies sensible, conservative defaults for all configuration values. Ideally, users should be able to run pulumi new --yes with your template and get an immediately deployable project out of the box.
Ensure the template supports the minimum runtime version for its associated language. Consult the Languages & SDKs documentation for reference. (This is why our CI workflows use older runtimes. Every template in this repository should comply with this requirement.)
Request a review from the @pulumi/content-engineering team.
The following special strings can be included in any template file; these will be replaced by the CLI when laying down the template files.
${PROJECT} - The name of the project.${DESCRIPTION} - The description of the project.(top 30 of 68)
HTML
27.8%
Go
18.7%
C#
14.2%
Python
12.4%
TypeScript
12.3%
HCL
9.2%
Java
2.1%
JavaScript
1.4%