Skip to main content

Writing Policies for Testing Pulumi Programs

An example that applies PaC-based integration testing to provisioning an AWS EKS cluster.

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set testing-pac-ts
cd pulumi-examples/testing-pac-ts

An example of writing tests based on Policy as Code (“CrossGuard”) with both infrastructure definition and tests written in TypeScript.

Prerequisites#

  1. Ensure you have the latest Node.js and NPM.
  2. Install Pulumi.
  3. Configure Pulumi to Use AWS (if your AWS CLI is configured, no further changes are required).

Running the tests#

The tests will run while Pulumi deploys the code, right before the deployment of each resource.

  1. Restore NPM dependencies:

    $ npm install
  2. Create a new stack, which is an isolated deployment target for this example:

    Terminal window
    pulumi stack init
  3. Set the AWS region for this program:

    Terminal window
    pulumi config set aws:region us-west-2
  4. Run pulumi up with tests folder as policy:

    $ pulumi up --policy-pack tests

    The preview displays that Policy Pack will run:

    Policy Packs run:
    Name Version
    tests-pack (tests) (local)

    Confirm the preview with yes and watch the deployment happen with tests running in parallel. If a test fails, the deployment will stop.

  5. Tear down your stack’s resources by destroying and removing it:

    Terminal window
    pulumi destroy --yes
    pulumi stack rm --yes

Further steps#

Learn more about testing Pulumi programs:

Related

The infrastructure as code platform for any cloud.