zalando-kubectl


Namezalando-kubectl JSON
Version 1.29.4.202 PyPI version JSON
download
home_pageNone
SummaryKubectl wrapper in Python with OAuth token auth
upload_time2024-04-30 09:31:03
maintainerNone
docs_urlNone
authorTeam Teapot
requires_pythonNone
licenseApache License 2.0
keywords kubectl kubernetes
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ===============
Zalando Kubectl
===============

.. image:: https://img.shields.io/pypi/dw/zalando-kubectl.svg
   :target: https://pypi.python.org/pypi/zalando-kubectl/
   :alt: PyPI Downloads

.. image:: https://img.shields.io/pypi/v/zalando-kubectl.svg
   :target: https://pypi.python.org/pypi/zalando-kubectl/
   :alt: Latest PyPI version

.. image:: https://img.shields.io/pypi/l/zalando-kubectl.svg
   :target: https://pypi.python.org/pypi/zalando-kubectl/
   :alt: License

Kubernetes CLI (kubectl) wrapper in Python with OAuth token authentication.

This wrapper script ``zkubectl`` serves as a drop-in replacement for the ``kubectl`` binary:

* it downloads the current ``kubectl`` binary from Google
* it generates a new ``~/.kube/config`` with an OAuth Bearer token acquired via `zign`_.
* it passes through commands to the ``kubectl`` binary


Installation
============

Requires Python 3.6+.

.. code-block:: bash

    $ sudo pip3 install --upgrade zalando-kubectl

Usage
=====

You can directly login to a known Kubernetes API server endpoint:

.. code-block:: bash

    $ zkubectl login https://my-api-server.example.org
    $ zkubectl cluster-info

You can also configure a Cluster Registry to look up clusters by ID:

.. code-block:: bash

    $ zkubectl configure --cluster-registry=https://cluster-registry.example.org
    $ zkubectl login my-cluster-id

The Cluster Registry needs to provide the following HTTP API for this to work:

.. code-block:: bash

    $ curl -H "Authorization: Bearer $(zign tok)" https://cluster-registry.example.org/kubernetes-clusters/my-cluster-id
    {
        "api_server_url": "https://my-api-server.example.org"
    }

There is an additional convenience command to open the `Kubernetes Dashboard web UI`_ in the browser:

.. code-block:: bash

    $ zkubectl dashboard
    Waiting for local kubectl proxy.. . . . . . . . . . .Starting to serve on 127.0.0.1:8001 OK

    Opening http://localhost:8001/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy ..



Unit Tests
==========

Run unit tests with Tox:

.. code-block:: bash

    $ sudo pip3 install tox
    $ tox

Local Changes
=============

It's recommended to have a `virtualenv` for the project. The project uses `Black`_ for code formatting,
please configure your editor to use it.

Go to the project dir and install dependencies

.. code-block:: bash

    $ cd <project-path>
    $ pip install -r requirements.txt
    $ pip install --editable .

Now the code change will just be reflected in the `zkubectl` binary

.. code-block:: bash

    $ zkubectl <whatever>

.. _zign: https://pypi.python.org/pypi/stups-zign
.. _Kubernetes Dashboard web UI: http://kubernetes.io/docs/user-guide/ui/
.. _Black: https://black.readthedocs.io/en/stable/

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "zalando-kubectl",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "kubectl kubernetes",
    "author": "Team Teapot",
    "author_email": "team-teapot@zalando.de",
    "download_url": "https://files.pythonhosted.org/packages/3a/16/376bc6177d45b71a8b1700b74ef043cf1edabbee53adb090ef48a038cead/zalando_kubectl-1.29.4.202.tar.gz",
    "platform": null,
    "description": "===============\nZalando Kubectl\n===============\n\n.. image:: https://img.shields.io/pypi/dw/zalando-kubectl.svg\n   :target: https://pypi.python.org/pypi/zalando-kubectl/\n   :alt: PyPI Downloads\n\n.. image:: https://img.shields.io/pypi/v/zalando-kubectl.svg\n   :target: https://pypi.python.org/pypi/zalando-kubectl/\n   :alt: Latest PyPI version\n\n.. image:: https://img.shields.io/pypi/l/zalando-kubectl.svg\n   :target: https://pypi.python.org/pypi/zalando-kubectl/\n   :alt: License\n\nKubernetes CLI (kubectl) wrapper in Python with OAuth token authentication.\n\nThis wrapper script ``zkubectl`` serves as a drop-in replacement for the ``kubectl`` binary:\n\n* it downloads the current ``kubectl`` binary from Google\n* it generates a new ``~/.kube/config`` with an OAuth Bearer token acquired via `zign`_.\n* it passes through commands to the ``kubectl`` binary\n\n\nInstallation\n============\n\nRequires Python 3.6+.\n\n.. code-block:: bash\n\n    $ sudo pip3 install --upgrade zalando-kubectl\n\nUsage\n=====\n\nYou can directly login to a known Kubernetes API server endpoint:\n\n.. code-block:: bash\n\n    $ zkubectl login https://my-api-server.example.org\n    $ zkubectl cluster-info\n\nYou can also configure a Cluster Registry to look up clusters by ID:\n\n.. code-block:: bash\n\n    $ zkubectl configure --cluster-registry=https://cluster-registry.example.org\n    $ zkubectl login my-cluster-id\n\nThe Cluster Registry needs to provide the following HTTP API for this to work:\n\n.. code-block:: bash\n\n    $ curl -H \"Authorization: Bearer $(zign tok)\" https://cluster-registry.example.org/kubernetes-clusters/my-cluster-id\n    {\n        \"api_server_url\": \"https://my-api-server.example.org\"\n    }\n\nThere is an additional convenience command to open the `Kubernetes Dashboard web UI`_ in the browser:\n\n.. code-block:: bash\n\n    $ zkubectl dashboard\n    Waiting for local kubectl proxy.. . . . . . . . . . .Starting to serve on 127.0.0.1:8001 OK\n\n    Opening http://localhost:8001/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy ..\n\n\n\nUnit Tests\n==========\n\nRun unit tests with Tox:\n\n.. code-block:: bash\n\n    $ sudo pip3 install tox\n    $ tox\n\nLocal Changes\n=============\n\nIt's recommended to have a `virtualenv` for the project. The project uses `Black`_ for code formatting,\nplease configure your editor to use it.\n\nGo to the project dir and install dependencies\n\n.. code-block:: bash\n\n    $ cd <project-path>\n    $ pip install -r requirements.txt\n    $ pip install --editable .\n\nNow the code change will just be reflected in the `zkubectl` binary\n\n.. code-block:: bash\n\n    $ zkubectl <whatever>\n\n.. _zign: https://pypi.python.org/pypi/stups-zign\n.. _Kubernetes Dashboard web UI: http://kubernetes.io/docs/user-guide/ui/\n.. _Black: https://black.readthedocs.io/en/stable/\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "Kubectl wrapper in Python with OAuth token auth",
    "version": "1.29.4.202",
    "project_urls": null,
    "split_keywords": [
        "kubectl",
        "kubernetes"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d2c6da92a42b7efd191d2ff071d491eee9df3a1b1dec681c782736a9f48e9dd9",
                "md5": "e95558d99ec4392d5e5dba37e635d1fe",
                "sha256": "760b2fe5b34368101c24614cc26515c33316f615d2cdf9c94d0788c5caccdfda"
            },
            "downloads": -1,
            "filename": "zalando_kubectl-1.29.4.202-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e95558d99ec4392d5e5dba37e635d1fe",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 52990,
            "upload_time": "2024-04-30T09:30:57",
            "upload_time_iso_8601": "2024-04-30T09:30:57.076102Z",
            "url": "https://files.pythonhosted.org/packages/d2/c6/da92a42b7efd191d2ff071d491eee9df3a1b1dec681c782736a9f48e9dd9/zalando_kubectl-1.29.4.202-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3a16376bc6177d45b71a8b1700b74ef043cf1edabbee53adb090ef48a038cead",
                "md5": "bc99a0803bc3bdcb1032fa47dae7990d",
                "sha256": "1e86313bf762d02afd603246a134a0cd7166b18375dd2adb73dc1d90aa3cf111"
            },
            "downloads": -1,
            "filename": "zalando_kubectl-1.29.4.202.tar.gz",
            "has_sig": false,
            "md5_digest": "bc99a0803bc3bdcb1032fa47dae7990d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 51176,
            "upload_time": "2024-04-30T09:31:03",
            "upload_time_iso_8601": "2024-04-30T09:31:03.296090Z",
            "url": "https://files.pythonhosted.org/packages/3a/16/376bc6177d45b71a8b1700b74ef043cf1edabbee53adb090ef48a038cead/zalando_kubectl-1.29.4.202.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-30 09:31:03",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "zalando-kubectl"
}
        
Elapsed time: 0.26207s