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

   ## Description
   
   K8S system tests fail intermittently when Docker Hub anonymous-pull rate 
limits are exhausted. The Helm chart's postgresql subchart pulls 
`bitnamilegacy/postgresql:16.1.0-debian-11-r15` inside Kind at pod scheduling 
time — unauthenticated and without retry logic. When the runner IP's quota is 
spent, PostgreSQL never starts and all Airflow pods enter CrashLoopBackOff.
   
   PR #66423 added `K8S_TEST_IMAGES_TO_PRELOAD` with retry-on-429 and `kind 
load` to eliminate this class of flake, but the postgresql image was not 
included.
   
   ## Changes
   
   - `dev/breeze/src/airflow_breeze/commands/kubernetes_commands.py`: Add 
`bitnamilegacy/postgresql:16.1.0-debian-11-r15` to `K8S_TEST_IMAGES_TO_PRELOAD`
   
   ## Root Cause
   
   The image is tagged (not `:latest`), so kubelet defaults to 
`imagePullPolicy: IfNotPresent`. Once pre-loaded via `kind load docker-image`, 
kubelet finds it locally and never reaches Docker Hub.
   
   ```
   # Before — postgresql not in the pre-load list, pulled live inside Kind
   K8S_TEST_IMAGES_TO_PRELOAD: tuple[str, ...] = (
       "alpine:3.23",
       "busybox:1.37",
       "ubuntu:24.04",
   )
   
   # After — postgresql pre-loaded with retry-on-429, then kind-loaded
   K8S_TEST_IMAGES_TO_PRELOAD: tuple[str, ...] = (
       "alpine:3.23",
       "bitnamilegacy/postgresql:16.1.0-debian-11-r15",
       "busybox:1.37",
       "ubuntu:24.04",
   )
   ```
   
   Evidence from two unrelated PRs:
   - PR #66420 (1-line comment change): `ErrImagePull: 429 Too Many Requests` 
on `bitnamilegacy/postgresql` — 5/6 K8S jobs passed, 1 failed
   - PR #65840 (sphinx theme workspace): `TLS handshake timeout` pulling 
`bash:latest` — 35/36 K8S jobs passed, 1 failed
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes — Claude Opus 4.6
   
   ---
   
   * Read the **[Pull Request 
Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)**
 for more information. Note: commit author/co-author name and email in commits 
become permanently public when merged.
   * For fundamental code changes, an Airflow Improvement Proposal 
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals))
 is needed.
   * When adding dependency, check compliance with the [ASF 3rd Party License 
Policy](https://www.apache.org/legal/resolved.html#category-x).
   * For significant user-facing changes create newsfragment: 
`{pr_number}.significant.rst`, in 
[airflow-core/newsfragments](https://github.com/apache/airflow/tree/main/airflow-core/newsfragments).
 You can add this file in a follow-up commit after the PR is created so you 
know the PR number.


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