{ "info": { "author": "Matt Rabinovitch and Connor Poole", "author_email": "connor.poole@daqri.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Build Tools" ], "description": "Terraform Wrapper\n=================\n\nThis project is intended to provide a wrapper around terraform for any projects where infrastructure might be duplicated in different environments. If you maintain different environments (dev, stage, prod) in separate regions, data centers, or different clouds this tool will help you maintain consistency across your infrastructure.\n\nThe Fundamentals\n+++++++++++++\n\n**Requirements**\nyou must have AWS credentials, and terraform already installed.\n\n**Project Structure**\nThis project requires the following format:\n\n```\n .\n \u251c\u2500\u2500 environments\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 dev\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 dev.tf\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 environment_vars.json\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 hub\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 hub.tf\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 prod\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 prod.tf\n \u251c\u2500\u2500 main.tf\n \u2514\u2500\u2500 variables.tf\n```\n\nIn each project shared resources and variables are placed at the top level. Environment specific resources are placed under ``./environments//``. The file ``./environment/environment_vars.json`` stores the information about your AWS remote state.\n\n**Package Use**\n\nEvery time you run this package you need to specify the environment and the action. the environment is the name of the folder under ``./environments`` and the action is the typical action passed to terraform (ie. plan, destroy, apply, etc.)\n\nA sample command would be: ``tf -environment prod -action plan``\n\n**Usage Details**\nWhen you run this command the tf-wrapper will:\n- Symlink all files under ``./environments//`` into the top level directory.\n- It will delete the ``.terraform/terraform.tfstate`` and ``.terraform/terraform.tfstate.backup`` files as this project requires remote state config, negating the need for local copies of state after the run has completed.\n- For commands ``apply`` and ``destroy`` the resulting run state will automatically be pushed.\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cpoole/tf-wrapper", "keywords": "setuptools infrastructure terraform aws development", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "tf-wrapper", "package_url": "https://pypi.org/project/tf-wrapper/", "platform": "", "project_url": "https://pypi.org/project/tf-wrapper/", "project_urls": { "Homepage": "https://github.com/cpoole/tf-wrapper" }, "release_url": "https://pypi.org/project/tf-wrapper/1.0.0/", "requires_dist": [ "tf-wrapper", "check-manifest; extra == 'dev'", "coverage; extra == 'test'" ], "requires_python": "", "summary": "A terraform wrapper", "version": "1.0.0" }, "last_serial": 2465724, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "e754fa81e5d6c5a428db41fd63ce8d36", "sha256": "667ba0230390727a233f4936558f4779311c998b2e0974039b8a32a5048dae11" }, "downloads": -1, "filename": "tf_wrapper-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e754fa81e5d6c5a428db41fd63ce8d36", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4126, "upload_time": "2016-07-14T19:28:34", "url": "https://files.pythonhosted.org/packages/73/1d/9f8c4654cb1b364a0289a40cdfa167daa8026e0809f07abdf61ff4bb6c3e/tf_wrapper-0.0.1-py2.py3-none-any.whl" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "75c01ac7a7f2f44fb6f3be96b8bd7716", "sha256": "56c13634c7dc5d8f6291cbb112b12ebdfd2e571f7f71a91cbb85d395c9c63d9a" }, "downloads": -1, "filename": "tf_wrapper-0.0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "75c01ac7a7f2f44fb6f3be96b8bd7716", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4409, "upload_time": "2016-07-15T01:46:01", "url": "https://files.pythonhosted.org/packages/d8/68/b1abf2f58069cf7ee991b3f35994fb1095221814b0c3b3432b6020ade081/tf_wrapper-0.0.10-py2.py3-none-any.whl" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "ee86612b52fcecdd9993a8897338eac6", "sha256": "7c46f8d52964674b8733afa6f1e819523ef23adb420baaca13ae66ddcf03e85b" }, "downloads": -1, "filename": "tf_wrapper-0.0.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee86612b52fcecdd9993a8897338eac6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4432, "upload_time": "2016-07-15T08:43:26", "url": "https://files.pythonhosted.org/packages/64/5c/6ddb1e9d36b076240baecaf0d0337f1d6da6b0f8b5a40e5d3a069ad08204/tf_wrapper-0.0.11-py2.py3-none-any.whl" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "4dc1f4f856c1760b98721c2cb69a7418", "sha256": "18e208cf7357a20bca4abc7fb3a6867f95cc150bb7c8f8d9862f5193ab7cfa48" }, "downloads": -1, "filename": "tf_wrapper-0.0.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4dc1f4f856c1760b98721c2cb69a7418", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4439, "upload_time": "2016-07-15T21:28:46", "url": "https://files.pythonhosted.org/packages/ab/0e/851ef19668f5661469fcdbccd1447fcdb56e983853e80d7390950da39630/tf_wrapper-0.0.12-py2.py3-none-any.whl" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "e214d289f8aadc35df26fbf2387f05b3", "sha256": "62e3990a6a0de4778af7594c47d37ce69a3a068305980f2c5edbc427a512b104" }, "downloads": -1, "filename": "tf_wrapper-0.0.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e214d289f8aadc35df26fbf2387f05b3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4465, "upload_time": "2016-07-16T02:38:38", "url": "https://files.pythonhosted.org/packages/c4/60/7b8483a9bf22f9794af006cbd27127bdc755de54f08a9fe77e99eb57f4dc/tf_wrapper-0.0.13-py2.py3-none-any.whl" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "1dee563ee065750bceafedae82ee88c7", "sha256": "45d089bc4c8f8e123ba4fe16816001e68a96c39a9c876bf268d5972dfdea3a6c" }, "downloads": -1, "filename": "tf_wrapper-0.0.14-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1dee563ee065750bceafedae82ee88c7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4472, "upload_time": "2016-07-16T03:07:48", "url": "https://files.pythonhosted.org/packages/f8/1c/5ee56e6aefbc31a5452c5408636c83100a17c0c5a6ea9bcfa853685949ba/tf_wrapper-0.0.14-py2.py3-none-any.whl" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "af236782d05d2e3231084836afdb4e68", "sha256": "183dca3e56aa5f7c6806334549f5ec84d20b9ec156082fcaf29ae37bf91503f9" }, "downloads": -1, "filename": "tf_wrapper-0.0.15-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "af236782d05d2e3231084836afdb4e68", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4480, "upload_time": "2016-07-16T03:10:11", "url": "https://files.pythonhosted.org/packages/8f/fa/e92f0d5663bc69a2d68cff34c4dfd49ba0fe358bbb9086d6ca8e5e5ac55a/tf_wrapper-0.0.15-py2.py3-none-any.whl" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "3e75b6e4ffe31d29c697b9d1c2b9446b", "sha256": "2ca40ba16893cb763c69b3245fa9ee0700b4ed48767df461d2b8fbfb99fbeccb" }, "downloads": -1, "filename": "tf_wrapper-0.0.16-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3e75b6e4ffe31d29c697b9d1c2b9446b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4492, "upload_time": "2016-07-16T18:54:57", "url": "https://files.pythonhosted.org/packages/9b/8c/ce8b8a5207b59599a0453bcf4bdd4d89ab9cbe351d047ec12ca97b1fade6/tf_wrapper-0.0.16-py2.py3-none-any.whl" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "221fe94f9b36f2a86e8e8b480155f788", "sha256": "f782126c669622a92a4b6554fc6300198cea6c0080cc503981c888e1d6b25cde" }, "downloads": -1, "filename": "tf_wrapper-0.0.17-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "221fe94f9b36f2a86e8e8b480155f788", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4495, "upload_time": "2016-07-18T22:52:55", "url": "https://files.pythonhosted.org/packages/7e/dc/07eee5a725019f36aaa1399e3beccd14e0b4cf06cf55893b4f5c0b9f680c/tf_wrapper-0.0.17-py2.py3-none-any.whl" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "f2359160c7ef5fd2cdd9795a31207caa", "sha256": "128359e94e9e0e761fe8b8195855c74651e64ec3ba7b9e220f4d1a9af9412b18" }, "downloads": -1, "filename": "tf_wrapper-0.0.18-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f2359160c7ef5fd2cdd9795a31207caa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4368, "upload_time": "2016-07-19T00:02:14", "url": "https://files.pythonhosted.org/packages/82/fe/48d77e6c2ddbb9f3b71c808a04514f995030a942e3bb5f63bbcc79f6b4e0/tf_wrapper-0.0.18-py2.py3-none-any.whl" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "2f30c1a4a2d5eea90f806dd9510d3f9f", "sha256": "bf96fd59bd5c9adaf77cb290eaf3e804cbdc354e59cf3ed7a92c99931b3de4c2" }, "downloads": -1, "filename": "tf_wrapper-0.0.19-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2f30c1a4a2d5eea90f806dd9510d3f9f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4360, "upload_time": "2016-07-19T00:31:24", "url": "https://files.pythonhosted.org/packages/3e/8d/e11ad9a662833bf8470b3ef153a93595d2e090d64ee8fae3da6237b2af0f/tf_wrapper-0.0.19-py2.py3-none-any.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "2c27e83fc495103cca74f41c9b2d160a", "sha256": "b1a5d11ade4bcf4d07b6c5ab6ca9672dd452288a2aa5e2a22319a54f716d0dba" }, "downloads": -1, "filename": "tf_wrapper-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c27e83fc495103cca74f41c9b2d160a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4292, "upload_time": "2016-07-14T20:10:34", "url": "https://files.pythonhosted.org/packages/f5/ec/456ad6574f930f899f0dd57ed861668792e7333a34ed75ca5e026fc61904/tf_wrapper-0.0.2-py2.py3-none-any.whl" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "b843f6f515ffc28e74f7202f0e6d1391", "sha256": "71567f01a5545f20afd03881a24dac4fb41ebfd132e2e4f557c55f5426cd1195" }, "downloads": -1, "filename": "tf_wrapper-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b843f6f515ffc28e74f7202f0e6d1391", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4293, "upload_time": "2016-07-14T20:13:46", "url": "https://files.pythonhosted.org/packages/07/b7/0b0613d95615197212902baaef8ab9c9cf8225bf835b4fd2b9cec4727f70/tf_wrapper-0.0.3-py2.py3-none-any.whl" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "09523827511063bb56a3876212ac22d8", "sha256": "3da1a682ef6cc4d7654c1ad3b515357f38ed874f079c9ae00667145f3e316198" }, "downloads": -1, "filename": "tf_wrapper-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "09523827511063bb56a3876212ac22d8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4292, "upload_time": "2016-07-14T20:16:47", "url": "https://files.pythonhosted.org/packages/05/90/5636f172c064d25439963ad9a0b699f42dcfcbdb1d5820926d583380f290/tf_wrapper-0.0.4-py2.py3-none-any.whl" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "60a56eff3effc33d7c9d915c69cd2982", "sha256": "c3c6532710dde8ba48d9136e44676fc796ac89d04e5fe4988b56b1644abe8496" }, "downloads": -1, "filename": "tf_wrapper-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "60a56eff3effc33d7c9d915c69cd2982", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4298, "upload_time": "2016-07-14T20:20:57", "url": "https://files.pythonhosted.org/packages/58/a4/c728bdf258dcf89c7ab7cad2c21b8f1e2f1e2016977bb200ea12fc37df0b/tf_wrapper-0.0.5-py2.py3-none-any.whl" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "20cfb84fedc2396b080809e330dd31c6", "sha256": "e659af555694a85f69224988bf081f68d42bd70c04b98fc05a3ee9d0c6ee7bc6" }, "downloads": -1, "filename": "tf_wrapper-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "20cfb84fedc2396b080809e330dd31c6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4331, "upload_time": "2016-07-14T20:32:37", "url": "https://files.pythonhosted.org/packages/d1/22/1e8c3cc7dc082c98718d2ba74545aeb02467f1e1922c0210eb80cafbb801/tf_wrapper-0.0.6-py2.py3-none-any.whl" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "af354d14caa52bbc53ba6426c7a59c91", "sha256": "1195634055b7d7a8d61320e39cda844417726e0bd1355ac13d638917b2e97614" }, "downloads": -1, "filename": "tf_wrapper-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "af354d14caa52bbc53ba6426c7a59c91", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4342, "upload_time": "2016-07-14T20:45:28", "url": "https://files.pythonhosted.org/packages/ee/4f/9c95c07e5a849271db7e375aba6b3ee08652facfbe89b42e318d61078fcd/tf_wrapper-0.0.7-py2.py3-none-any.whl" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "a76077b2dc7d150a34792373960bcc2d", "sha256": "c2fb8a8272fe0283e555e7b32d70fbbe5636bc38efdc8d1fa25222745ba98512" }, "downloads": -1, "filename": "tf_wrapper-0.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a76077b2dc7d150a34792373960bcc2d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4385, "upload_time": "2016-07-15T01:20:36", "url": "https://files.pythonhosted.org/packages/79/9f/1d0f3672aac68f6e41cdd24f9ecb664cdd77f6eefb50896b4b60d890c6cc/tf_wrapper-0.0.8-py2.py3-none-any.whl" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "4f5be15c0fd9bde1309fbfc945b1bb86", "sha256": "81252275948be041b838f2c772bafc94b3a61c8c0ded1c93599e0ee25395a57d" }, "downloads": -1, "filename": "tf_wrapper-0.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4f5be15c0fd9bde1309fbfc945b1bb86", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4386, "upload_time": "2016-07-15T01:22:36", "url": "https://files.pythonhosted.org/packages/92/8b/78bae0daa2bc81cae564fb0899ccac92c617ee81befc3df033b75b0fd70c/tf_wrapper-0.0.9-py2.py3-none-any.whl" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "4bb4c13b2163fed1bba68cfdff305635", "sha256": "b656a14b7c2aeac1d959d2fb35d17d21ac60908a27a73eba47fe8689e56d8a71" }, "downloads": -1, "filename": "tf_wrapper-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4bb4c13b2163fed1bba68cfdff305635", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5998, "upload_time": "2016-11-17T00:31:14", "url": "https://files.pythonhosted.org/packages/22/ca/dc1e425c134ae4e4ac903420b211e0b34e4a90b894fb7f900431991832d0/tf_wrapper-0.1.0-py2.py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "8d5c516200a6a48f6cb4430115ed83a2", "sha256": "69eac49545675fcf3c585434c650b2f6b2d7eb4f41686d86384623145e0bb7bc" }, "downloads": -1, "filename": "tf_wrapper-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8d5c516200a6a48f6cb4430115ed83a2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6272, "upload_time": "2016-11-17T04:32:13", "url": "https://files.pythonhosted.org/packages/dd/ad/c0d2c48a25732cee3815ec699486da2893ead0a08a9ca9946ae48d6f93d5/tf_wrapper-0.1.1-py2.py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d8827006923148cd92e0494b23740f05", "sha256": "1df7bc13f34cbfe55d15d3acc019622215030e0842558a3c1315a27cb0b0d181" }, "downloads": -1, "filename": "tf_wrapper-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d8827006923148cd92e0494b23740f05", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6275, "upload_time": "2016-11-17T04:34:22", "url": "https://files.pythonhosted.org/packages/63/65/aac0d1828760cc549d50efc8b562991bc55090e2927bcb36d9672df9ea6c/tf_wrapper-0.1.2-py2.py3-none-any.whl" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "9e938a9f1f90ed5262e05b3754fb81f1", "sha256": "c57c07bdddd2e79b476dc6af5d8bd100b33d8b01bf55fced859e0b85741ea2d3" }, "downloads": -1, "filename": "tf_wrapper-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9e938a9f1f90ed5262e05b3754fb81f1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6554, "upload_time": "2016-11-17T07:08:23", "url": "https://files.pythonhosted.org/packages/83/ba/e509e1ec429e9b9606c82e5dd83932bc7c5e6316d18ab9555c7d5170227c/tf_wrapper-1.0.0-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9e938a9f1f90ed5262e05b3754fb81f1", "sha256": "c57c07bdddd2e79b476dc6af5d8bd100b33d8b01bf55fced859e0b85741ea2d3" }, "downloads": -1, "filename": "tf_wrapper-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9e938a9f1f90ed5262e05b3754fb81f1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6554, "upload_time": "2016-11-17T07:08:23", "url": "https://files.pythonhosted.org/packages/83/ba/e509e1ec429e9b9606c82e5dd83932bc7c5e6316d18ab9555c7d5170227c/tf_wrapper-1.0.0-py2.py3-none-any.whl" } ] }