THipster is a tool dedicated to simplifying the difficulty associated with writing Terraform files. It allows users to write infrastructure as code in a simplified format, using either YAML (with JINJA) or the dedicated Thipster DSL.
Project description
THipster
THipster is a tool dedicated to simplifying the difficulty associated with writing Terraform files. It allows users to write infrastructure as code in a simplified format, using either YAML (with JINJA) or the dedicated Thipster DSL.
Written entirely in Python, it leverages the Python CDK for Terraform to create Terraform files and apply them to the chosen provider.
Technology Stack
Written in Python 3.11, thipster is designed as a python package, to be used either as a standalone tool, or as a module inside a running process like a CI/CD pipeline.
Project Status
THipster is currently in an active development state. If you want to know more, please check the CHANGELOG for more details.
Dependencies
In order to user THipster, you will need to have the following installed:
- Python (3.11+)
- pipenv v2021.5+
- Terraform CLI (1.2+)
- Node.js and npm v16+.
Installation
To use THipster, you can simply install the package with pip:
pip install thipster
The list of available versions can be found on PyPI.
Usage
You can use THipster in two ways:
- By leveraging the THipster CLI
- By directly using the THipster Python package in your own code
Main feature:
- Generate Terraform files from a YAML+JINJA or THIPS file:
from thipster.engine.Engine import Engine as ThipsterEngine
from thipster.repository.GithubRepo import GithubRepo
from thipster.parser.ParserFactory import ParserFactory
from thipster.auth.Google import GoogleAuth
from thipster.terraform.CDK import CDK
# create new THipster engine
engine = ThipsterEngine(ParserFactory(), GithubRepo('THipster/models'), GoogleAuth, CDK())
# generate Terraform files and plan from a YAML+JINJA file
list_dir, tf_plan = engine.run('path/to/file/or/directory')
print(tf_plan)
How to test the software
To run the tests, you can use the following command:
pip install -e .[test]
pytest tests
Known issues
All known issues, bugs, and feature requests are tracked in the Issue tracker.
Getting help
If you have questions, concerns, bug reports, etc, please file an issue in this repository's Issue tracker.
Getting involved
To install the project for development, you can use the following command:
pip install -r requirements.txt && pip install -e .[dev,test,doc]
pre-commit install && pre-commit run --all-files
For more information on how to help out, please check the CONTRIBUTING file.
Open source licensing info
Credits and references
- Projects that inspired you
- Related projects
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
File details
Details for the file thipster-0.14.4.tar.gz
.
File metadata
- Download URL: thipster-0.14.4.tar.gz
- Upload date:
- Size: 37.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/37.3 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/2.0.2 tqdm/4.65.0 importlib-metadata/6.6.0 keyring/23.13.1 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b20abe86290d84c4e2dd4386d760a892e79a0365f33c470f2a1e9c3a3cb2a43 |
|
MD5 | 10de3c92d7cf0f743a2ab5173e9e35b1 |
|
BLAKE2b-256 | bf66ee7f4e3df6639d71e91051850d8c9c1885bb217fcb80c87ab6e399196eb3 |
File details
Details for the file thipster-0.14.4-py3-none-any.whl
.
File metadata
- Download URL: thipster-0.14.4-py3-none-any.whl
- Upload date:
- Size: 48.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/37.3 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/2.0.2 tqdm/4.65.0 importlib-metadata/6.6.0 keyring/23.13.1 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6dd23c992cd6e48f3011c34a15fc2f06d62ec44134e2b8ee1d365b1abc72f3b |
|
MD5 | 9891eb8ac5627fb9e75f580088a95ac4 |
|
BLAKE2b-256 | e1e04ce6af1685572c6d57b0ee0ec740a8c11910b80f8d91c6ed43126738faeb |