Documentation of the settings that are valid for the Pulumi project file.
Project file
Pulumi project file
/images/docs/meta-images/docs-meta.png
concepts
parent
weight
projects
1
/docs/reference/pulumi-yaml/
/docs/reference/project-file/
The Pulumi.yaml project file specifies metadata about your project, such as the project name and language runtime for your project.
Example project files
Example project file with only required attributes
name:Example Pulumi project file with only required attributesruntime:nodejs
Example project file with all possible attributes
name:Example Pulumi project file with all possible attributesruntime:yamldescription:An example project with all attributesmain:example-project/stackConfigDir:config/backend:url:https://pulumi.example.comoptions:refresh:alwaystemplate:description:An example templateconfig:aws:region:description:The AWS region to deploy intodefault:us-east-1secret:trueplugins:providers:- name:awspath:../../binlanguages:- name:yamlpath:../../../pulumi-yaml/binversion:1.2.3
Attributes
All attributes
Name
Required
Description
Options
name
required
Name of the project containing alphanumeric characters, hyphens, underscores, and periods.
None.
runtime
required
Installed language runtime of the project: nodejs, python, go, dotnet, java or yaml.
The runtime attribute has an additional property called options where you can further specify runtime configuration.
Name
Use case
Description
typescript
Only applicable for the nodejs runtime
Boolean indicating whether to use ts-node or not.
nodeargs
Only applicable for the nodejs runtime
Arguments to pass to node.
buildTarget
Only applicable for the go runtime
Path to save the compiled go binary to.
binary
Applicable for the go, .net, and java runtimes
Path to pre-built executable.
virtualenv
Ony applicable for the python runtime
Virtual environment path.
compiler
Only applicable for YAML projects
Executable and arguments issued to standard out.
About nodeargs
Arguments specified here are passed to node when running the Pulumi program. For example, nodeargs: "--trace-warnings" will result in node being invoked as node --trace-warnings.
About buildTarget
For Go
If specified, go sources in $CWD will be compiled via go build to the specified path before being run.
If unspecified, go sources in $CWD will be compiled via go build to a temporary executable that is deleted after running.
Cannot be specified with the binary runtime option.
About binary
For Go, cannot be specified with the buildTarget runtime option.
For .NET, if not specified, a .NET project in $CWD will be invoked via dotnet run.
About virtualenv
New Python projects created with pulumi new have this option set by default. If not specified, Pulumi will invoke the python3 command it finds on $PATH (falling back to python) to run the Python program. To use a virtual environment without the virtualenv option, run pulumi commands (such as pulumi up) from an activated virtual environment shell. Or, if using a tool like Pipenv, prefix pulumi commands with pipenv run pulumi ....
config options
config is a map of config property keys to either values or structured declarations.
Non-object values are allowed to be set directly. Anything more complex must be defined using the structured
schema declaration, or the nested value declaration both shown below.
Values
Name
Required
Description
value
required
The value of this configuration property.
Schemas
Schemas are only valid for project property keys. For setting the value of a provider configuration either use a direct value, or the nested value declaration shown above.
Name
Required
Description
type
required
The type of this config property, either string, boolean, integer, or array.
description
optional
A description for this config property.
secret
optional
True if this config property should be a secure secret value.
default
optional
The default value for this config property, must match the given type.
items
required if type is array
A nested structured declaration of the type of the items in the array.
backend options
Name
Required
Description
url
optional
URL is optional field to explicitly set backend url.
options options
Name
Required
Description
refresh
optional
Set to always to refresh the state before performing a Pulumi operation.
template options
Name
Required
Description
description
optional
Description of the template.
config
required
Config to request when using this template with pulumi new.
config
Name
Required
Description
description
optional
Description of the config.
default
optional
Default value of the config.
secret
optional
Boolean indicating if the configuration is labeled as a secret.
plugins options
Use this option to link to local plugin binaries. This option is intended for use in developing pulumi plugins.
Name
Required
Description
providers
optional
List of provider plugins.
analyzers
optional
List of policy plugins.
languages
optional
List of language plugins.
Options for providers, analyzers, and languages
Name
Required
Description
name
required
Name of the plugin.
path
optional
Path to the plugin folder.
version
optional
Version of the plugin, if not set, will match any version the engine requests.
Deprecated attributes
Name
Required
Description
config
optional
Config directory relative to the location of Pulumi.yaml.