182 lines
7.2 KiB
Markdown
182 lines
7.2 KiB
Markdown
---
|
|
title_tag: Project File Reference
|
|
meta_desc: Documentation of the settings that are valid for the Pulumi project file.
|
|
title: Project file
|
|
h1: Pulumi project file
|
|
meta_image: /images/docs/meta-images/docs-meta.png
|
|
menu:
|
|
concepts:
|
|
parent: projects
|
|
weight: 1
|
|
|
|
aliases:
|
|
- /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
|
|
|
|
```yaml
|
|
name: Example Pulumi project file with only required attributes
|
|
runtime: nodejs
|
|
```
|
|
|
|
### Example project file with all possible attributes
|
|
|
|
```yaml
|
|
name: Example Pulumi project file with all possible attributes
|
|
runtime: yaml
|
|
description: An example project with all attributes
|
|
main: example-project/
|
|
stackConfigDir: config/
|
|
backend:
|
|
url: https://pulumi.example.com
|
|
options:
|
|
refresh: always
|
|
template:
|
|
description: An example template
|
|
config:
|
|
aws:region:
|
|
description: The AWS region to deploy into
|
|
default: us-east-1
|
|
secret: true
|
|
plugins:
|
|
providers:
|
|
- name: aws
|
|
path: ../../bin
|
|
languages:
|
|
- name: yaml
|
|
path: ../../../pulumi-yaml/bin
|
|
version: 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`. | [runtime options](#runtime-options)
|
|
| `description` | optional | A brief description of the project. | None. |
|
|
| `config` | optional | Project level config (Added in v3.44). | [config options](#config-options) |
|
|
| `main` | optional | Path to the Pulumi program. The default is the working directory. | None. |
|
|
| `stackConfigDir` | optional | Config directory location relative to the location of `Pulumi.yaml`. | None. |
|
|
| `backend` | optional | [Backend](/docs/concepts/state/) of the project. | [backend options](#backend-options) |
|
|
| `options` | optional | Additional project options. | [options options](#options-options) |
|
|
| `template` | optional | Config to be used when creating new stacks in the project. | [template options](#template-options) |
|
|
| `plugins` | optional | Override for the plugin selection. Intended for use in developing pulumi plugins. | [plugins options](#plugins-options) |
|
|
|
|
### `runtime` options
|
|
|
|
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](https://github.com/pypa/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`. |
|