{ "info": { "author": "Tom\u00e1\u0161 Kukr\u00e1l", "author_email": "tomas.kukral@6shore.net", "bugtrack_url": null, "classifiers": [ "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython" ], "description": "KQueen - Kubernetes cluster manager\n===================================\n\n\n.. image:: https://travis-ci.org/Mirantis/kqueen.svg?branch=master\n :target: https://travis-ci.org/Mirantis/kqueen\n\n.. image:: https://badge.fury.io/py/kqueen.svg\n :target: https://badge.fury.io/py/kqueen\n\n.. image:: https://coveralls.io/repos/github/Mirantis/kqueen/badge.svg?branch=master\n :target: https://coveralls.io/github/Mirantis/kqueen?branch=master\n\n.. image:: https://readthedocs.org/projects/kqueen/badge/?version=master\n :target: http://kqueen.readthedocs.io/en/master/?badge=master\n\nOverview\n--------\n\nMore information about KQueen Architecture and use cases is described in `RATIONALE `_ file.\n\nRequirements\n------------\n\n- Python v3.6 and higher.\n- Pip v3 and higher.\n- Docker stable release (v17.03 and higher is preferable).\n- Docker-compose stable release (v1.16.0 and higher is preferable).\n\n\nDemo environment\n----------------\n\n- Make sure you can reach Jenkins server defined in `JENKINS_API_URL` variable in file `kqueen/config/prod.py`.\n- Run these commands to run Kqueen API and UI in containers.\n\n ::\n\n docker-compose -f docker-compose.yml -f docker-compose.demo.yml up\n\n or with mounted etcd data directory:\n\n ::\n\n docker-compose -f docker-compose.etcd-volume.yml -f docker-compose.demo.yml up\n\n- You can login using user `admin` and password `default`.\n Default username and password can be changed in `docker-compose.demo.yml` file before first start of API.\n\n\n- Navigate to UI\n\n * http://127.0.0.1:5080/\n * http://127.0.0.1:5000/api/docs/\n\n\nDevelopment\n-----------\n\n- Install dependencies\n\n ::\n\n # Debian/Ubuntu\n sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev\n\n # RedHat/CentOS:\n sudo yum install python-devel openldap-devel\n\n- Prepare python virtual environment\n\n ::\n\n python -m ensurepip --default-pip\n pip install --user pipenv\n pipenv --python 3.6\n pipenv install --dev\n\n pipenv shell\n\n\n- Start docker container with etcd storage\n\n ::\n\n docker-compose up -d\n\n- Initialize kqueen db: add *admin* user with *default* password\n\n ::\n\n ./bootstrap_admin.py DemoOrg demoorg admin default\n- You can start KQueen API service directly\n\n ::\n\n kqueen &\n chrome --new-tab http://127.0.0.1:5000/api/docs/\n\n- Prepare kubernetes config file\n\n Kubernetes configuration file that describes existing cluster can be used in Kqueen.\n Rename it with *kubernetes_remote* and place to the root of the project.\n For test purposes this file can be empty, but should be added manually.\n\n\nHow-to's\n^^^^^^^^\n\n- Clean etcd storage after previous runs\n\n ::\n\n etcdctl rm --recursive /kqueen\n\n- Add admin user, organization, mock clusters and provisioners to etcd storage at once, execute the following\n\n ::\n\n ./devenv.py\n\n- To add a single *admin* user with *default* password within associated *DemoOrg* organization in provided *demoorg* namespace, execute the following\n\n ::\n\n ./bootstrap_admin.py DemoOrg demoorg admin default\n\n- Test access token. *curl*, *jq* should be installed in your system\n\n ::\n\n TOKEN=$(curl -s -H \"Content-Type: application/json\" --data '{\"username\":\"admin\",\"password\":\"default\"}' -X POST localhost:5000/api/v1/auth | jq -r '.access_token')\n echo $TOKEN\n curl -H \"Authorization: Bearer $TOKEN\" localhost:5000/api/v1/clusters\n\n- Set up flask shell for manual testing and debugging\n\n ::\n\n export FLASK_APP=kqueen.server\n export prometheus_multiproc_dir=$(mktemp -d)\n flask shell\n\n- Update Docker image with code changes\n\nThere are two ways to test development changes. First is automatic: create a separate branch and push PR, then TravisCI\nbuild image and push it on Docker Hub automatically. Second one is just rebuild kqueen api-image locally:\n\n ::\n\n docker build -t kqueen/api:your_tag .\n\nConfiguration\n-------------\n\nWe load configuration from file ``config/dev.py`` by default and this\ncan be configured by ``KQUEEN_CONFIG_FILE`` environment variable. Any\nenvironment variable matching name ``KQUEEN_*`` will be loaded and saved\nto configuration.\n\nDocumentation\n-------------\n\nFull documentation can be found at\n`kqueen.readthedocs.io `__.\n\nAPI reference is defined at `api.yml `_\nand Swagger UI is available at ``/api/docs``\n\n.. |Build Status| image:: https://travis-ci.org/Mirantis/kqueen.svg?branch=master\n :target: https://travis-ci.org/Mirantis/kqueen\n.. |PyPI version| image:: https://badge.fury.io/py/kqueen.svg\n :target: https://badge.fury.io/py/kqueen\n.. |Coverage Status| image:: https://coveralls.io/repos/github/Mirantis/kqueen/badge.svg?branch=master\n :target: https://coveralls.io/github/Mirantis/kqueen?branch=master\n\nDEMOs\n-----\n\n**Generic KQueen Overview**\n\n.. image:: https://img.youtube.com/vi/PCAwCxPQc2A/0.jpg\n :target: https://www.youtube.com/watch?v=PCAwCxPQc2A&t=1s\n\n**AKS (Azure) in KQueen**\n\n.. image:: https://img.youtube.com/vi/xHydnJGcs2k/0.jpg\n :target: https://youtu.be/xHydnJGcs2k\n\n**Network policy management in KQueen**\n\nThe following video provides an overview on how to manage the Calico network policy\nfor a Kubernetes cluster provisioned with Google Kubernetes Engine using KQueen.\n\n.. image:: https://img.youtube.com/vi/MYXFI75Fm10/0.jpg\n :target: https://youtu.be/MYXFI75Fm10", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/Mirantis/kqueen/archive/v1.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Mirantis/kqueen/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "kqueen", "package_url": "https://pypi.org/project/kqueen/", "platform": "", "project_url": "https://pypi.org/project/kqueen/", "project_urls": { "Download": "https://github.com/Mirantis/kqueen/archive/v1.0.tar.gz", "Homepage": "https://github.com/Mirantis/kqueen/" }, "release_url": "https://pypi.org/project/kqueen/1.0/", "requires_dist": null, "requires_python": "", "summary": "Kubernetes cluster orchestrator", "version": "1.0" }, "last_serial": 4054011, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "89accb90a9c04f5eb41124c6ecbfa61f", "sha256": "61525d2afef115000dd2e73039f6bf83e7272cbeb4f07e01f127c16422a1ec77" }, "downloads": -1, "filename": "kqueen-0.1.tar.gz", "has_sig": false, "md5_digest": "89accb90a9c04f5eb41124c6ecbfa61f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6448, "upload_time": "2017-09-28T10:37:41", "url": "https://files.pythonhosted.org/packages/df/0b/5e1ee03a691376a5aec37092a6e91a234ac32feafb355c968c55e4dd1ed8/kqueen-0.1.tar.gz" } ], "0.10": [ { "comment_text": "", "digests": { "md5": "423641c07dee5a326605447125c1bbce", "sha256": "79202072aea8af55ef9a5d2b638f02fa380a2e53e9d208fbf64cc96c8b19efa2" }, "downloads": -1, "filename": "kqueen-0.10.tar.gz", "has_sig": false, "md5_digest": "423641c07dee5a326605447125c1bbce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30574, "upload_time": "2017-11-26T13:21:49", "url": "https://files.pythonhosted.org/packages/d5/80/d4e2a0ac3967bd2e13476a6c547b4d179bd09cd7c4fbe643b7179279821b/kqueen-0.10.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "14436c2426bbf2f9dba9bf8032b6d76f", "sha256": "f9eb56762cb8f2adbed1128564bca3760d353d702b7a2ae5df0b89a1724aed88" }, "downloads": -1, "filename": "kqueen-0.11.tar.gz", "has_sig": false, "md5_digest": "14436c2426bbf2f9dba9bf8032b6d76f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34195, "upload_time": "2017-12-04T08:53:24", "url": "https://files.pythonhosted.org/packages/0f/48/8d02a2e29994771b68b48ebf8a0e4a419692787e28d3ffcbc1605ae60f57/kqueen-0.11.tar.gz" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "c2766afb66d56620d25cee66a46cc57f", "sha256": "a28e9ba152ec553dfb1c38bca74f35dfc6af8f7213921128f7538cc70c769eee" }, "downloads": -1, "filename": "kqueen-0.12.tar.gz", "has_sig": false, "md5_digest": "c2766afb66d56620d25cee66a46cc57f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38069, "upload_time": "2017-12-15T10:02:31", "url": "https://files.pythonhosted.org/packages/49/da/a7ff54e4f4565fb81288924ddd50b3302268777296d48f17fc25a32235a6/kqueen-0.12.tar.gz" } ], "0.13": [ { "comment_text": "", "digests": { "md5": "ce1bf1d064a1a38ec57e10771d96a40b", "sha256": "87d116146c339c7adc26d728c4b805a7bb2ad5bf1a86834e2981bdda038e44c6" }, "downloads": -1, "filename": "kqueen-0.13.tar.gz", "has_sig": false, "md5_digest": "ce1bf1d064a1a38ec57e10771d96a40b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38412, "upload_time": "2017-12-19T16:33:06", "url": "https://files.pythonhosted.org/packages/bd/40/92aefc244ce7bf3636fc331fb1319bb1c8262a43fcf0ecd4e4a974d5c1e6/kqueen-0.13.tar.gz" } ], "0.14": [ { "comment_text": "", "digests": { "md5": "8bdadfbb4f8837915658bfce55c0cbdc", "sha256": "4e834abdd187c3947dbb165931aa0a365ea40dc9b256ca95096873758696ffb5" }, "downloads": -1, "filename": "kqueen-0.14.tar.gz", "has_sig": false, "md5_digest": "8bdadfbb4f8837915658bfce55c0cbdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38386, "upload_time": "2017-12-20T09:55:07", "url": "https://files.pythonhosted.org/packages/90/9c/cb94f74c83b84c653f386d2f6fa081a54e27d7cc1183c7ed25bdffae49ac/kqueen-0.14.tar.gz" } ], "0.15": [ { "comment_text": "", "digests": { "md5": "295653e3a910160f9c758454a014404b", "sha256": "dd135ad9bf69f4210f3b10900c6f48d0c5b7eb72006c9eda6b05dbfdcf1343ae" }, "downloads": -1, "filename": "kqueen-0.15.tar.gz", "has_sig": false, "md5_digest": "295653e3a910160f9c758454a014404b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39679, "upload_time": "2017-12-28T06:57:38", "url": "https://files.pythonhosted.org/packages/8b/96/e72ec585cbcb2f8971ecb2289f73467fd3de7471b9a922ba812f2a82c813/kqueen-0.15.tar.gz" } ], "0.16": [ { "comment_text": "", "digests": { "md5": "b1c6c0863840bdde327e8ecce477c3c5", "sha256": "2c9428e527939c1af41b215a34d6c882b4497fc8a8a4c776f8f24443c9d8fb01" }, "downloads": -1, "filename": "kqueen-0.16.tar.gz", "has_sig": false, "md5_digest": "b1c6c0863840bdde327e8ecce477c3c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41538, "upload_time": "2018-01-15T16:18:09", "url": "https://files.pythonhosted.org/packages/07/69/abf057a1e0a8206d9f3847c455123d2cebae1f7e50e102c0befbb6f06275/kqueen-0.16.tar.gz" } ], "0.17": [ { "comment_text": "", "digests": { "md5": "3dfc76ea7d9f58d581c5c85aa6032a75", "sha256": "c083901dea4ab4757eda92c24cc9ea0524f3f6e859d98098ad25ff046bcb51ee" }, "downloads": -1, "filename": "kqueen-0.17.tar.gz", "has_sig": false, "md5_digest": "3dfc76ea7d9f58d581c5c85aa6032a75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42325, "upload_time": "2018-01-24T16:12:54", "url": "https://files.pythonhosted.org/packages/e4/04/dc92108e10a0e3e12dc557a59d947758cb6224338c7b4c7da13c583069d5/kqueen-0.17.tar.gz" } ], "0.18": [ { "comment_text": "", "digests": { "md5": "a06743c434168dc68e75f56d014d8659", "sha256": "82742fdb355ad704996c3c404d3de48a920c4934eedd5f3c55874b674a5a2ee1" }, "downloads": -1, "filename": "kqueen-0.18.tar.gz", "has_sig": false, "md5_digest": "a06743c434168dc68e75f56d014d8659", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44103, "upload_time": "2018-02-13T18:36:37", "url": "https://files.pythonhosted.org/packages/7d/bb/026743e4b2e3c5b728ad96165b1456fccb78cb394d7be23e2242dd3adaa5/kqueen-0.18.tar.gz" } ], "0.19": [ { "comment_text": "", "digests": { "md5": "44943a35c36e609ec05536fa2307e4c8", "sha256": "901ff03b696b5791418e271515c15ca0d46052b01afc32c801138fb7da0f1d2c" }, "downloads": -1, "filename": "kqueen-0.19.tar.gz", "has_sig": false, "md5_digest": "44943a35c36e609ec05536fa2307e4c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51091, "upload_time": "2018-04-17T15:58:30", "url": "https://files.pythonhosted.org/packages/a6/44/00f87d8585d51a958e5aeb0c79862b4dbeb28028671ce0af6bbb62da5a9d/kqueen-0.19.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "5eb4562c4d41eefd281c6c860ad356bd", "sha256": "d30abe13a4800abfcba4f186c3e05b7812fbaf61d3e9eb569d90a4a98cff00eb" }, "downloads": -1, "filename": "kqueen-0.2.tar.gz", "has_sig": false, "md5_digest": "5eb4562c4d41eefd281c6c860ad356bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18189, "upload_time": "2017-10-13T13:22:08", "url": "https://files.pythonhosted.org/packages/c8/b1/670b916c321bfa75c611dc5b40c199664425c207a408ee1ac53995dc513c/kqueen-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "177f0872dee4bff39d417487eb5f2230", "sha256": "f0cf9977308f02120ed0666047b6d0f8d154054cb4b3f08682f45c448089e2c7" }, "downloads": -1, "filename": "kqueen-0.3.tar.gz", "has_sig": false, "md5_digest": "177f0872dee4bff39d417487eb5f2230", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21173, "upload_time": "2017-10-17T09:02:49", "url": "https://files.pythonhosted.org/packages/fc/c5/dbd34319fe608066e89641fff1bc011918251c79e47f7eaa0f1247a50e85/kqueen-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "89335d18d9df91691048f0cae6ba7385", "sha256": "2ad8c4a58a025496ae01b384131176bddf6e56213c09eea27e3bb619c7f30fde" }, "downloads": -1, "filename": "kqueen-0.4.tar.gz", "has_sig": false, "md5_digest": "89335d18d9df91691048f0cae6ba7385", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21773, "upload_time": "2017-10-17T13:20:42", "url": "https://files.pythonhosted.org/packages/7d/17/cbacf913f3ef0160c016612923ba866379a0313aa8a010345b2779185513/kqueen-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "82cc98ca5f6b32481d57861a50254fe4", "sha256": "271c4915207389796e1caf458d4c476975efc16ff5c279845e5e869119be2b34" }, "downloads": -1, "filename": "kqueen-0.5.tar.gz", "has_sig": false, "md5_digest": "82cc98ca5f6b32481d57861a50254fe4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23351, "upload_time": "2017-10-20T08:19:27", "url": "https://files.pythonhosted.org/packages/bc/c3/b511de52136f02480a8c2a89c3bf2c1be979307251809f68fc232386ec2a/kqueen-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "db864e255bc3678162c71b22ed88b0df", "sha256": "a21f3f5d46f7665c874b493fdd06eaee65670a631cf29597b6bd4797bec3ada4" }, "downloads": -1, "filename": "kqueen-0.6.tar.gz", "has_sig": false, "md5_digest": "db864e255bc3678162c71b22ed88b0df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30386, "upload_time": "2017-10-20T09:09:55", "url": "https://files.pythonhosted.org/packages/d9/ea/7bb34817c6c861c4499c41637720edf2c7c9b81fd23bfe7d5e1025d71549/kqueen-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "e3f6dae19bb5cd6fccb995bfcc2d5f8f", "sha256": "7b9bd8d5991cd44d7dbe5e98650dc86c1c1d226cfedd94cf18ab25408e000b60" }, "downloads": -1, "filename": "kqueen-0.7.tar.gz", "has_sig": false, "md5_digest": "e3f6dae19bb5cd6fccb995bfcc2d5f8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33901, "upload_time": "2017-10-23T20:13:27", "url": "https://files.pythonhosted.org/packages/94/bc/804a70405cd3ee5587d1ea81fcd7658e1efa4f911da43915f22dc8df0156/kqueen-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "5a7ef340f01459ade8629f7210b18fe3", "sha256": "68a181a38e0715d111fdfc3e0b471a65193fcff57dcc0ad557968bc20a80766d" }, "downloads": -1, "filename": "kqueen-0.8.tar.gz", "has_sig": false, "md5_digest": "5a7ef340f01459ade8629f7210b18fe3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21347, "upload_time": "2017-10-27T12:58:50", "url": "https://files.pythonhosted.org/packages/1b/99/6bb9c12a064c65aeffadeaca47249d948f27e8591b23f77032685178fa7b/kqueen-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "2d2d533c9fe53aa6d9714d75230f55b9", "sha256": "ff67161e1642e78e2b921442e7f7572c86c2e2483b1c50a5e461c271cba0173c" }, "downloads": -1, "filename": "kqueen-0.9.tar.gz", "has_sig": false, "md5_digest": "2d2d533c9fe53aa6d9714d75230f55b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26729, "upload_time": "2017-11-13T13:49:14", "url": "https://files.pythonhosted.org/packages/a9/4a/eac03a3f8f108b22c686341294887901a35f5357b27abc5fdbd119044c57/kqueen-0.9.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "78e53a63c050b261798fc9ed3ea2384e", "sha256": "5528b0bfc8a3a2646c1adcb9bfbcb29323d763baa3aacf1684a2699339a0bb83" }, "downloads": -1, "filename": "kqueen-1.0.tar.gz", "has_sig": false, "md5_digest": "78e53a63c050b261798fc9ed3ea2384e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68529, "upload_time": "2018-07-12T11:48:38", "url": "https://files.pythonhosted.org/packages/41/30/0a9e44b828f765e5625dd1f83a57f6b5f67706c5fc6aee7befef6d8bc42d/kqueen-1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "78e53a63c050b261798fc9ed3ea2384e", "sha256": "5528b0bfc8a3a2646c1adcb9bfbcb29323d763baa3aacf1684a2699339a0bb83" }, "downloads": -1, "filename": "kqueen-1.0.tar.gz", "has_sig": false, "md5_digest": "78e53a63c050b261798fc9ed3ea2384e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68529, "upload_time": "2018-07-12T11:48:38", "url": "https://files.pythonhosted.org/packages/41/30/0a9e44b828f765e5625dd1f83a57f6b5f67706c5fc6aee7befef6d8bc42d/kqueen-1.0.tar.gz" } ] }