1. Docs
  2. Languages & SDKs
  3. YAML

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.


    All you need to use Pulumi YAML is the Pulumi CLI.


    name: simple-yaml
    runtime: yaml
        type: aws:s3:Bucket
            indexDocument: index.html
        type: aws:s3:BucketObject
          bucket: ${my-bucket}
            Fn::StringAsset: <h1>Hello, world!</h1>
          acl: public-read
          contentType: text/html
      bucketEndpoint: http://${my-bucket.websiteEndpoint}
    The example is a fully valid and self-contained Pulumi project. You only need one file to create resources in Pulumi YAML.

    Further examples are given in the Pulumi YAML GitHub repository. The specification for Pulumi YAML documents is in the Pulumi YAML reference.


    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 project
    • pulumi new azure-yaml: creates a starter Azure Pulumi YAML project
    • pulumi new gcp-yaml: creates a starter Google Cloud Pulumi YAML project
    • pulumi 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
      name: yaml
        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.

      Register for Pulumi UP, June 15, 2023