===============
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"
}