potiuk opened a new pull request, #65598:
URL: https://github.com/apache/airflow/pull/65598

   ## Summary
   
   On ARM CI runners with a cold containerd cache, the first K8s system test 
that needs to pull a new image can exceed `KubernetesPodOperator`'s default 
`startup_timeout_seconds=120`, producing a `PodLaunchTimeoutException` that 
surfaces as a generic `AirflowException: Pod ... returned a failure`.
   
   Observed in apache/airflow actions run 
[24716106401](https://github.com/apache/airflow/actions/runs/24716106401), job 
[72301089157](https://github.com/apache/airflow/actions/runs/24716106401/job/72301089157)
 (`K8S System:CeleryExecutor-3.12-v1.32.8-false`, ARM): both failing tests took 
exactly ~120s, matching the default; pod events showed `Pulling image "alpine" 
...` with no `Successfully pulled` inside the 120s window.
   
   Two small changes in `kubernetes-tests/` only — no production code touched.
   
   ### 1. `basic_pod.yaml` / `test_full_pod_spec`: `perl` → `ubuntu`
   
   The pod template just runs `/bin/bash -c 'echo {"hello":"world"} > 
/airflow/xcom/return.json'`. Any image with bash works, and `ubuntu` is already 
warmed by earlier tests in the suite — eliminates the `perl` image pull 
entirely.
   
   ### 2. `startup_timeout_seconds=XCOM_STARTUP_TIMEOUT_SECONDS` (300s) on 
every real-cluster `do_xcom_push=True` test
   
   Since pytest ordering isn't guaranteed, whichever xcom test runs first has 
to absorb the one-time `alpine` sidecar pull. Bumping the budget on all of them 
keeps the suite order-independent. A module-level constant with an inline 
comment documents the reasoning.
   
   The operator's production default of 120s is **unchanged** — this is a 
test-side robustness tweak only.
   
   ## Test plan
   
   - [ ] Next scheduled `ci-amd-arm.yml` run (or a manual rerun of the job 
above) shows the `K8S System:CeleryExecutor-3.12-v1.32.8-false` job passing.
   - [ ] Existing K8s system tests on AMD runners continue to pass (they 
already ran in ~5s per test, so raising the max budget is a no-op for them).
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes — Claude Code (Opus 4.7)
   
   Generated-by: Claude Code (Opus 4.7) following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)


-- 
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