Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
df6868a
Not generated code: clean up python 2.7 support artefacts
penguinolog May 11, 2026
1e9707d
Extra py2 specific branches removed and replaced
penguinolog May 15, 2026
24c2253
Bump codecov/codecov-action from 6.0.0 to 6.0.1
dependabot[bot] May 19, 2026
1ff775f
Update pyyaml requirement from >=5.4.1 to >=6.0.3
dependabot[bot] May 13, 2026
e82576a
Update aiohttp requirement from <4.0.0,>=3.9.0 to >=3.13.5,<4.0.0
dependabot[bot] May 14, 2026
221b12d
config: write api_key['BearerToken'] so v36+ SDK auth works
Jmacek May 21, 2026
39f6859
config: drop dual-write, replace 'authorization' with 'BearerToken'
Jmacek May 21, 2026
44c0320
updated scripts and README to use kubernetes.aio
yliaog May 22, 2026
bd45ea1
removed kubernetes_asyncio directory
yliaog May 22, 2026
e8473dd
updated CHANGELOG to state that asyncio package is experimental
yliaog May 22, 2026
576b7c4
auto generated aio package nested under kubernetes by running update-…
yliaog May 22, 2026
5096144
added aio/config
yliaog May 22, 2026
f35323d
added aio/e2e_test
yliaog May 22, 2026
a65e34b
added aio/utils
yliaog May 22, 2026
2c6efbd
used kubernetes.aio path in examples
yliaog May 22, 2026
2493500
used kubernetes.aio in github workflows
yliaog May 22, 2026
fe0ddbc
generated client change
yliaog May 5, 2026
5c4e530
generated client change
yliaog May 6, 2026
049a490
generated client change
yliaog May 7, 2026
449e548
generated client change
yliaog May 13, 2026
aa03876
generated client change
yliaog May 20, 2026
fbd5882
update changelog with release notes from master branch
yliaog May 26, 2026
6d26b4d
update version constants for 36.0.1 release
yliaog May 26, 2026
8836c4c
generated client change
yliaog May 26, 2026
33827fa
updated compatibility matrix and maintenance status
yliaog May 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/e2e-master.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@ jobs:
- name: Install package
run: python -m pip install -e .
- name: Run End to End tests
run: pytest -vvv -s kubernetes/e2e_test -s kubernetes_asyncio/e2e_test
run: pytest -vvv -s kubernetes/e2e_test -s kubernetes/aio/e2e_test
2 changes: 1 addition & 1 deletion .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:

- name: Upload coverage to Codecov
if: "matrix.use_coverage"
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354
with:
fail_ci_if_error: false
verbose: true
15 changes: 14 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# v36.0.1

Kubernetes API Version: v1.36.1

### Bug or Regression
- Fix `load_incluster_config()` and `load_kube_config()` (sync and async, with a static token) so requests carry an `Authorization` header on `kubernetes-client/python` v36+. Without this fix, in-cluster pods upgrading to v36 silently send unauthenticated requests and the apiserver rejects them as `system:anonymous`. (#2585, @Jmacek)

### Deprecation
- Support new exec v5 websocket subprotocol (#2486, @aojea)

# v36.0.0

Kubernetes API Version: v1.36.1
Expand Down Expand Up @@ -231,7 +241,10 @@ Kubernetes API Version: v1.36.0
- The `endpoints` field in discovery.k8s.io/v1 EndpointSlice is now correctly defined as optional in the OpenAPI specification, matching the server's behavior. ([kubernetes/kubernetes#136111](https://github.com/kubernetes/kubernetes/pull/136111), [@aojea](https://github.com/aojea)) [SIG Network]
- Update API comments to reflect that stable state of Dynamic Resource Allocation ([kubernetes/kubernetes#136441](https://github.com/kubernetes/kubernetes/pull/136441), [@kannon92](https://github.com/kannon92)) [SIG API Machinery]

# Basic asyncio support
# Basic asyncio support (Experimental)

- Asyncio package is experimental currently, breaking changes may be introduced
in future releases.

- Basic asyncio with kube config, and in_cluster_config is added.

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ list all pods using asyncio:

```python
import asyncio
from kubernetes_asyncio import client, config
from kubernetes_asyncio.client.api_client import ApiClient
from kubernetes.aio import client, config
from kubernetes.aio.client.api_client import ApiClient


async def main():
Expand Down Expand Up @@ -134,7 +134,7 @@ supported versions of Kubernetes clusters.
- [client 33.y.z](https://pypi.org/project/kubernetes/33.1.0/): Kubernetes 1.32 or below (+-), Kubernetes 1.33 (✓), Kubernetes 1.34 or above (+-)
- [client 34.y.z](https://pypi.org/project/kubernetes/34.1.0/): Kubernetes 1.33 or below (+-), Kubernetes 1.34 (✓), Kubernetes 1.35 or above (+-)
- [client 35.y.z](https://pypi.org/project/kubernetes/35.0.0/): Kubernetes 1.34 or below (+-), Kubernetes 1.35 (✓), Kubernetes 1.36 or above (+-)
- [client 36.y.z](https://pypi.org/project/kubernetes/36.0.0/): Kubernetes 1.35 or below (+-), Kubernetes 1.36 (✓), Kubernetes 1.37 or above (+-)
- [client 36.y.z](https://pypi.org/project/kubernetes/36.0.1/): Kubernetes 1.35 or below (+-), Kubernetes 1.36 (✓), Kubernetes 1.37 or above (+-)


> See [here](#homogenizing-the-kubernetes-python-client-versions) for an explanation of why there is no v13-v16 release.
Expand Down
1 change: 0 additions & 1 deletion examples/cronjob_crud.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/usr/bin/python3
# -*- coding:utf-8 -*-

import json
import time
Expand Down
1 change: 0 additions & 1 deletion examples/duration-gep2257.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/usr/bin/python3
# -*- coding:utf-8 -*-

"""
This example uses kubernetes.utils.duration to parse and display
Expand Down
3 changes: 1 addition & 2 deletions examples/pod_portforward.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@
import select
import socket
import time

import six.moves.urllib.request as urllib_request
from urllib import request as urllib_request

from kubernetes import config
from kubernetes.client import Configuration
Expand Down
2 changes: 1 addition & 1 deletion examples_asyncio/in_cluster_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
import sys
import traceback

from kubernetes_asyncio import client, config
from kubernetes.aio import client, config


async def main():
Expand Down
4 changes: 2 additions & 2 deletions examples_asyncio/list_pods.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import asyncio

from kubernetes_asyncio import client, config
from kubernetes_asyncio.client.api_client import ApiClient
from kubernetes.aio import client, config
from kubernetes.aio.client.api_client import ApiClient


async def main():
Expand Down
4 changes: 2 additions & 2 deletions examples_asyncio/patch.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import asyncio

from kubernetes_asyncio import client, config
from kubernetes_asyncio.client.api_client import ApiClient
from kubernetes.aio import client, config
from kubernetes.aio.client.api_client import ApiClient

SERVICE_NAME = "example-service"
SERVICE_NS = "default"
Expand Down
2 changes: 1 addition & 1 deletion kubernetes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ No description provided (generated by Openapi Generator https://github.com/opena
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: release-1.36
- Package version: 36.0.0
- Package version: 36.0.1
- Build package: org.openapitools.codegen.languages.PythonLegacyClientCodegen

## Requirements.
Expand Down
2 changes: 1 addition & 1 deletion kubernetes/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

__project__ = 'kubernetes'
# The version is auto-updated. Please do not edit.
__version__ = "36.0.0"
__version__ = "36.0.1"

from . import client
from . import config
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
26 changes: 13 additions & 13 deletions kubernetes_asyncio/README.md → kubernetes/aio/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# kubernetes_asyncio.client
# kubernetes.aio.client
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: release-1.36
- Package version: 36.0.0
- Package version: 36.0.1
- Build package: org.openapitools.codegen.languages.PythonLegacyClientCodegen

## Requirements.
Expand All @@ -17,13 +17,13 @@ Python 2.7 and 3.4+
If the python package is hosted on a repository, you can install directly using:

```sh
pip install git+https://github.com/kubernetes-kubernetes_asyncio.client/python.git
pip install git+https://github.com/kubernetes-kubernetes.aio.client/python.git
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/kubernetes-kubernetes_asyncio.client/python.git`)
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/kubernetes-kubernetes.aio.client/python.git`)

Then import the package:
```python
import kubernetes_asyncio.client
import kubernetes.aio.client
```

### Setuptools
Expand All @@ -37,7 +37,7 @@ python setup.py install --user

Then import the package:
```python
import kubernetes_asyncio.client
import kubernetes.aio.client
```

## Getting Started
Expand All @@ -48,17 +48,17 @@ Please follow the [installation procedure](#installation--usage) and then run th
from __future__ import print_function

import time
import kubernetes_asyncio.client
from kubernetes_asyncio.client.rest import ApiException
import kubernetes.aio.client
from kubernetes.aio.client.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to http://localhost
# See configuration.py for a list of all supported configuration parameters.
configuration = kubernetes_asyncio.client.Configuration(
configuration = kubernetes.aio.client.Configuration(
host = "http://localhost"
)

# The kubernetes_asyncio.client must configure the authentication and authorization parameters
# The kubernetes.aio.client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
Expand All @@ -70,10 +70,10 @@ configuration.api_key['BearerToken'] = 'YOUR_API_KEY'
# configuration.api_key_prefix['BearerToken'] = 'Bearer'


# Enter a context with an instance of the API kubernetes_asyncio.client
async with kubernetes_asyncio.client.ApiClient(configuration) as api_client:
# Enter a context with an instance of the API kubernetes.aio.client
async with kubernetes.aio.client.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = kubernetes_asyncio.client.WellKnownApi(api_client)
api_instance = kubernetes.aio.client.WellKnownApi(api_client)

try:
api_response = await api_instance.get_service_account_issuer_open_id_configuration()
Expand Down
6 changes: 3 additions & 3 deletions kubernetes_asyncio/__init__.py → kubernetes/aio/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.

__project__ = "kubernetes_asyncio"
__project__ = "kubernetes_aio"
# The version is auto-updated. Please do not edit.
__version__ = "36.0.0"
__version__ = "36.0.1"

import kubernetes_asyncio.client as client
import kubernetes.aio.client as client

__all__ = ["client"]
Loading