Skip to main content

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:

Installation

To use THipster, you can simply install the package with pip:

pip install thipster

If you want to install the google dependencies aswell use

pip install thipster[google]

The list of available versions can be found on PyPI.

Usage

You can use THipster in two ways:

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,google]
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

  1. LICENSE
  2. CFPB Source Code Policy

Credits and references

  1. Projects that inspired you
  2. Related projects

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

thipster-0.16.1.tar.gz (39.0 kB view details)

Uploaded Source

Built Distribution

thipster-0.16.1-py3-none-any.whl (50.4 kB view details)

Uploaded Python 3

File details

Details for the file thipster-0.16.1.tar.gz.

File metadata

  • Download URL: thipster-0.16.1.tar.gz
  • Upload date:
  • Size: 39.0 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.3 tqdm/4.65.0 importlib-metadata/6.6.0 keyring/23.13.1 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.12

File hashes

Hashes for thipster-0.16.1.tar.gz
Algorithm Hash digest
SHA256 b90813a1d89f0692b9cd153c1b41c6364d01024a9c14df488dcfd51dc7511ea1
MD5 22f88f0893ed8ce5cc6238f86472883e
BLAKE2b-256 a6ea31724aa3d8f20af34efb20d05e4ed7047a36b73d90d74b8440dac81bdd9d

See more details on using hashes here.

File details

Details for the file thipster-0.16.1-py3-none-any.whl.

File metadata

  • Download URL: thipster-0.16.1-py3-none-any.whl
  • Upload date:
  • Size: 50.4 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.3 tqdm/4.65.0 importlib-metadata/6.6.0 keyring/23.13.1 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.12

File hashes

Hashes for thipster-0.16.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3fd39f7b6fb74ac83f34b4429d8ccb9ed97a7b8581c83894ceb0c7b58bfef18f
MD5 6eaf2ff58894ee466f1c88db5728efa1
BLAKE2b-256 9c799dbcaa573bd0e53e5214d2bc34f4e6ab316aef05802a008fca9ae28e276c

See more details on using hashes here.

Supported by

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