Python Terraform JSON configuration generator
Project description
Helicopyter
Helicopyter allows people to conveniently describe infrastructure using Python.
Perhaps like a helicopter hovering between the clouds and the ground, it allows this in a way that's less like the AWS Cloud Development Kit (CDK) and more like Terraform.
Background
Helicopyter uses CDKTF and is inspired by Configerator, Terraformpy, and Terraform JSON configuration syntax.
What Helicopyter does (goals)
- Fix the CDKTF naming mess. Meaningful names make review easy. Terraform's resource prefix style results in meaningful
names and aligns with "Namespaces are one honking great idea -- let's do more of those!" The AWS CDK style of
suffixing hashes generates difficult-to-review
terraform plan
output and ignores the existing namespaces. - Provide a directory structure that groups primarily by "codename" (could be called application, service) and secondarily by tool. For now it assumes f'deploys/{codename}/terraform'.
What Helicopyter will probably never do (non-goals)
- Terraform has a pretty good command line interface. Helicopyter focuses on generating JSON for it. Helicopyter does
not try to wrap the
terraform
command line interface itself and using CDKTF's wrapper is untested and not recommended.
What Helicopyter might do in the future
- Support multiple backend configurations per codename
- Iterate on the directory structure
__str__()
forto_string()
, etc.- Why do we need a Node.js server? Can we build dataclasses or Pydantic models out of the type annotations already being generated?
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
helicopyter-2024.30.1.tar.gz
(38.6 kB
view hashes)
Built Distribution
Close
Hashes for helicopyter-2024.30.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | def25778c6f5812d9ed0f8d6494127cdac34b4c7eaa7be02d6c3dcb3573e3e36 |
|
MD5 | e1dd332364b2d9c0cdbde51ae6fc5934 |
|
BLAKE2b-256 | 492c29bc5a9bd04a7967b7fdd492cd882b4a059ce2ef2ea7c49016a3fbf2cd86 |