Create a mock plan for Hashicorp Sentinel from 0.26.2 to 0.40.0
Project description
Sentinel Mock Plan
This project creates a mock plan for HashiCorp Sentinel 0.40.0 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.40.0. 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.40.0 (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
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sentinel-mock-plan-0.4.0.tar.gz.
File metadata
- Download URL: sentinel-mock-plan-0.4.0.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.0 CPython/3.10.18 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30a7db83672f6cdb00b8352c193f086068c68c37688b83bb8dcf90cd49102745
|
|
| MD5 |
291cfcbeeb6d5ad716bf99bc0f11febf
|
|
| BLAKE2b-256 |
b8d5202d303ed9ddde56bab8d299298a980d167217d3abbab6618fde997d7b43
|
File details
Details for the file sentinel_mock_plan-0.4.0-py3-none-any.whl.
File metadata
- Download URL: sentinel_mock_plan-0.4.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.10.18 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79e0b2179674188c48d76d5b03623035619563d7f3573c4a06f1b7c3cd327de7
|
|
| MD5 |
bac95781a5fdf111774666949d5dc1df
|
|
| BLAKE2b-256 |
e7b6636ff52294c583db9a758271e31841e1e445a90298d34e296a3f5f9de40f
|