InGraph is an Infrastructure Graph DSL for AWS CloudFormation.
Project description
InGraph ·
InGraph ain't template generator :stuck_out_tongue_winking_eye:
InGraph is a Declarative Infrastructure Graph DSL for AWS CloudFormation.
-
Declarative: Never again abstract away from CloudFormation. Simply declare your infrastructure components, without the hassle of YAML, and preserve the strict semantic of the AWS CloudFormation language. Veterans, build on top of your knowledge. Beginners, learn CloudFormation effectively.
-
Composable: Create encapsulated components with their assets and dependencies, then share or compose them to build more complex infrastructures. From simple nodes to your whole graph, everything is a deployable infrastructure unit.
-
Integrated: Leverage the evergrowing Python ecosystem. Benefit from static type checking, take advantage of autocompletion in your editor, or even consume open infrastructure components via the Python Package Index, among others.
Learn how to use InGraph in your own project.
Installation
InGraph requires Python 3.8 or newer. Feel free to use your
favorite tool or pip
to install the
ingraph
package.
python3.8 -m pip install --user ingraph
Verify your installation by invoking the ig
command. You should see
a welcome screen.
Example
We have several examples on the website. Here is the first one to whet your appetite.
ig cfn -i example.py -r HelloWorld -o example.yaml
This example creates a simple AWS Lambda function that returns a "Hello, World!" message.
You'll notice that CloudFormation parameters, along with their types and default values are simple constructor parameters, or that CloudFormation outputs are class attributes, or even that CloudFormation resource names are derived from variable names. It's only a taste of what is in store for you.
Contributing
The primary purpose of this project is to continue to evolve the core of InGraph. We are grateful to the community for any contribution. You may, for example, proof-read the documentation, submit bugs and fixes, provide improvements, discuss new axes of evolution, or spread the word around you.
Thanks
We want to thank and express our gratitude to Ben Kehoe. Without his guidance and support, this project wouldn't have been possible.
License
Unless otherwise stated, the source code of the project is released under the GNU Affero General Public License Version 3. Please note, however, that all public interfaces subject to be embedded within the source code of your infrastructure are released under the Apache License Version 2. Refer to the header of each file or to the LICENSE file present in the parent directory where appropriate.
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
File details
Details for the file ingraph-0.2.1.tar.gz
.
File metadata
- Download URL: ingraph-0.2.1.tar.gz
- Upload date:
- Size: 33.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bb6fd10ac51a8feefab5a56a4d625ec3782fb290370d6d4d2194ececbd93989 |
|
MD5 | 12a4f4cd7fab9a10b9c0fec68d2bb594 |
|
BLAKE2b-256 | a440c608fc45295fa40d9481e88d71ce9b0faeaf19a1c0574d6b96cc3aaec012 |
File details
Details for the file ingraph-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: ingraph-0.2.1-py3-none-any.whl
- Upload date:
- Size: 36.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7af5c6a3b2c410071b70aa6a505c96fe12ecd8fb7a89a25c61f32c3da9a3e30 |
|
MD5 | b76f6805e9dd63a0836026257a895307 |
|
BLAKE2b-256 | de6d65f6cbffa477ac493c7261eb2cf9291908308925f3d885acc7790e8d4653 |