Skip to content

Allow kubernetes and kubernetes_asyncio client 36.x in cncf.kubernetes - #68041

Merged
kaxil merged 1 commit into
apache:mainfrom
astronomer:bump-cncf-kubernetes-36
Jun 4, 2026
Merged

Allow kubernetes and kubernetes_asyncio client 36.x in cncf.kubernetes#68041
kaxil merged 1 commit into
apache:mainfrom
astronomer:bump-cncf-kubernetes-36

Conversation

@kaxil

@kaxilkaxil commented Jun 4, 2026

Copy link
Copy Markdown
Member

What

Allow the kubernetes and kubernetes_asyncio clients on the 36.x line in the cncf.kubernetes provider:

  • kubernetes: >=35.0.0,<36.0.0 -> >=35.0.0,!=36.0.0,<37.0.0
  • kubernetes_asyncio: >=32.0.0,<36.0.0 -> >=32.0.0,<37.0.0

Why

35.0.0 is the only release in the previous [35.0.0, 36.0.0) range, and it ignores NO_PROXY/no_proxy: Configuration.__init__ loads the value from the environment and then resets it to None (kubernetes-client/python#2520). Behind a corporate proxy this forces in-cluster API-server traffic through HTTP(S)_PROXY, so KubernetesPodOperator, the hooks, and the Kubernetes executor time out reaching the cluster. The fix only landed in the 36.x client, which the previous bound excluded, so there was no proxy-respecting version installable in range.

36.0.0 is excluded from the range: it shipped an in-cluster auth regression where load_incluster_config() writes api_key['authorization'] while auth_settings() expects api_key['BearerToken'], sending in-cluster calls unauthenticated (#2582, #2584). It is fixed in 36.0.1.

kubernetes_asyncio could not move before because it had no 36.x release; 36.1.0 is now available, so the async bound aligns with the sync one.

Validation

The provider unit suite passes against kubernetes==36.0.1 + kubernetes_asyncio==36.1.0 (1111 passed, 17 skipped; all provider modules import; 1128 tests collected with no errors). CI integration tests exercise the real-cluster paths (watch, auth, serialization) that the unit tests mock.

Closed#67845

@jscheffljscheffl left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool!

35.0.0 is the only release in the previous [35.0.0, 36.0.0) range and it
ignores NO_PROXY (kubernetes-client/python#2520): in-cluster API traffic is
forced through HTTP(S)_PROXY, so KubernetesPodOperator, the hooks and the
Kubernetes executor time out behind a corporate proxy. The fix is only in the
36.x client.
Allow the 36.x line and exclude 36.0.0, which shipped an in-cluster auth
regression (kubernetes-client/python#2582) fixed in 36.0.1. kubernetes_asyncio
36.1.0 is now available, so the async bound can align with the sync one.
Related: apache#67845
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:providerskind:documentationprovider:cncf-kubernetesKubernetes (k8s) provider related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

cncf.kubernetes: support kubernetes client 36.x (>=36.0.1) - 35.x no_proxy regression breaks KubernetesPodOperator/hooks behind a corporate proxy

4 participants

@kaxil@potiuk@bugraoz93@jscheffl