Create a mock plan for Hashicorp Sentinel 0.26.2
Project description
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
-
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
-
Initialize Terraform with the desired backend configuration:
terraform init -reconfigure -backend-config=backends/dev.tfvars
-
Generate a Terraform plan:
terraform plan -out=tf.plan -var-file=environments/dev.tfvars
-
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
-
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
-
Convert the JSON plan to a mock Sentinel plan:
python -m sentinel_mock_plan --infile plan.json --outfile mock-tfplan-v2.sentinel
-
Use the generated mock plan in your Sentinel tests.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sentinel_mock_plan-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88533c32a8acda6140cb8efb304ee85e65834f2dfd736b866949192c396ebccf |
|
MD5 | d082af22f12544acd24586d9bda5c318 |
|
BLAKE2b-256 | dc5da30b521afd0d8b57dbe8902965db9c1cc3d9fad30149b7055312d154017a |