{ "info": { "author": "Graham Rounds", "author_email": "graham@platform9.com", "bugtrack_url": null, "classifiers": [ "Environment :: OpenStack", "Intended Audience :: System Administrators", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "Qbertconfig\n===========\n\n.. image:: https://travis-ci.org/platform9/qbertconfig.svg?branch=master\n :target: https://travis-ci.org/platform9/qbertconfig\n\nFetches kubeconfig from qbert API\n\n`kubectl config`_ can be used used to manage kubeconfig files. However, \ngathering a kubeconfig file for a Platform9 Managed Kubernetes cluster is \na manual process today. This aims to solve that problem by downloading\nand merging clusters\u2019 kubeconfigs with existing kubeconfig files.\n\nInstallation\n------------\n\nIt\u2019s strongly recommended to use a python virtualenv\n\n.. code:: bash\n\n pip install qbertconfig\n\nUsage\n-----\n\n.. code:: bash\n\n qc [-h] [-k KUBECONFIG] [--name cluster_name] [--uuid cluster_uuid] [-c]\n\n**Supported Operations**\n\n- **fetch** - get a kubeconfig for a PMK cluster\n- **help** - show this message\n- **list-clusters** - list available PMK clusters in the target Platform9 Managed Cloud\n\n**Providing Credentials**\n\nQbertconfig uses the `Openstack SDK`_ to perform authentication against a\nPlatform9 Cloud. Credentials can be provided in either a ``clouds.yaml`` file,\nenvironment variables, or by using the ``--os`` command-line arguments. For more\ninformation, please refer to the `official documentation`_\n\n**Example**\n\n.. code:: bash\n\n source ~/openstack.rc\n qc fetch --name dev-cluster -k dev-cluster.kcfg.yml\n export KUBECONFIG=$(pwd)/dev-cluster.kcfg.yml\n kubeconfig get nodes --context dev-cluster\n kubeconfig get pods -n foo\n\nFor more information on openstack rc files and how to generate them, see\n`Installing Openstack CLI Clients`_.\n\nTesting\n-------\n\nRunning Tests\n\n.. code:: bash\n\n pip install -r requirements.txt\n nosetests -v -d tests/\n\nLinting\n\n.. code:: bash\n\n flake8 --exclude versioneer.py\n\nHow it works\n------------\n\nHere is the basic structure of a Kubeconfig:\n\n.. code:: yaml\n\n apiVersion: v1\n kind: Config\n preferences: {}\n current-context: default\n clusters: []\n contexts: []\n users: []\n\nEach of cluster, context, or user, has a ``name`` associated with it.\nThis is the unique identifier for each object, and each context uses\nthese names to tie it all together.\n\nEach of these sections can be managed with the ``kubectl config``\ncommand. [`Documentation`_]\n\nThis utility will fetch a fresh kubeconfig from the Qbert API, and merge\nit\u2019s details into the specified kubeconfig.\n\nWith the fresh kubeconfig, the following sections are renamed to resolve\ncommon collisions when managing many PMK clouds.\n\n- ``user`` is renamed to ``fqdn-username`` to align with unique\n keystone environments\n- ``context`` is renamed to the ``cluster_name``\n- ``cluster`` is renamed to the ``cluster_uuid``\n\n.. _kubectl config: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#config\n.. _Documentation: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#config\n.. _Openstack SDK: https://docs.openstack.org/openstacksdk/latest/\n.. _official documentation: https://docs.openstack.org/os-client-config/latest/user/configuration.html\n.. _Installing Openstack CLI Clients: https://docs.platform9.com/support/getting-started-with-the-openstack-command-line/", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/platform9/qbertconfig", "keywords": "Kubeconfig Qbert Platform9 PMK", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "qbertconfig", "package_url": "https://pypi.org/project/qbertconfig/", "platform": "", "project_url": "https://pypi.org/project/qbertconfig/", "project_urls": { "Homepage": "https://github.com/platform9/qbertconfig" }, "release_url": "https://pypi.org/project/qbertconfig/0.3.4/", "requires_dist": null, "requires_python": ">=2.7, >=3.4", "summary": "Fetches kubeconfigs from qbert API", "version": "0.3.4" }, "last_serial": 5447337, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "906d7002453f532e3d7c7d2573856fdb", "sha256": "b5be33b7225466205b49f73d2e391655a16c209bbd226cb2485ea756b23ad750" }, "downloads": -1, "filename": "qbertconfig-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "906d7002453f532e3d7c7d2573856fdb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9824, "upload_time": "2018-05-15T22:13:17", "url": "https://files.pythonhosted.org/packages/39/ba/e1da046b790c13e2274627c00a1cd4476a70e033e447e7dd14f8be047afa/qbertconfig-0.1.0-py2-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0e979fdee1ac56b482a0957b6bd2e29e", "sha256": "84fe9b0e2b7e78211eee724112ede194157eb7408dc0478052b6881a9972ce22" }, "downloads": -1, "filename": "qbertconfig-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "0e979fdee1ac56b482a0957b6bd2e29e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9875, "upload_time": "2018-05-15T22:23:14", "url": "https://files.pythonhosted.org/packages/4a/a6/dd48e54fa7d0d072057f4ac9ff597462d0e1cd1c2231c3e17eb5a7f58495/qbertconfig-0.1.1-py2-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "dca3c931480a8aa24c4e9e0851182a1d", "sha256": "c48b388a6290b2e586053025bb707e1179a55969f4caceb0c1a48bfaf4701ff6" }, "downloads": -1, "filename": "qbertconfig-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "dca3c931480a8aa24c4e9e0851182a1d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9873, "upload_time": "2018-05-15T22:29:50", "url": "https://files.pythonhosted.org/packages/e5/20/e1ed4152abe12803084c8d2d4c258f39827d10016d5b5a7150610723dc35/qbertconfig-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9749a4390d3ef1afcb69d152e4775434", "sha256": "aa8a9cdd0cb4c4fe17025b6aa4bf9b3c6915e0e6138ab551013ba05e105a7fe9" }, "downloads": -1, "filename": "qbertconfig-0.1.2.tar.gz", "has_sig": false, "md5_digest": "9749a4390d3ef1afcb69d152e4775434", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6614, "upload_time": "2018-11-12T23:36:34", "url": "https://files.pythonhosted.org/packages/02/b6/a785fb0570686bdda5d5e6306ca3a823f74af8cdd99bce6123a9dbb5e05f/qbertconfig-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b511985d3481848428f67f8d1be5d1ed", "sha256": "1eda10752bc3575b636cddacd54121f68f97c3c29866103dad77840067cfc290" }, "downloads": -1, "filename": "qbertconfig-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b511985d3481848428f67f8d1be5d1ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25622, "upload_time": "2018-11-14T01:09:17", "url": "https://files.pythonhosted.org/packages/35/eb/31bfbde8d0c6fd3851dcec69f8e1d78d1b116e4d18460e3f3e95304ef023/qbertconfig-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "1e817cceadee12578ec846ccb0ea7742", "sha256": "dfed83da7f628ae195d7e31e69a8dd19bd8fafb0d9f56a3828cbaa0cc2024d00" }, "downloads": -1, "filename": "qbertconfig-0.3.0.tar.gz", "has_sig": false, "md5_digest": "1e817cceadee12578ec846ccb0ea7742", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25841, "upload_time": "2019-03-07T01:27:59", "url": "https://files.pythonhosted.org/packages/ec/47/b45f1402afb43b3cd643b1134148f2bfde42a730cebf36c44f66c73b96f7/qbertconfig-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "667658ce61a2a614b1edf8d9dbc90e34", "sha256": "57115fd1f70172ec3a112d08786b2c3b3b5ccebb72f93dfab882a408366ab833" }, "downloads": -1, "filename": "qbertconfig-0.3.1.tar.gz", "has_sig": false, "md5_digest": "667658ce61a2a614b1edf8d9dbc90e34", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, >=3.4", "size": 24553, "upload_time": "2019-05-06T21:49:03", "url": "https://files.pythonhosted.org/packages/16/7b/aba604a9fa1d6b1903394142aef26da654eee1de74acee8c562cd34d14f4/qbertconfig-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "87195bc76a8731e604b9a1bd6bdca2ed", "sha256": "446d1bdc778f07eabc3bdad3c0ebfad072a997e8861e1633913eef74bca00758" }, "downloads": -1, "filename": "qbertconfig-0.3.2.tar.gz", "has_sig": false, "md5_digest": "87195bc76a8731e604b9a1bd6bdca2ed", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, >=3.4", "size": 25180, "upload_time": "2019-06-01T17:10:21", "url": "https://files.pythonhosted.org/packages/27/74/1873846430d17b1a4f820b633e9e1570b1b099c73ef5182d0c41ba1d7c96/qbertconfig-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "7ed58a1040c003510d31f5f97288ffe7", "sha256": "f687bf9f6615fb91763a226dcc873788b93ed814e1bf70ec7f8e266cb51ae58b" }, "downloads": -1, "filename": "qbertconfig-0.3.3.tar.gz", "has_sig": false, "md5_digest": "7ed58a1040c003510d31f5f97288ffe7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, >=3.4", "size": 25195, "upload_time": "2019-06-11T21:28:16", "url": "https://files.pythonhosted.org/packages/a5/09/a720c121a7a5048201e78312f8264d1380edac0639b994a66280d164c6d2/qbertconfig-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "8c9890f5104e1d64ae7c2bdb6ce189b7", "sha256": "17cdc16bd106e51b53329480399b5c8e140a232c8b5677b87e3b07349a1839a9" }, "downloads": -1, "filename": "qbertconfig-0.3.4.tar.gz", "has_sig": false, "md5_digest": "8c9890f5104e1d64ae7c2bdb6ce189b7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, >=3.4", "size": 25239, "upload_time": "2019-06-25T17:04:15", "url": "https://files.pythonhosted.org/packages/2f/60/5cbe6430a37fb445a5ab58c051ee3b25db105b64332795e7cf521d1517d3/qbertconfig-0.3.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8c9890f5104e1d64ae7c2bdb6ce189b7", "sha256": "17cdc16bd106e51b53329480399b5c8e140a232c8b5677b87e3b07349a1839a9" }, "downloads": -1, "filename": "qbertconfig-0.3.4.tar.gz", "has_sig": false, "md5_digest": "8c9890f5104e1d64ae7c2bdb6ce189b7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, >=3.4", "size": 25239, "upload_time": "2019-06-25T17:04:15", "url": "https://files.pythonhosted.org/packages/2f/60/5cbe6430a37fb445a5ab58c051ee3b25db105b64332795e7cf521d1517d3/qbertconfig-0.3.4.tar.gz" } ] }