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
Copy link
Copy Markdown
Member

@kaxil kaxil commented Jun 4, 2026

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

Copy link
Copy Markdown
Contributor

@jscheffl jscheffl left a comment

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
@kaxil kaxil force-pushed the bump-cncf-kubernetes-36 branch from a956211 to b42c7ba Compare June 4, 2026 22:55
@kaxil kaxil merged commit 0dd0189 into apache:main Jun 4, 2026
6 checks passed
@kaxil kaxil deleted the bump-cncf-kubernetes-36 branch June 4, 2026 22:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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