This is an automated email from the ASF dual-hosted git repository.
vatsrahul1001 pushed a commit to branch v3-4-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit d30a2f8de52b71ac8b6f0ea282b1bf315a5eebad
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sun Nov 1 19:28:03 2026 +0100
[v3-4-test] Run the RunsOn jobs on the Flex stack in all three us-east-2
zones (#76239) (#76240)
The env=flex label sends the jobs to the runs-on-flex stack from
apache/airflow-ci-infra, which
places runners in use2-az1, use2-az2 and use2-az3; the CloudFormation stack
only uses the first
two, where the Spot capacity for the runners' families is the worst in the
region. All labels move
together, because the stash actions keep image tars in the cache bucket of
the stack that ran the
job. Removing env=flex moves the jobs back.
(cherry picked from commit bee03ecccb9f06baef487c845564962285bcfa9e)
Generated-by: Claude Opus 5
Co-authored-by: Jarek Potiuk <[email protected]>
---
.github/workflows/dependency-upgrade-report.yml | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 9 +++++----
dev/breeze/tests/test_selective_checks.py | 8 ++++----
3 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/dependency-upgrade-report.yml
b/.github/workflows/dependency-upgrade-report.yml
index df9c7e33f85..fa2dc917a63 100644
--- a/.github/workflows/dependency-upgrade-report.yml
+++ b/.github/workflows/dependency-upgrade-report.yml
@@ -77,7 +77,7 @@ jobs:
'(constraints(?:-source-providers|-no-providers)?)-(true|false)-([1-9][0-9]*)$');
const saved = artifacts.map(a => [a,
inputName.exec(a.name)]).filter(([, match]) => match);
// Only RunsOn runners can read RunsOn's S3 cache, where a canary
on RunsOn keeps its CI image.
- const runsOnRunner =
`runs-on=${process.env.GITHUB_RUN_ID}/family=m8a+m8i+m7a+m7i+m6i` +
+ const runsOnRunner =
`runs-on=${process.env.GITHUB_RUN_ID}/env=flex/family=m8a+m8i+m7a+m7i+m6i` +
'/image=ubuntu22-full-x64/volume=150gb/spot=co/cpu=8/ram=32';
for (const [input, [, python, mode, useUv, attempt]] of saved) {
if (attempt !== rawAttempt) continue;
diff --git a/dev/breeze/src/airflow_breeze/global_constants.py
b/dev/breeze/src/airflow_breeze/global_constants.py
index aa619bbc61f..75d64bdb551 100644
--- a/dev/breeze/src/airflow_breeze/global_constants.py
+++ b/dev/breeze/src/airflow_breeze/global_constants.py
@@ -47,22 +47,23 @@ PUBLIC_ARM_RUNNERS = '["ubuntu-22.04-arm"]'
# runners were reclaimed far more often than the rest (13-54% vs. 1-4%, Oct
2026): m5, m5a, m6a and,
# for the in-memory runners, r7a, r6a, r6i; r7i, which AWS Spot Advisor rates
>20% there, too.
RUNS_ON_AMD_RUNNER_TEMPLATE = (
-
"runs-on={run_id}/family=m8a+m8i+m7a+m7i+m6i/image=ubuntu22-full-x64/volume=150gb/spot=co"
+
"runs-on={run_id}/env=flex/family=m8a+m8i+m7a+m7i+m6i/image=ubuntu22-full-x64/volume=150gb/spot=co"
"/cpu={{0}}/ram={{1}}"
)
RUNS_ON_ARM_RUNNER_TEMPLATE = (
-
"runs-on={run_id}/family=m8g+m7g+m6g/image=ubuntu22-full-arm64/volume=150gb/spot=co/cpu={{0}}/ram={{1}}"
+
"runs-on={run_id}/env=flex/family=m8g+m7g+m6g/image=ubuntu22-full-arm64/volume=150gb/spot=co"
+ "/cpu={{0}}/ram={{1}}"
)
# The same runners with docker, /tmp and /home/runner on a RAM disk (RunsOn
`extras=tmpfs`), for jobs whose
# databases wait on disk syncs. The RAM disk is capped at 100% of RAM before
RunsOn v3.5.0, so these jobs
# ask for memory headroom and also accept the memory-optimized r-family.
RUNS_ON_AMD_IN_MEMORY_RUNNER_TEMPLATE = (
- "runs-on={run_id}/family=m8a+m8i+m7a+m7i+m6i+r8i"
+ "runs-on={run_id}/env=flex/family=m8a+m8i+m7a+m7i+m6i+r8i"
"/image=ubuntu22-full-x64/volume=150gb/spot=co"
"/cpu={{0}}/ram={{1}}/extras=tmpfs"
)
RUNS_ON_ARM_IN_MEMORY_RUNNER_TEMPLATE = (
-
"runs-on={run_id}/family=m8g+m7g+m6g+r8g+r7g+r6g/image=ubuntu22-full-arm64/volume=150gb/spot=co"
+
"runs-on={run_id}/env=flex/family=m8g+m7g+m6g+r8g+r7g+r6g/image=ubuntu22-full-arm64/volume=150gb/spot=co"
"/cpu={{0}}/ram={{1}}/extras=tmpfs"
)
diff --git a/dev/breeze/tests/test_selective_checks.py
b/dev/breeze/tests/test_selective_checks.py
index 47d3913f8b9..9a7633fbee9 100644
--- a/dev/breeze/tests/test_selective_checks.py
+++ b/dev/breeze/tests/test_selective_checks.py
@@ -5198,18 +5198,18 @@ def
test_providers_with_test_side_effects_are_shared_process_providers():
RUNS_ON_AMD = (
-
'["runs-on=42/family=m8a+m8i+m7a+m7i+m6i/image=ubuntu22-full-x64/volume=150gb/spot=co/cpu={0}/ram={1}"]'
+
'["runs-on=42/env=flex/family=m8a+m8i+m7a+m7i+m6i/image=ubuntu22-full-x64/volume=150gb/spot=co/cpu={0}/ram={1}"]'
)
RUNS_ON_ARM = (
-
'["runs-on=42/family=m8g+m7g+m6g/image=ubuntu22-full-arm64/volume=150gb/spot=co/cpu={0}/ram={1}"]'
+
'["runs-on=42/env=flex/family=m8g+m7g+m6g/image=ubuntu22-full-arm64/volume=150gb/spot=co/cpu={0}/ram={1}"]'
)
RUNS_ON_AMD_IN_MEMORY = (
- '["runs-on=42/family=m8a+m8i+m7a+m7i+m6i+r8i'
+ '["runs-on=42/env=flex/family=m8a+m8i+m7a+m7i+m6i+r8i'
"/image=ubuntu22-full-x64/volume=150gb/spot=co"
'/cpu={0}/ram={1}/extras=tmpfs"]'
)
RUNS_ON_ARM_IN_MEMORY = (
-
'["runs-on=42/family=m8g+m7g+m6g+r8g+r7g+r6g/image=ubuntu22-full-arm64/volume=150gb/spot=co'
+
'["runs-on=42/env=flex/family=m8g+m7g+m6g+r8g+r7g+r6g/image=ubuntu22-full-arm64/volume=150gb/spot=co'
'/cpu={0}/ram={1}/extras=tmpfs"]'
)