Skip to main content

Search the Dev Center

Search tutorials, templates, examples, and more.

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. Install Pulumi
  2. Configure AWS credentials
  3. Install Node.js

Running the tests#

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

  1. Install dependencies:

    Terminal window
    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 the tests folder as the policy pack:

    Terminal window
    pulumi up --policy-pack tests

    The preview displays that the 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

Learn more#

Learn more about testing Pulumi programs:

Related

The infrastructure as code platform for any cloud.