Skip to main content

Sentinel Mock Plan

This project creates a mock plan for HashiCorp Sentinel 0.26.2 using a JSON plan file generated by Terraform. It converts the plan file into a format that can be used in Sentinel policies for testing and validation.

Table of Contents

Overview

This project provides a Python utility that processes a JSON plan file (produced by Terraform) and converts it into a mock plan file compatible with HashiCorp Sentinel 0.26.2. The generated mock plan is useful for simulating infrastructure changes and running Sentinel policies without applying actual changes to cloud infrastructure.

Features:

  • Converts a JSON Terraform plan into a mock Sentinel plan.
  • Customizable input and output file options.
  • Supports overwriting existing output files.

Prerequisites

  • Python 3.8+
  • Terraform (to generate the plan file)
  • HashiCorp Sentinel 0.26.2 (for testing with the generated mock plan)

Installation

  1. Install the package via pip:

    pip install sentinel-mock-plan
    

Usage

To use this utility, first generate the Terraform plan JSON file and then run the Python script to convert it.

Generating the JSON Plan

  1. Initialize Terraform with the desired backend configuration:

    terraform init -reconfigure -backend-config=backends/dev.tfvars
    
  2. Generate a Terraform plan:

    terraform plan -out=tf.plan -var-file=environments/dev.tfvars
    
  3. Export the plan to a JSON format:

    terraform show -no-color -json tf.plan > plan.json
    

Converting the JSON Plan to a Sentinel Mock Plan

Now, run the Python utility to convert the plan.json file into a mock Sentinel plan:

python -m sentinel_mock_plan --infile plan.json --outfile mock-tfplan-v2.sentinel

Options:

  • --infile: Input file name (default: plan.json)
  • --outfile: Output file name (default: mock-tfplan-v2.sentinel)
  • --overwrite: Overwrite the output file if it exists

Example:

python -m sentinel_mock_plan --infile plan.json --outfile mock-tfplan-v2.sentinel --overwrite

This will generate a mock plan file named mock-tfplan-v2.sentinel from the plan.json input.

Example Workflow

  1. Run Terraform commands:

    terraform init -reconfigure -backend-config=backends/dev.tfvars
    terraform plan -out=tf.plan -var-file=environments/dev.tfvars
    terraform show -no-color -json tf.plan > plan.json
    
  2. Convert the JSON plan to a mock Sentinel plan:

    python -m sentinel_mock_plan --infile plan.json --outfile mock-tfplan-v2.sentinel
    
  3. Use the generated mock plan in your Sentinel tests.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sentinel-mock-plan-0.3.0.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sentinel_mock_plan-0.3.0-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file sentinel-mock-plan-0.3.0.tar.gz.

File metadata

  • Download URL: sentinel-mock-plan-0.3.0.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0 CPython/3.12.5 Linux/6.5.0-1025-azure

File hashes

Hashes for sentinel-mock-plan-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a9137504eded34d51b1e5f0cbe48d2a364b25aa47e2218a9fa8c16912c758b7b
MD5 8160d5a77a458342a73aa73eb30919be
BLAKE2b-256 dbff19b953a1295b3fa0f593e035b433add49acae9d02b1beb2c882f6ab45421

See more details on using hashes here.

File details

Details for the file sentinel_mock_plan-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: sentinel_mock_plan-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0 CPython/3.12.5 Linux/6.5.0-1025-azure

File hashes

Hashes for sentinel_mock_plan-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 88533c32a8acda6140cb8efb304ee85e65834f2dfd736b866949192c396ebccf
MD5 d082af22f12544acd24586d9bda5c318
BLAKE2b-256 dc5da30b521afd0d8b57dbe8902965db9c1cc3d9fad30149b7055312d154017a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page