This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch runs-on-env-flex in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 8b6026c0fc22a4026815b416182d3a4b7f8f248a Author: Jarek Potiuk <[email protected]> AuthorDate: Sun Nov 1 19:16:45 2026 +0100 Run the RunsOn jobs on the Flex stack in all three us-east-2 zones 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. Generated-by: Claude Opus 5 --- .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 fd540a4efeb..e129805779d 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"]' )
