alixirs opened a new issue, #67845:
URL: https://github.com/apache/airflow/issues/67845

   ### Under which category would you file this issue?
   
   Providers
   
   ### Apache Airflow version
   
   3.2.1
   
   ### What happened and how to reproduce it?
   
   The provider pins `kubernetes>=35.0.0,<36.0.0` and 
`kubernetes_asyncio>=32.0.0,<36.0.0`. The only kubernetes release in [35.0.0, 
36.0.0) is 35.0.0, which carries the upstream `no_proxy` regression 
`kubernetes-client/python#2520` - "no_proxy environment variable ignored in 
kubernetes-client Python library". The client then routes every request through 
HTTP(S)_PROXY, including in-cluster API-server traffic to 
KUBERNETES_SERVICE_HOST.
   
   For users behind a corporate proxy, this breaks every provider component 
that talks to the in-cluster API, most visibly KubernetesPodOperator (and 
KubernetesHook / AsyncKubernetesHook): the calls to create and monitor the 
target pod are sent to the proxy, which can't route to a cluster-internal IP, 
so they time out:
   
   ```
   ReadTimeoutError("HTTPSConnectionPool(host='10.x.x.x', port=443): Read timed 
out. (read timeout=30)")
   ```
   
   `nc -zv <KUBERNETES_SERVICE_HOST> 443` from the same pod connects fine, 
confirming it's proxy routing, not connectivity. The `no_proxy` fix landed only 
in kubernetes 36.0.0, which the provider bound excludes, so there is currently 
no proxy-respecting version installable within the supported range.
   
   Minimal (provider only, no executor):
   
   1. Airflow 3.2.1 + `apache-airflow-providers-cncf-kubernetes==10.17.1`, 
default `kubernetes==35.0.0`, running in-cluster.
   2. Set `HTTP_PROXY/HTTPS_PROXY` and `NO_PROXY` (incl. in-cluster ranges, 
`.svc`, `.svc.cluster.local`) in the pod env.
   3. Run a `KubernetesPodOperator` task (or just 
`KubernetesHook().core_v1_client.list_namespaced_pod(<ns>)`). The in-cluster 
API call is sent to the proxy and times out; `no_proxy` is ignored.
   4. Pin `kubernetes==36.0.1` - the proxy/auth issues resolve, but the 
provider then needs validation against v36's API changes.
   
   ### What you think should happen instead?
   
   cncf.kubernetes should support the `kubernetes` client 36.x, specifically 
≥36.0.1, so proxied deployments have a working option. This needs validation, 
not just a bound bump:
   
   •  36.0.0 is not a viable floor. It shipped an in-cluster auth regression: 
`load_incluster_config()` writes `api_key['authorization']` but 
`auth_settings()` now expects `api_key['BearerToken']` 
([#2582](https://github.com/kubernetes-client/python/issues/2582) / 
[#2584](https://github.com/kubernetes-client/python/issues/2584)) — so any 
provider code using in-cluster config (KPO, hooks) goes out as system:anonymous 
(401/403). Fixed in 36.0.1 
([#2585](https://github.com/kubernetes-client/python/issues/2585)).
   •  v36 carries breaking API changes from the OpenAPI generator 6.6.0 bump 
(see the `release-36.0` CHANGELOG, "Breaking Change from upgrading openapi 
generator to v6.6.0"; downstream fallout e.g. `ApiClient.__new__` changes, 
nolar/kopf#1307). KPO, the hooks, and the triggers call into the client 
directly and likely need adapting.
   •  `kubernetes_asyncio` has no 36.x release yet, so 
`kubernetes_asyncio<36.0.0` can't move until upstream publishes one. This gates 
`AsyncKubernetesHook` / deferrable KPO and probably means the sync bound has to 
move ahead of the async one.
   
   ### Operating System
   
   Astro Runtime Version: 3.2-4 PRETTY_NAME="Debian GNU/Linux 13 (trixie)" 
NAME="Debian GNU/Linux" VERSION_ID="13" VERSION="13 (trixie)" 
VERSION_CODENAME=trixie DEBIAN_VERSION_FULL=13.4
   
   ### Deployment
   
   Astronomer
   
   ### Apache Airflow Provider(s)
   
   cncf-kubernetes
   
   ### Versions of Apache Airflow Providers
   
   apache-airflow-providers-cncf-kubernetes==10.17.1
   
   ### Official Helm Chart version
   
   Not Applicable
   
   ### Kubernetes Version
   
   1.33.12-gke.1059000
   
   ### Helm Chart configuration
   
   Not Applicable
   
   ### Docker Image customizations
   
   ```
   FROM astrocrpublic.azurecr.io/runtime:3.2-4
   
   ENV HTTP_PROXY="http://tinyproxy.proxy.svc.cluster.local:8888";
   ENV HTTPS_PROXY="http://tinyproxy.proxy.svc.cluster.local:8888";
   ENV 
NO_PROXY="localhost,127.0.0.0/8,19.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.ford.com,.appspot.com,.cloudfunctions.net,.cloudproxy.app,.datafusion.cloud.google.com,.datafusion.googleusercontent.com,.gcr.io,.internal,.googleadapis.com,.googleapis.com,.gstatic.com,.ltsapis.goog,.packages.cloud.google.com,.pkg.dev,.pki.goog,.run.app,.source.developers.google.com,.gcp.cloud.es.io,.smt-gce.susecloud.net"
   ENV http_proxy="http://tinyproxy.proxy.svc.cluster.local:8888";
   ENV https_proxy="http://tinyproxy.proxy.svc.cluster.local:8888";
   ENV 
no_proxy="localhost,127.0.0.0/8,19.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.ford.com,.appspot.com,.cloudfunctions.net,.cloudproxy.app,.datafusion.cloud.google.com,.datafusion.googleusercontent.com,.gcr.io,.internal,.googleadapis.com,.googleapis.com,.gstatic.com,.ltsapis.goog,.packages.cloud.google.com,.pkg.dev,.pki.goog,.run.app,.source.developers.google.com,.gcp.cloud.es.io,.smt-gce.susecloud.net"
   ```
   
   ### Anything else?
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to