Pulumi & YAML
Pulumi supports writing your infrastructure as code using Pulumi YAML. Pulumi YAML is a configuration language designed to make describing infrastructure as simple as possible. It supports managing infrastructure on any cloud, including Azure, AWS, and Google Cloud.
Prerequisites
All you need to use Pulumi YAML is the Pulumi CLI.
Example
name: simple-yaml
runtime: yaml
resources:
my-bucket:
type: aws:s3:Bucket
properties:
website:
indexDocument: index.html
index.html:
type: aws:s3:BucketObject
properties:
bucket: ${my-bucket}
source:
Fn::StringAsset: <h1>Hello, world!</h1>
acl: public-read
contentType: text/html
outputs:
bucketEndpoint: http://${my-bucket.websiteEndpoint}
Further examples are given in the Pulumi YAML GitHub repository. The specification for Pulumi YAML documents is in the Pulumi YAML reference.
Templates
The fastest way to start a new project is to use a template. The template will initialize a Pulumi
project and set up starter resources for the chosen cloud. The yaml
template is cloud agnostic.
pulumi new aws-yaml
: creates a starter AWS Pulumi YAML projectpulumi new azure-yaml
: creates a starter Azure Pulumi YAML projectpulumi new gcp-yaml
: creates a starter Google Cloud Pulumi YAML projectpulumi new kubernetes-yaml
: creates a starter Kubernetes Pulumi YAML project
Pulumi Programming Model
The Pulumi programming model defines the core concepts you will use when creating infrastructure as code programs using Pulumi. Concepts describes these concepts with examples available in all supported languages, including Pulumi YAML.
To learn how the Pulumi Programming Model is implemented for Pulumi YAML, refer to the Pulumi YAML Reference Guide.
Compiler support
Pulumi YAML includes native support for languages that compile to YAML/JSON via
the compiler
runtime option.
name: generated-from-cue
runtime:
name: yaml
options:
compiler: cue export
Pulumi will run whatever program and arguments are specified in compiler
and
interpret the output as a Pulumi YAML program.
YAML Packages
The Pulumi Registry houses 100+ YAML packages.
Thank you for your feedback!
If you have a question about how to use Pulumi, reach out in Community Slack.
Open an issue on GitHub to report a problem or suggest an improvement.