{ "info": { "author": "Nic Cheneweth", "author_email": "nic.cheneweth@thoughtworks.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3" ], "description": "# kvs3\n\nkvs3 is a tool for managing environment configuration values. It is intended for use with aws environments and uses an s3 \nbucket as a general key/value store. \n\n## Installing\n\n```bash\n$ pip install kvs3\n```\n\n## Authenticating\n\n`kvs3` assumes running in an environment with an authenticated AWS user which has the appropriate permission to read/write \nvalues to an s3 bucket used as the key/value store. Uses boto3 authentication method hierarchy in attempting aws access. \n\n## Setting up s3\n\nAny s3 bucket can be used, but recommend configuring a bucket with versioning and server-side encryption. Kvs3 will use \nthe following sources (in order) to determine the s3 bucket name: \n\n* `--bucket` flag included in parameters\n* shell Environment var `KVS3_BUCKET`\n* Run `$ kvs3 init` and provide bucket name. Written to .kvs3 file used by `kvs3` to find bucket\n\n## Usage\n\n### Writing Keys\n\n```bash\n$ kvs3 write \n``` \n\nThis command will write a value to a key in s3 under the service path. \n\nExample: \n```bash\n$ kvs3 --bucket my-key-value-store write my-app-env min-nodes 3\n```\n\nWill create an object in the s3 bucket named `my-key-value-store` with the name `my-app-env/min-nodes` and the contents `3`. \n\n### Listing Keys\n\n```bash\n$ kvs3 list \nKEY SIZE MODIFIED\nmin-nodes 3 2019-06-27 23:37:48\nmax-nodes 10 2019-06-30 23:28:52\n```\n\n`list` will show the key names for a given service, along with other the size in bytes of the value and the date when \nthe key was last modified. \n\n### Reading Keys\n\n```bash\n$ kvs3 read \n```\n \n`read` outputs the value of a single configuration key. \n\n### Setting shell environment with multiple key values\n\nThe setenv command is used as part of a deployment pipeline to setup runtime environment variables for use in a \ndeployment pipeline. Create a `keyfile` with a simple list of key values, such as:\n\n```bash\n$ cat < env.vars\nMIN_NODES\nMAX_NODES\nDOCKER_REGISTRY\n```\n\nNow, use setenv to create the output used by `bash source` to define Environment variables. \n\n```bash\n$ kvs3 setenv my-app-env env.vars > local.env\n```\nResults in local.env containing the following example contents:\n\n```bash\n# source my-app-env environment config \nexport MIN_NODES=3\nexport MAX_NODES=5\nexport DOCKER_REGISTRY=quay.io\n```\n\nThis file can be used `$source local.env` in a linux environment to create the environment configuration values used \nby a deployment pipeline. \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/ncheneweth/kvs3", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "kvs3", "package_url": "https://pypi.org/project/kvs3/", "platform": "", "project_url": "https://pypi.org/project/kvs3/", "project_urls": { "Homepage": "https://github.com/ncheneweth/kvs3" }, "release_url": "https://pypi.org/project/kvs3/0.0.5/", "requires_dist": [ "invoke", "boto3", "pyyaml", "requests" ], "requires_python": "", "summary": "Command-line tool to interact with s3 bucket as a key/value store", "version": "0.0.5" }, "last_serial": 5479781, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "648d9eefb551864832f0123544dd2fec", "sha256": "cd7862c8ebecba408fa3e50b1180d0a5c1eaef2376eb9f64c0c450cf29dfc566" }, "downloads": -1, "filename": "kvs3-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "648d9eefb551864832f0123544dd2fec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5330, "upload_time": "2019-07-02T02:08:49", "url": "https://files.pythonhosted.org/packages/fc/f0/24a3992cc3156b89abd3e0cbcb703d4347c98b88e0814bd89f50ec6dc79d/kvs3-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb5b9b664754d25613dd4bc723fa181b", "sha256": "09e71ed24abe4330fe60b5ffaf7fe70763751b97a9364ed9afe520a42f42bb1e" }, "downloads": -1, "filename": "kvs3-0.0.1.tar.gz", "has_sig": false, "md5_digest": "fb5b9b664754d25613dd4bc723fa181b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3999, "upload_time": "2019-07-02T02:08:51", "url": "https://files.pythonhosted.org/packages/cd/0d/8a535c4419cda274f1e16cc283cd0a3303f3a4edd581c48e3821ba1eeed1/kvs3-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "9e1a9202302098b56ff1506472595305", "sha256": "19958c7809d5c9eba0186092806c926d26ce0cee1b7eafefb3c731f6c5f938cd" }, "downloads": -1, "filename": "kvs3-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9e1a9202302098b56ff1506472595305", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5330, "upload_time": "2019-07-02T02:11:29", "url": "https://files.pythonhosted.org/packages/87/63/631117a050f68a0a08ae7f0fa3c60c022d242ac2ee3c496af767be1de20d/kvs3-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8851f66528d4f84ff54504903ce5d68f", "sha256": "c9cec65ce9e2bcf5537e62e96ca192ba6028d3dc0e9eb8d28320c14a6ad4281a" }, "downloads": -1, "filename": "kvs3-0.0.2.tar.gz", "has_sig": false, "md5_digest": "8851f66528d4f84ff54504903ce5d68f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3995, "upload_time": "2019-07-02T02:11:30", "url": "https://files.pythonhosted.org/packages/da/30/ada15f51859e4f41d2b8ddd9aa5f271271bde0b911041d3d347911eadbb1/kvs3-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "23d43209f0d64084364df033d94f9a6e", "sha256": "c4fc1602890757b6bc38543a3daa35f2d671f48196375e6030f60e441e878510" }, "downloads": -1, "filename": "kvs3-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "23d43209f0d64084364df033d94f9a6e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5326, "upload_time": "2019-07-03T05:16:07", "url": "https://files.pythonhosted.org/packages/ba/65/cc36df6b064c5e52c0b25a40bb14b6129b3af2bed6c0c3f8741624f43f8f/kvs3-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b45b6c737fe4c6a43822b64a4052a3c", "sha256": "edf5efc622635e6a6419299c39514a465b6d20a6d4dc54892ad6140d8f422914" }, "downloads": -1, "filename": "kvs3-0.0.3.tar.gz", "has_sig": false, "md5_digest": "6b45b6c737fe4c6a43822b64a4052a3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3985, "upload_time": "2019-07-03T05:16:10", "url": "https://files.pythonhosted.org/packages/c5/80/f69a3ee67f201f475260b4519eb1096ee68197f73a57319252fc202d5340/kvs3-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "ce1fdae83abd8c75e17f90b2a43314fc", "sha256": "0b8f9aa0335a69f681ce10c212ba5a89e05673d15930083c075d0248d36cecd3" }, "downloads": -1, "filename": "kvs3-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ce1fdae83abd8c75e17f90b2a43314fc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5329, "upload_time": "2019-07-03T05:48:12", "url": "https://files.pythonhosted.org/packages/0f/5f/8433b6f434eeb53d0b5fdd4afb830f277afddaea9810f287935ff23ebc8b/kvs3-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81ccb15d2a70d9f08a28272de5b4ffff", "sha256": "daf197871987347b5c940963fa350876ce721c12807f48f26bb4f622c136ce24" }, "downloads": -1, "filename": "kvs3-0.0.4.tar.gz", "has_sig": false, "md5_digest": "81ccb15d2a70d9f08a28272de5b4ffff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3983, "upload_time": "2019-07-03T05:48:14", "url": "https://files.pythonhosted.org/packages/50/3e/5a859099b2f7c65fdd90061fa16057171cb3cba599c4f2e2b5c4acf84b2f/kvs3-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "20da7238bde47ff3dfe2334ce80aca4f", "sha256": "b170aa7f27e7877d2a8e2d4ff62c2de33ecb1b9c816508fd3c47b73d1db907db" }, "downloads": -1, "filename": "kvs3-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "20da7238bde47ff3dfe2334ce80aca4f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5317, "upload_time": "2019-07-03T06:22:50", "url": "https://files.pythonhosted.org/packages/bc/ae/936aceaf497e29adce14481ab684002d5313d9c768f8ff67b74d863cbc0d/kvs3-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8b8de565121c2180c528d9a30fcd1e0", "sha256": "1582cc40e53a7406b60ad77938e3ff734bf340a0d03a376f73b9c9547dc63be8" }, "downloads": -1, "filename": "kvs3-0.0.5.tar.gz", "has_sig": false, "md5_digest": "a8b8de565121c2180c528d9a30fcd1e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3967, "upload_time": "2019-07-03T06:22:52", "url": "https://files.pythonhosted.org/packages/56/63/8a9173d0998605e9af6ba512d2df48de838272b26e89d81869202a244831/kvs3-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "20da7238bde47ff3dfe2334ce80aca4f", "sha256": "b170aa7f27e7877d2a8e2d4ff62c2de33ecb1b9c816508fd3c47b73d1db907db" }, "downloads": -1, "filename": "kvs3-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "20da7238bde47ff3dfe2334ce80aca4f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5317, "upload_time": "2019-07-03T06:22:50", "url": "https://files.pythonhosted.org/packages/bc/ae/936aceaf497e29adce14481ab684002d5313d9c768f8ff67b74d863cbc0d/kvs3-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8b8de565121c2180c528d9a30fcd1e0", "sha256": "1582cc40e53a7406b60ad77938e3ff734bf340a0d03a376f73b9c9547dc63be8" }, "downloads": -1, "filename": "kvs3-0.0.5.tar.gz", "has_sig": false, "md5_digest": "a8b8de565121c2180c528d9a30fcd1e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3967, "upload_time": "2019-07-03T06:22:52", "url": "https://files.pythonhosted.org/packages/56/63/8a9173d0998605e9af6ba512d2df48de838272b26e89d81869202a244831/kvs3-0.0.5.tar.gz" } ] }