===============
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 `kube-web-view` dashboard in the browser:
.. code-block:: bash
$ zkubectl dashboard
Opening https://kube-web-view.zalando.net/ ..
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 into virtual test environment
.. code-block:: bash
$ cd <project-path>
# create new virtual environment if not yet
$ python -m venv test_environment
# enter virtual environment
$ source ./test_environment/bin/activate
# check pip is executed fron this virtual environment
(test_environment) $ which pip
<project-path>/test_environment/bin/pip
(test_environment) $ pip install -r requirements.txt
(test_environment) $ pip install --editable .
Now the code change will just be reflected in the `zkubectl` binary
.. code-block:: bash
(test_environment) $ zkubectl <whatever>
As an alternative for creating an environment you can run local changes from `zalando_kubectl`
.. code-block:: bash
$ cd <project-path>
$ python -m zalando_kubectl <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/38/6e/39703db5c29613b1fa2a72dd8888e4c83e112bd9b51b9d65b68e00622d20/zalando_kubectl-1.31.1.237.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 `kube-web-view` dashboard in the browser:\n\n.. code-block:: bash\n\n $ zkubectl dashboard\n Opening https://kube-web-view.zalando.net/ ..\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 into virtual test environment\n\n.. code-block:: bash\n\n $ cd <project-path>\n # create new virtual environment if not yet\n $ python -m venv test_environment\n # enter virtual environment\n $ source ./test_environment/bin/activate\n # check pip is executed fron this virtual environment\n (test_environment) $ which pip\n <project-path>/test_environment/bin/pip\n\n (test_environment) $ pip install -r requirements.txt\n (test_environment) $ pip install --editable .\n\nNow the code change will just be reflected in the `zkubectl` binary\n\n.. code-block:: bash\n\n (test_environment) $ zkubectl <whatever>\n\nAs an alternative for creating an environment you can run local changes from `zalando_kubectl`\n\n.. code-block:: bash\n\n $ cd <project-path>\n $ python -m zalando_kubectl <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.31.1.237",
"project_urls": null,
"split_keywords": [
"kubectl",
"kubernetes"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "44a1eb5158e92f54fa0b9388880859c2ccbe925593c142a1f505a34afea6e648",
"md5": "100683ae1262a709788d55d1c9145456",
"sha256": "026aedc09b76dfc0f9870089f9d079c784695add80ca04383582c52c827ec9e8"
},
"downloads": -1,
"filename": "zalando_kubectl-1.31.1.237-py3-none-any.whl",
"has_sig": false,
"md5_digest": "100683ae1262a709788d55d1c9145456",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 55220,
"upload_time": "2024-10-18T14:12:13",
"upload_time_iso_8601": "2024-10-18T14:12:13.076466Z",
"url": "https://files.pythonhosted.org/packages/44/a1/eb5158e92f54fa0b9388880859c2ccbe925593c142a1f505a34afea6e648/zalando_kubectl-1.31.1.237-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "386e39703db5c29613b1fa2a72dd8888e4c83e112bd9b51b9d65b68e00622d20",
"md5": "1f0c6a8c9b3cdd5b85c71fc2f918f412",
"sha256": "0e2defd7aa05bade454a766cb784e910bb4ebf4df4c1fe26bdca9980f408bc91"
},
"downloads": -1,
"filename": "zalando_kubectl-1.31.1.237.tar.gz",
"has_sig": false,
"md5_digest": "1f0c6a8c9b3cdd5b85c71fc2f918f412",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 54308,
"upload_time": "2024-10-18T14:12:14",
"upload_time_iso_8601": "2024-10-18T14:12:14.736408Z",
"url": "https://files.pythonhosted.org/packages/38/6e/39703db5c29613b1fa2a72dd8888e4c83e112bd9b51b9d65b68e00622d20/zalando_kubectl-1.31.1.237.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-18 14:12:14",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "zalando-kubectl"
}