StackReference example
This example lives in the pulumi/examples repository. Check out just this directory to use it:
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examplesgit -C pulumi-examples sparse-checkout set aws-ts-stackreferencecd pulumi-examples/aws-ts-stackreferenceThis example creates a “team” EC2 Instance with tags set from upstream “company” and “department” stacks via StackReference.
/** * company * └─ department * └─ team */This directory contains three Pulumi projects that must be deployed in order:
- company/ — exports the company name.
- department/ — exports the department name.
- team/ — creates an EC2 instance tagged with values read from the company and department stacks.
Prerequisites#
Deploying the example#
-
Change to the
companydirectory and install dependencies:Terminal window cd companynpm install -
Create a new stack:
Terminal window pulumi stack init dev -
Set the required configuration variables:
Terminal window pulumi config set companyName 'ACME Widget Company' -
Deploy the stack with
pulumi up:Terminal window pulumi upUpdating (dev):Type Name Status+ pulumi:pulumi:Stack aws-ts-stackreference-company-dev createdOutputs:companyName: "ACME Widget Company"Resources:+ 1 createdDuration: 1s -
Change to the
departmentdirectory and install dependencies:Terminal window cd ../departmentnpm install -
Create a new stack:
Terminal window pulumi stack init dev -
Set the required configuration variables:
Terminal window pulumi config set departmentName 'E-Commerce' -
Deploy the stack with
pulumi up:Terminal window pulumi upUpdating (dev):Type Name Status+ pulumi:pulumi:Stack aws-ts-stackreference-department-dev createdOutputs:departmentName: "E-Commerce"Resources:+ 1 createdDuration: 1s -
Change to the
teamdirectory and install dependencies:Terminal window cd ../teamnpm install -
Create a new stack:
Terminal window pulumi stack init dev -
Set the required configuration variables, replacing
YOUR_ORGwith the name of your Pulumi organization:Terminal window pulumi config set companyStack YOUR_ORG/aws-ts-stackreference-company/devpulumi config set departmentStack YOUR_ORG/aws-ts-stackreference-department/devpulumi config set teamName 'Frontend Dev'pulumi config set aws:region us-west-2 # any valid AWS region works -
Deploy the stack with
pulumi up:Terminal window pulumi upUpdating (dev):Type Name Status+ pulumi:pulumi:Stack aws-ts-stackreference-team-dev created>- ├─ pulumi:pulumi:StackReference clstokes/aws-ts-stackreference-company/dev read>- ├─ pulumi:pulumi:StackReference clstokes/aws-ts-stackreference-department/dev read+ └─ aws:ec2:Instance tagged createdOutputs:instanceId : "i-0a9ede9c446503903"instanceTags: {Managed By: "Pulumi"company : "ACME Widget Company"department: "E-Commerce"team : "Frontend Dev"}Resources:+ 2 createdDuration: 28s
Cleaning up#
Once you are done, destroy the resources and remove the stack. Repeat this in each of the
company, department, and team directories that you ran pulumi up within:
pulumi destroypulumi stack rm