This is an automated email from the ASF dual-hosted git repository.
shahar1 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new a4ea3ffc405 Fix LatestBoto CI test stuck at boto3 1.38.2 (below
provider minimum) (#68122)
a4ea3ffc405 is described below
commit a4ea3ffc405264eaf028b1ef3b17f6829589ff5b
Author: Shahar Epstein <[email protected]>
AuthorDate: Sat Jun 6 12:24:39 2026 +0300
Fix LatestBoto CI test stuck at boto3 1.38.2 (below provider minimum)
(#68122)
The `check_boto_upgrade()` function in `entrypoint_ci.sh` was capping
boto3/botocore
at `<1.38.3` to prevent urllib3 2.6.0 from being pulled in (it had removed
`getheaders()`, breaking the kubernetes client). That workaround was
applied in
Dec 2025 alongside a `urllib3<2.6.0` pin.
Since then, urllib3 2.6.1+ restored `getheaders()`, and the other affected
files
(`kubernetes-tests/pyproject.toml`,
`providers/cncf/kubernetes/pyproject.toml`)
were already updated to `urllib3!=2.6.0` (PR #59203). The `entrypoint_ci.sh`
was missed.
Result: the LatestBoto CI job was installing boto3 1.38.2, which is below
the
amazon provider's declared minimum (`boto3>=1.41.0`) and predates the
addition of
the `bedrock-agentcore-control` and `bedrock-agentcore` services to
botocore,
causing unrelated test failures for new operators that use those services.
Fix: remove the boto3/botocore upper bounds and change `urllib3<2.6.0` to
`urllib3!=2.6.0`, consistent with the rest of the repo.
---
Dockerfile.ci | 6 +++---
scripts/docker/entrypoint_ci.sh | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Dockerfile.ci b/Dockerfile.ci
index 144b118ad69..76dd3f1a5e8 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -1400,11 +1400,11 @@ function check_boto_upgrade() {
# shellcheck disable=SC2086
${PACKAGING_TOOL_CMD} uninstall ${EXTRA_UNINSTALL_FLAGS} aiobotocore s3fs
|| true
- # Urllib 2.6.0 breaks kubernetes client because kubernetes client uses
deprecated in 2.0.0 and
- # removed in 2.6.0 `getheaders()` call (instead of `headers` property.
+ # Urllib 2.6.0 broke kubernetes client by removing getheaders() (restored
in 2.6.1+).
+ # Exclude exactly 2.6.0; any other version is fine.
# Tracked in https://github.com/kubernetes-client/python/issues/2477
# shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} --upgrade
"boto3<1.38.3" "botocore<1.38.3" "urllib3<2.6.0"
+ ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} --upgrade "boto3"
"botocore" "urllib3!=2.6.0"
}
function check_upgrade_sqlalchemy() {
diff --git a/scripts/docker/entrypoint_ci.sh b/scripts/docker/entrypoint_ci.sh
index cb995496ee1..efaac95c996 100755
--- a/scripts/docker/entrypoint_ci.sh
+++ b/scripts/docker/entrypoint_ci.sh
@@ -324,11 +324,11 @@ function check_boto_upgrade() {
# shellcheck disable=SC2086
${PACKAGING_TOOL_CMD} uninstall ${EXTRA_UNINSTALL_FLAGS} aiobotocore s3fs
|| true
- # Urllib 2.6.0 breaks kubernetes client because kubernetes client uses
deprecated in 2.0.0 and
- # removed in 2.6.0 `getheaders()` call (instead of `headers` property.
+ # Urllib 2.6.0 broke kubernetes client by removing getheaders() (restored
in 2.6.1+).
+ # Exclude exactly 2.6.0; any other version is fine.
# Tracked in https://github.com/kubernetes-client/python/issues/2477
# shellcheck disable=SC2086
- ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} --upgrade
"boto3<1.38.3" "botocore<1.38.3" "urllib3<2.6.0"
+ ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} --upgrade "boto3"
"botocore" "urllib3!=2.6.0"
}
# Upgrade sqlalchemy to the latest version to run tests with it