This example creates a "team" EC2 Instance with tags set from upstream "company" and "department" stacks via StackReference.
This directory contains three Pulumi projects that are deployed in sequence:
- company/ — creates a "company" stack that exports a company name.
- department/ — creates a "department" stack that exports a department name.
- team/ — creates an EC2 instance tagged with values read from the company and department stacks.
company
└─ department
└─ team
-
Change to the
companydirectory and install dependencies:cd company python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
-
Create a new stack:
pulumi stack init dev
-
Set the required configuration variables:
pulumi config set companyName 'ACME Widget Company'
-
Deploy the stack:
pulumi up
Updating (dev): Type Name Status + pulumi:pulumi:Stack aws-py-stackreference-company-dev created Outputs: companyName: "ACME Widget Company" Resources: + 1 created
-
Change to the
departmentdirectory and install dependencies:cd ../department python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
-
Create a new stack:
pulumi stack init dev
-
Set the required configuration variables:
pulumi config set departmentName 'E-Commerce'
-
Deploy the stack:
pulumi up
Updating (dev): Type Name Status + pulumi:pulumi:Stack aws-py-stackreference-department-dev created Outputs: departmentName: "E-Commerce" Resources: + 1 created
-
Change to the
teamdirectory and install dependencies:cd ../team python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
-
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-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
-
Deploy the stack:
pulumi up
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
Once you're finished experimenting, destroy your resources and remove your stacks. Repeat this in each of the company, department, and team directories that you ran pulumi up within:
pulumi destroy
pulumi stack rm