{ "info": { "author": "Sportsbet", "author_email": "engineering@sportsbet.com.au", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# ennio\n\n[![image](https://img.shields.io/pypi/v/ennio.svg)](https://github.com/sportsbet/ennio)\n[![image](https://img.shields.io/pypi/l/ennio.svg)](https://github.com/sportsbet/ennio)\n[![image](https://img.shields.io/pypi/pyversions/ennio.svg)](https://github.com/sportsbet/ennio)\n\n[![image](./doc/ennio-logo.png)](https://github.com/sportsbet/ennio)\n\nEnnio is an interstack orchestration framework for AWS CloudFormation\n\n## Installation\n\nUse the package manager [pip](https://pip.pypa.io/en/stable/) to install foobar.\n\n```bash\npip install ennio\n```\n\n## Why\n\nCloudformation alone cannot do all the infrastructure work. Frequently we need some extra operational steps between deployments of Cloudformation stacks. Moreover, we often split a huge application into several smaller stacks to minimize the maintenance effort. It is good to have a mechanism to do all the stack deployments in a single step, and possibly do rollback all the changes to a previous when a stack deployment failed. Ennio did all that for us.\n\nThis framework, like many others, are opinionated, in that:\n\n1. We believe in reproducible deployments. For each build of infra code, we should create a bundle that can be deployed and redeployed anytime we like.\n2. We had made a decision to store this bundle in S3.\n3. Although we had provided a way to generate cloudformation templates using jinja2, and prefer that all templates be written in yaml, you can still bring your own way to generate all the templates.\n\n## Example\n\nPlease take a look at the sample project in example dir.\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\nPlease make sure to update tests as appropriate.\n\n## License\n\n[Apache](https://choosealicense.com/licenses/apache/)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/sportsbet/ennio", "keywords": "", "license": "Apache-2.0", "maintainer": "", "maintainer_email": "", "name": "ennio", "package_url": "https://pypi.org/project/ennio/", "platform": "", "project_url": "https://pypi.org/project/ennio/", "project_urls": { "Homepage": "https://github.com/sportsbet/ennio" }, "release_url": "https://pypi.org/project/ennio/0.1.2/", "requires_dist": [ "PyYAML", "boto3", "jinja2" ], "requires_python": "", "summary": "interstack orchestration framework for AWS CloudFormation", "version": "0.1.2" }, "last_serial": 5454458, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "6cf5ac80a819c286997cd8eaaabffba8", "sha256": "808e65c6c7bd110a527e2db2ebf734181c6e40211c557493f8979dc70e2c86d2" }, "downloads": -1, "filename": "ennio-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6cf5ac80a819c286997cd8eaaabffba8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14643, "upload_time": "2019-06-24T06:13:28", "url": "https://files.pythonhosted.org/packages/59/fb/feaab387ce28c4e3bcf90d4fe0f907f24a8e6d6bfc977bb5ea13b87a47c7/ennio-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c853f39abe6135de6825d020d071845", "sha256": "7617dd3f05cd0ab12fa899d2836e41acc43aa12f5be5fcc84d45d5dd7c0021be" }, "downloads": -1, "filename": "ennio-0.1.tar.gz", "has_sig": false, "md5_digest": "4c853f39abe6135de6825d020d071845", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9455, "upload_time": "2019-06-24T06:13:30", "url": "https://files.pythonhosted.org/packages/d5/10/ca2cc6387e3988903cdf8844b6eec842216ea7160651b3b2251413ecb4d8/ennio-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c76e9c8c6c6781a7e9eef9c60d2357a6", "sha256": "20992ecead7d74a52c0752d5f4f99bf48602c11f7193da6358b9e6498a1d4016" }, "downloads": -1, "filename": "ennio-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c76e9c8c6c6781a7e9eef9c60d2357a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14929, "upload_time": "2019-06-26T05:15:11", "url": "https://files.pythonhosted.org/packages/2c/c6/d4f6dbd4aca514764e3d466f1781e645e013966614c6145e1b7700242d8f/ennio-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d651ee66db575520311f26a9e2b115c", "sha256": "d49c83bbcadb85353a6116ae088880403b1cf78ba78adfcfe2d73667aece8f88" }, "downloads": -1, "filename": "ennio-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4d651ee66db575520311f26a9e2b115c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9667, "upload_time": "2019-06-26T05:15:13", "url": "https://files.pythonhosted.org/packages/be/d9/32c37275078f96180aebe8de7f5d733b7b1548f504ccc99f7c057c210337/ennio-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e1afd3e286de608cac311ae04bdaa3e8", "sha256": "6fdb976c5ca2efaad1940f6678adb33022ddf3613dea71a4f3f3d1dda9568c0c" }, "downloads": -1, "filename": "ennio-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e1afd3e286de608cac311ae04bdaa3e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15841, "upload_time": "2019-06-27T00:42:38", "url": "https://files.pythonhosted.org/packages/ab/e6/5209fc6e54247a7cd14ab48ada67bd2f9084dca66def0b72f1be458c2917/ennio-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4504042ee2bd4313bd9e2df4296e6ff2", "sha256": "b609f5bb06b64344727b1e4caf82a5e65bdda128ecdfc6c0097c28f228081ea3" }, "downloads": -1, "filename": "ennio-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4504042ee2bd4313bd9e2df4296e6ff2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10908, "upload_time": "2019-06-27T00:42:39", "url": "https://files.pythonhosted.org/packages/21/31/fc9e22da60588004ce0a8b7c5cad05b2e1b71d16a2a9d985255d09be6740/ennio-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e1afd3e286de608cac311ae04bdaa3e8", "sha256": "6fdb976c5ca2efaad1940f6678adb33022ddf3613dea71a4f3f3d1dda9568c0c" }, "downloads": -1, "filename": "ennio-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e1afd3e286de608cac311ae04bdaa3e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15841, "upload_time": "2019-06-27T00:42:38", "url": "https://files.pythonhosted.org/packages/ab/e6/5209fc6e54247a7cd14ab48ada67bd2f9084dca66def0b72f1be458c2917/ennio-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4504042ee2bd4313bd9e2df4296e6ff2", "sha256": "b609f5bb06b64344727b1e4caf82a5e65bdda128ecdfc6c0097c28f228081ea3" }, "downloads": -1, "filename": "ennio-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4504042ee2bd4313bd9e2df4296e6ff2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10908, "upload_time": "2019-06-27T00:42:39", "url": "https://files.pythonhosted.org/packages/21/31/fc9e22da60588004ce0a8b7c5cad05b2e1b71d16a2a9d985255d09be6740/ennio-0.1.2.tar.gz" } ] }