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.bash $ cd company`Create a Python virtualenv, activate it, and install dependencies:
This installs the dependent packages needed for our Pulumi program.
$ python3 -m venv venv $ source venv/bin/activate $ pip3 install -r requirements.txtCreate a new stack:
$ pulumi stack init devSet the required configuration variables:
$ pulumi config set companyName 'ACME Widget Company'Deploy everything with the
pulumi upcommand.```bash $ pulumi up Previewing update (dev):
Type Name Plan- pulumi:pulumi:Stack aws-py-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-py-stackreference-company-dev created
Outputs: companyName: “ACME Widget Company”
Resources: + 1 created
Duration: 1s
Permalink: https://app.pulumi.com/clstokes/aws-py-stackreference-company/dev/updates/1 ```
Change directory to
departmentand install dependencies.bash $ cd ../company`Create a Python virtualenv, activate it, and install dependencies:
$ virtualenv -p python3 venv
$ source venv/bin/activate
$ pip3 install -r requirements.txtCreate a new stack:
$ pulumi stack init devSet the required configuration variables:
$ pulumi config set departmentName 'E-Commerce'Deploy everything with the
pulumi upcommand.```bash $ pulumi up Previewing update (dev):
Type Name Plan- pulumi:pulumi:Stack aws-py-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-py-stackreference-department-dev created
Outputs: departmentName: “E-Commerce”
Resources: + 1 created
Duration: 1s
Permalink: https://app.pulumi.com/clstokes/aws-py-stackreference-department/dev/updates/1 ```
Change directory to
teamand install dependencies.bash $ cd ../team`Create a Python virtualenv, activate it, and install dependencies:
$ virtualenv -p python3 venv
$ source venv/bin/activate
$ pip3 install -r requirements.txt
Create a new stack:
$ pulumi stack init devSet the required configuration variables, replacing
YOUR_ORGwith the name of your Pulumi organization:$ pulumi config set companyStack YOUR_ORG/aws-py-stackreference-company/dev $ pulumi config set departmentStack YOUR_ORG/aws-py-stackreference-department/dev $ pulumi config set teamName 'Frontend Dev' $ pulumi config set aws:region us-west-2 # any valid AWS zone worksDeploy everything with the
pulumi upcommand.```bash $ envchain aws pulumi up Previewing update (dev):
Type Name Plan- pulumi:pulumi:Stack aws-py-stackreference-team-dev create >- ├─ pulumi:pulumi:StackReference clstokes/aws-py-stackreference-department/dev read >- ├─ pulumi:pulumi:StackReference clstokes/aws-py-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-py-stackreference-team-dev created >- ├─ pulumi:pulumi:StackReference clstokes/aws-py-stackreference-company/dev read >- ├─ pulumi:pulumi:StackReference clstokes/aws-py-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-py-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, andteamdirectories from above that you ranpulumi upwithin.$ pulumi destroy $ pulumi stack rm