pulumi-yaml

module
v1.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2024 License: Apache-2.0

README

PulumiYAML

A YAML (and JSON) language provider for Pulumi.

Examples

See examples dir for tested examples.

The Pulumi Getting Started:

name: simple-yaml
runtime: yaml
resources:
  my-bucket:
    type: aws:s3:Bucket
    properties:
      website:
        indexDocument: index.html
  # The ownershipControls and publicAccessBlock resources are required as of April 2023
  # https://aws.amazon.com/blogs/aws/heads-up-amazon-s3-security-changes-are-coming-in-april-of-2023/
  ownershipControls:
    type: aws:s3:BucketOwnershipControls
    properties:
      bucket: ${my-bucket}
      rule:
        objectOwnership: ObjectWriter
  publicAccessBlock:
    type: aws:s3:BucketPublicAccessBlock
    properties:
      bucket: ${my-bucket}
      blockPublicAcls: false
  index.html:
    type: aws:s3:BucketObject
    properties:
      bucket: ${my-bucket}
      source:
        fn::stringAsset: <h1>Hello, world!</h1>
      acl: public-read
      contentType: text/html
    options:
      dependsOn:
        - ${ownershipControls}
outputs:
  bucketEndpoint: http://${my-bucket.websiteEndpoint}

Webserver + kitchen sink (providers, config, resource options, invokes, interpolations):

name: webserver
runtime: yaml
description: Basic example of an AWS web server accessible over HTTP
configuration:
  InstanceType:
    default: t3.micro
variables:
  AmazonLinuxAmi:
    fn::invoke:
      function: aws:ec2:getAmi
      arguments:
        filters:
          - name: name
            values: ["amzn2-ami-hvm-2.0.20231218.0-x86_64-ebs"]
        owners: ["137112412989"]
        mostRecent: true
      return: id
resources:
  WebSecGrp:
    type: aws:ec2:SecurityGroup
    properties:
      ingress:
        - protocol: tcp
          fromPort: 80
          toPort: 80
          cidrBlocks: ["0.0.0.0/0"]
    protect: true
  WebServer:
    type: aws:ec2:Instance
    properties:
      instanceType: ${InstanceType}
      ami: ${AmazonLinuxAmi}
      userData: |-
        #!/bin/bash
        echo 'Hello, World from ${WebSecGrp.arn}!' > index.html
        nohup python -m SimpleHTTPServer 80 &
      vpcSecurityGroupIds:
        - ${WebSecGrp}
  UsEast2Provider:
    type: pulumi:providers:aws
    properties:
      region: us-east-2
  MyBucket:
    type: aws:s3:Bucket
    options:
      provider: ${UsEast2Provider}
outputs:
  InstanceId: ${WebServer.id}
  PublicIp: ${WebServer.publicIp}
  PublicHostName: ${WebServer.publicDns}

Spec

The specification for the Pulumi YAML format, and documentation for built-in functions, is in the Pulumi YAML reference.

Contribute to the specification by editing the markdown file in pulumi/pulumi-hugo.

Directories

Path Synopsis
cmd
pulumi-converter-yaml
pulumi-converter-yaml is the "language converter" for Pulumi programs written in YAML or JSON.
pulumi-converter-yaml is the "language converter" for Pulumi programs written in YAML or JSON.
pulumi-language-yaml
pulumi-language-yaml is the "language host" for Pulumi programs written in YAML or JSON.
pulumi-language-yaml is the "language host" for Pulumi programs written in YAML or JSON.
pkg
pulumiyaml/codegen
The codegen package provides utilities for converting Pulumi YAML templates to other forms (e.g.
The codegen package provides utilities for converting Pulumi YAML templates to other forms (e.g.
pulumiyaml/packages
Package packages contains utilities for working with Pulumi package lock files.
Package packages contains utilities for working with Pulumi package lock files.
server
pulumi-language-yaml is the "language host" for Pulumi programs written in YAML or JSON.
pulumi-language-yaml is the "language host" for Pulumi programs written in YAML or JSON.
tests/testprovider
A provider with resources for use in tests.
A provider with resources for use in tests.
scripts
gocov
gocov is a replacement for the 'go test' command to be used for coverage.
gocov is a replacement for the 'go test' command to be used for coverage.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL