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 - companyand 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 upcommand.- $ 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 - departmentand 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 upcommand.- $ 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 - teamand install dependencies.- $ cd ../team $ npm install
- Create a new stack: - $ pulumi stack init dev
- Set the required configuration variables, replacing - YOUR_ORGwith 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 upcommand.- $ 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, and- teamdirectories from above that you ran- pulumi upwithin.- $ pulumi destroy $ pulumi stack rm