{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "labels for each constraint label in each\nservice in a Docker Compose / Docker Stack file.\nHome-page: https://github.com/tiangolo/docker_auto_labels\nAuthor: Sebastian Ramirez\nAuthor-email: tiangolo@gmail.com\nLicense: MIT license\nDescription: # Docker Auto Labels\n [![](https://img.shields.io/pypi/v/docker-auto-labels.svg)](https://pypi.python.org/pypi/docker-auto-labels)\n \n [![](https://img.shields.io/travis/tiangolo/docker-auto-labels.svg)](https://travis-ci.org/tiangolo/docker-auto-labels)\n \n \n Automatically generate Docker Swarm mode node labels for each constraint label in each service in a Docker Compose / Docker Stack file.\n \n \n ## Description\n \n This command line package is made to be used with a Docker Swarm mode cluster.\n \n It will:\n * Read a Docker Compose / Docker Stack file.\n * Extract the node label constraints for each service.\n * Check that all the labels exist in the Docker Swarm mode cluster.\n * For each label that doesn't exist, create it in a random node in the cluster.\n \n Adding label constraints helps you ensure that all the \"stateful\"\n Docker services (like databases) are always deployed to the same\n node (specially useful in a multi-node cluster).\n \n This program will ensure that those labels exist in one node\n in the cluster, if they don't exist, they are created in one\n node chosen randomly.\n \n That way, the first time you deploy a stack, a random node will be assigned\n to each stateful service (by this command, right before the deployment).\n \n And for all subsequent deployments, the stateful services will go to the\n same nodes that they were using.\n \n For examples on how to use it, check: https://github.com/tiangolo/full-stack\n \n ## Credits\n \n This package was created with Cookiecutter_ and the `elgertam/cookiecutter-pipenv`_ project template, based on `audreyr/cookiecutter-pypackage`_.\n \n [Cookiecutter](https://github.com/audreyr/cookiecutter)\n [`elgertam/cookiecutter-pipenv`](https://github.com/elgertam/cookiecutter-pipenv)\n [`audreyr/cookiecutter-pypackage`](https://github.com/audreyr/cookiecutter-pypackage)\n \n ## License\n \n MIT License\n \n \n =======\n History\n =======\n \n 0.1.0 (2018-05-01)\n ------------------\n \n * First release on PyPI.\n \nKeywords: docker_auto_labels\nPlatform: UNKNOWN\nClassifier: Development Status :: 2 - Pre-Alpha\nClassifier: Intended Audience :: Developers\nClassifier: License :: OSI Approved :: MIT License\nClassifier: Natural Language :: English\nClassifier: Programming Language :: Python :: 3\nClassifier: Programming Language :: Python :: 3.4\nClassifier: Programming Language :: Python :: 3.5\nClassifier: Programming Language :: Python :: 3.6\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "docker-auto-labels", "package_url": "https://pypi.org/project/docker-auto-labels/", "platform": "", "project_url": "https://pypi.org/project/docker-auto-labels/", "project_urls": null, "release_url": "https://pypi.org/project/docker-auto-labels/0.2.3/", "requires_dist": [ "Click (>=6.0)", "docker", "pyyaml" ], "requires_python": "", "summary": "Automatically generate Docker Swarm mode node", "version": "0.2.3" }, "last_serial": 4305028, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c93cbdc075f6b0a2dae9b0d3ea7140c3", "sha256": "8546ae562842198bf42359eeb2413c256a05e4e22ac5b148ad46c686d543cb1a" }, "downloads": -1, "filename": "docker_auto_labels-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c93cbdc075f6b0a2dae9b0d3ea7140c3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3912, "upload_time": "2018-05-02T07:40:32", "url": "https://files.pythonhosted.org/packages/9e/03/d454162a586da9a2b573ef50ae9a8384fd316c0aa2c3bff4c7c06b093bdb/docker_auto_labels-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2507c2e5460c4d90b1fb265171734d2f", "sha256": "03cb11c822f824de30b34b761c512101aa2b07e31a776da6991f178b479ea577" }, "downloads": -1, "filename": "docker_auto_labels-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2507c2e5460c4d90b1fb265171734d2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9321, "upload_time": "2018-05-02T07:40:34", "url": "https://files.pythonhosted.org/packages/07/46/6f2fbde40e191b8256522e9bbdb14a160574b5b127d815b1fa8815e8f2b2/docker_auto_labels-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "fac6fc3284e62a5cdcea61fb6c6e9e9f", "sha256": "5e720ff623e252e07f68ca3c9af802a35b6a056fe4450439eaa0a98515a4a0af" }, "downloads": -1, "filename": "docker_auto_labels-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fac6fc3284e62a5cdcea61fb6c6e9e9f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3896, "upload_time": "2018-05-02T08:14:35", "url": "https://files.pythonhosted.org/packages/80/85/228de16959d935f5492c2220030c284370e835f16d28aa4f171548b00d65/docker_auto_labels-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a48cd03d931da4701d2e160c2d6a38df", "sha256": "bafeb36b5c1fbdc4959003b85af04f09beb917a6d8bae832320a4fd24f006640" }, "downloads": -1, "filename": "docker_auto_labels-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a48cd03d931da4701d2e160c2d6a38df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9897, "upload_time": "2018-05-02T08:14:37", "url": "https://files.pythonhosted.org/packages/17/66/ff7b91fcaeb71efa922dd52d9bff490380b92c05479c00b0ef935f3997d6/docker_auto_labels-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "b98749102fc23b810b0b481bbaeceeee", "sha256": "42d7539ed8f70e4bbad8d255767ab382159a10c7e9fc3706021007e64a89cce3" }, "downloads": -1, "filename": "docker_auto_labels-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b98749102fc23b810b0b481bbaeceeee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3899, "upload_time": "2018-05-02T08:38:44", "url": "https://files.pythonhosted.org/packages/7b/7f/8e85d93e5cefa62faa2435aacfd32b0e354b7f389ba32e1e0fff6f256296/docker_auto_labels-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b8d276d2792ea56c1b4bff9685ac576", "sha256": "0996330c24ce7ab30278d1f0d84d8c4ca9a925121b95d09656eb1e814afb4b2e" }, "downloads": -1, "filename": "docker_auto_labels-0.1.2.tar.gz", "has_sig": false, "md5_digest": "3b8d276d2792ea56c1b4bff9685ac576", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9903, "upload_time": "2018-05-02T08:38:45", "url": "https://files.pythonhosted.org/packages/dd/5f/ee1218c69d0e1f4a726d4d27facf88ff3aabf4a528a5681dafef9fe97841/docker_auto_labels-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "d5736278edb07d0246b9eeefa971e022", "sha256": "8fca079089c1d5865a34295c8230ce74a11e7c7f7faa3c81e58f2e475261b138" }, "downloads": -1, "filename": "docker_auto_labels-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d5736278edb07d0246b9eeefa971e022", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3909, "upload_time": "2018-05-02T08:45:16", "url": "https://files.pythonhosted.org/packages/ab/af/ba0b9b382c394794d1b40a3236721673150b933648814441280c09ac8666/docker_auto_labels-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8cb4d128f16d1f572af0a2b80aaae1e", "sha256": "b6ad03b2fa742ff213b7199ee19694a7d8cca59b9d785ba3b4b90ecc353c09d7" }, "downloads": -1, "filename": "docker_auto_labels-0.1.3.tar.gz", "has_sig": false, "md5_digest": "d8cb4d128f16d1f572af0a2b80aaae1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9904, "upload_time": "2018-05-02T08:45:17", "url": "https://files.pythonhosted.org/packages/6e/ca/2c7ca631714af5653da7300aad2019de99befffd59e02e2cf8bcf11e40dc/docker_auto_labels-0.1.3.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "bf50053595f68613a4db325eeec01987", "sha256": "19e47ee6d15e58d45870661e8265b513a31d6646cf56ad2217923bceb91d81c1" }, "downloads": -1, "filename": "docker_auto_labels-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf50053595f68613a4db325eeec01987", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4594, "upload_time": "2018-05-17T16:18:58", "url": "https://files.pythonhosted.org/packages/10/57/a95fcfb1654a7ea803e6ae79ea1951a5cf1a6990b5d5db9575319f21e008/docker_auto_labels-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03ba2cfa53d9c6c0fa8a990916095318", "sha256": "9059d27e4b2568e57eb55ec6289a55df7a236c9e1ef9372428ba46767673f18d" }, "downloads": -1, "filename": "docker_auto_labels-0.1.5.tar.gz", "has_sig": false, "md5_digest": "03ba2cfa53d9c6c0fa8a990916095318", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10736, "upload_time": "2018-05-17T16:18:58", "url": "https://files.pythonhosted.org/packages/4d/22/2d341846872b1479a7062d0b0415d0e505e3b7dc8fa012d461c5d3e54097/docker_auto_labels-0.1.5.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0280d47df69ee0da7e085f39bd0e7618", "sha256": "70a1d2eda8a51b376693153a0f2e5f7b88582daf79f96298d489e1009c6969cf" }, "downloads": -1, "filename": "docker_auto_labels-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0280d47df69ee0da7e085f39bd0e7618", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4594, "upload_time": "2018-05-17T16:19:44", "url": "https://files.pythonhosted.org/packages/ea/69/ffabffe7dfe4d520d6f5241ddc1c1bd00b93e896071ecee615643a6ebb30/docker_auto_labels-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea38b445a346a1da94b0a617da38afb8", "sha256": "0a187347388611422d57c959eff18103a1436962c5198a11d5891c4ae2d589ed" }, "downloads": -1, "filename": "docker_auto_labels-0.2.0.tar.gz", "has_sig": false, "md5_digest": "ea38b445a346a1da94b0a617da38afb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10740, "upload_time": "2018-05-17T16:19:46", "url": "https://files.pythonhosted.org/packages/b2/64/890135b06f308d641c92874a35fd455246119a041306f89012c210345419/docker_auto_labels-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "2c061ada7bd551ad0b17a6a1fd637666", "sha256": "75d0bb81587c44f4503f452c8d5c8c00968bfc3c2333de1f9f51ef715eed81e6" }, "downloads": -1, "filename": "docker_auto_labels-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c061ada7bd551ad0b17a6a1fd637666", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4595, "upload_time": "2018-05-17T16:28:36", "url": "https://files.pythonhosted.org/packages/7d/41/d0a481cbd6f1a91803027aa4c7c48b851e7e03ab9be022d9538636ca4a79/docker_auto_labels-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1c61fb56b92853271e09fc88fb51b25", "sha256": "a994c9698e79d1cfff78d132aa397442bbe557803bee1c9ff948d8e584d5f2e8" }, "downloads": -1, "filename": "docker_auto_labels-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b1c61fb56b92853271e09fc88fb51b25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10736, "upload_time": "2018-05-17T16:28:36", "url": "https://files.pythonhosted.org/packages/b8/c7/39a7c15866cc7eb5e733524bb377656120af966be9cf367698410dc7ebb2/docker_auto_labels-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "4ad3fc30c26ca0c0516458cc17b2d33b", "sha256": "2a8f4413537760fe6af08a5f44714375379c96b81f6b1050c829fe6322486c02" }, "downloads": -1, "filename": "docker_auto_labels-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ad3fc30c26ca0c0516458cc17b2d33b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4595, "upload_time": "2018-05-17T17:20:44", "url": "https://files.pythonhosted.org/packages/98/4d/73490f03201b72880e7a2640c746b8fe9561b561299320cd5b17b16822e4/docker_auto_labels-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eaab8c715ecc2bfb1323c5e1f3c4394f", "sha256": "2bde4d2b44f842d0a8d5e0bc7839fa35e6e715eadd12a0fb757f81a48f3c66b5" }, "downloads": -1, "filename": "docker_auto_labels-0.2.2.tar.gz", "has_sig": false, "md5_digest": "eaab8c715ecc2bfb1323c5e1f3c4394f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9937, "upload_time": "2018-05-17T17:20:45", "url": "https://files.pythonhosted.org/packages/44/f2/771c67580f312d56dc842604aac07589f4cfc6001fe1394e7c0da9752b90/docker_auto_labels-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "d6fa15e71efb14209ac8ef07e18f6d21", "sha256": "9503e962372460ab29bec4914d95d5187531436550c57b357a768f6d85f547f4" }, "downloads": -1, "filename": "docker_auto_labels-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d6fa15e71efb14209ac8ef07e18f6d21", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4586, "upload_time": "2018-09-24T15:10:49", "url": "https://files.pythonhosted.org/packages/8d/58/03eecdfa70fe31c1c9c46926bb5c70e6d450b07cead8a75065df1d959ad8/docker_auto_labels-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e449b24579fe412f3d5e69e5fffefb5e", "sha256": "9e87b4ff4b1a4ccb8391970d4e092f71dad73cb2efe2ef215e11df9145eaddfd" }, "downloads": -1, "filename": "docker_auto_labels-0.2.3.tar.gz", "has_sig": false, "md5_digest": "e449b24579fe412f3d5e69e5fffefb5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9932, "upload_time": "2018-09-24T15:10:51", "url": "https://files.pythonhosted.org/packages/90/79/26e76d551679c19174227e5aeb915af9585391841ec631d0b5b16cb6b7d8/docker_auto_labels-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d6fa15e71efb14209ac8ef07e18f6d21", "sha256": "9503e962372460ab29bec4914d95d5187531436550c57b357a768f6d85f547f4" }, "downloads": -1, "filename": "docker_auto_labels-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d6fa15e71efb14209ac8ef07e18f6d21", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4586, "upload_time": "2018-09-24T15:10:49", "url": "https://files.pythonhosted.org/packages/8d/58/03eecdfa70fe31c1c9c46926bb5c70e6d450b07cead8a75065df1d959ad8/docker_auto_labels-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e449b24579fe412f3d5e69e5fffefb5e", "sha256": "9e87b4ff4b1a4ccb8391970d4e092f71dad73cb2efe2ef215e11df9145eaddfd" }, "downloads": -1, "filename": "docker_auto_labels-0.2.3.tar.gz", "has_sig": false, "md5_digest": "e449b24579fe412f3d5e69e5fffefb5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9932, "upload_time": "2018-09-24T15:10:51", "url": "https://files.pythonhosted.org/packages/90/79/26e76d551679c19174227e5aeb915af9585391841ec631d0b5b16cb6b7d8/docker_auto_labels-0.2.3.tar.gz" } ] }