StackReference Example
This example creates a “team” EC2 Instance with tags set from upstream “company” and “department” stacks via StackReference.
/**
* company
* └─ department
* └─ team
*/
Getting Started
Change directory to
company
and install dependencies.$ cd company $ npm install
Create a new stack:
$ pulumi stack init dev
Set the required configuration variables:
$ pulumi config set companyName 'ACME Widget Company'
Deploy everything with the
pulumi up
command.$ pulumi up Previewing update (dev): Type Name Plan + pulumi:pulumi:Stack aws-ts-stackreference-company-dev create Resources: + 1 to create Do you want to perform this update? yes Updating (dev): Type Name Status + pulumi:pulumi:Stack aws-ts-stackreference-company-dev created Outputs: companyName: "ACME Widget Company" Resources: + 1 created Duration: 1s Permalink: https://app.pulumi.com/clstokes/aws-ts-stackreference-company/dev/updates/1
Change directory to
department
and install dependencies.$ cd ../department $ npm install
Create a new stack:
$ pulumi stack init dev
Set the required configuration variables:
$ pulumi config set departmentName 'E-Commerce'
Deploy everything with the
pulumi up
command.$ pulumi up Previewing update (dev): Type Name Plan + pulumi:pulumi:Stack aws-ts-stackreference-department-dev create Resources: + 1 to create Do you want to perform this update? yes Updating (dev): Type Name Status + pulumi:pulumi:Stack aws-ts-stackreference-department-dev created Outputs: departmentName: "E-Commerce" Resources: + 1 created Duration: 1s Permalink: https://app.pulumi.com/clstokes/aws-ts-stackreference-department/dev/updates/1
Change directory to
team
and install dependencies.$ cd ../team $ npm install
Create a new stack:
$ pulumi stack init dev
Set the required configuration variables, replacing
YOUR_ORG
with the name of your Pulumi organization:$ pulumi config set companyStack YOUR_ORG/aws-ts-stackreference-company/dev $ pulumi config set departmentStack YOUR_ORG/aws-ts-stackreference-department/dev $ pulumi config set teamName 'Frontend Dev' $ pulumi config set aws:region us-west-2 # any valid AWS zone works
Deploy everything with the
pulumi up
command.$ envchain aws pulumi up Previewing update (dev): Type Name Plan + pulumi:pulumi:Stack aws-ts-stackreference-team-dev create >- ├─ pulumi:pulumi:StackReference clstokes/aws-ts-stackreference-department/dev read >- ├─ pulumi:pulumi:StackReference clstokes/aws-ts-stackreference-company/dev read + └─ aws:ec2:Instance tagged create Resources: + 2 to create Do you want to perform this update? yes Updating (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 created Outputs: instanceId : "i-0a9ede9c446503903" instanceTags: { Managed By: "Pulumi" company : "ACME Widget Company" department: "E-Commerce" team : "Frontend Dev" } Resources: + 2 created Duration: 28s Permalink: https://app.pulumi.com/clstokes/aws-ts-stackreference-team/dev/updates/1
Clean Up
Once you are done, destroy all of the resources and the stack. Repeat this in each of the
company
,department
, andteam
directories from above that you ranpulumi up
within.$ pulumi destroy $ pulumi stack rm