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 CDK style 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
f'deploys/{cona}/terraform'
directory structure, grouping- Primarily by "codename" (cona), probably synonymous with application, deployment, and service
- Secondarily by tool, such as
ansible
,docker
,terraform
,python
- Enable hand-written Hashicorp Configuration Language (HCL) files and auto-generated HCL/JSON to co-exist, allowing incremental adoption.
- Golang Terraform has a pretty good command line interface. The
ht[aip]
functions inincludes.sh
try to wrap it very lightly.
What Helicopyter will probably never do (non-goals)
- Support languages other than Python
- Make use of the CDKTF's command line interface. Integration with it 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?
- Provide helper classes or functions for useful but annoyingly verbose patterns such as local-exec provisioner command
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.2.tar.gz
(38.8 kB
view hashes)
Built Distribution
Close
Hashes for helicopyter-2024.30.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5257133e7c9e77d3d7573f6865429184a2e49dac2385c7a1c27a1c3bcf5cdaa4 |
|
MD5 | ff5c61de0f3a1c7c040cb1e1cc450a57 |
|
BLAKE2b-256 | a0e0e2b20fddd055448fb9bbb44e64f989c14e063b3b788330cb89013525be0a |