1. Packages
  2. AWS
  3. How-to Guides
  4. StackReference Example
AWS v6.60.0 published on Tuesday, Nov 19, 2024 by Pulumi

StackReference Example

aws logo
AWS v6.60.0 published on Tuesday, Nov 19, 2024 by Pulumi

    View Code

    This example creates a “team” EC2 Instance with tags set from upstream “company” and “department” stacks via StackReference.

    /**
     *   company
     *   └─ department
     *      └─ team
     */
    

    Getting Started

    1. Change directory to company and install dependencies.

      $ cd company
      $ npm install
      
    2. Create a new stack:

      $ pulumi stack init dev
      
    3. Set the required configuration variables:

      $ pulumi config set companyName 'ACME Widget Company'
      
    4. 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
      
    5. Change directory to department and install dependencies.

      $ cd ../department
      $ npm install
      
    6. Create a new stack:

      $ pulumi stack init dev
      
    7. Set the required configuration variables:

      $ pulumi config set departmentName 'E-Commerce'
      
    8. 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
      
    9. Change directory to team and install dependencies.

      $ cd ../team
      $ npm install
      
    10. Create a new stack:

      $ pulumi stack init dev
      
    11. 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
      
    12. 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

    1. Once you are done, destroy all of the resources and the stack. Repeat this in each of the company, department, and team directories from above that you ran pulumi up within.

      $ pulumi destroy
      $ pulumi stack rm
      
    aws logo
    AWS v6.60.0 published on Tuesday, Nov 19, 2024 by Pulumi