Skip to content

Commit fbf35d1

Browse files
authored
osdc: rename arc-cbr-production → meta-prod-aws-ue2 (#815)
Rename the us-east-2 prod cluster `arc-cbr-production` → `meta-prod-aws-ue2` to match the `meta-prod-aws-*` convention (mirrors `meta-prod-aws-ue1`). Renames cluster ID, `cluster_name`, and `github_secret_name`; keeps the legacy `state_bucket` (`ciforge-tfstate-arc-cbr-prod`) like ue1 did. `cluster_name` is a ForceNew property of the EKS cluster, so this is a destroy + recreate, not an in-place change. ## ⚠️ Runner-group change — needs confirmation before rollout Unlike the uw1 rename, this cluster currently uses the **shared `default` / `release-runners`** groups (it sets no `runner_group`). This PR moves it to a **dedicated `meta-prod-aws-ue2`** group (full ue1 mirror). Consequences to confirm: - A new `meta-prod-aws-ue2` runner group must be created at the pytorch org with `pytorch/pytorch` access. - **Nothing else may rely on prod runners being in `default`/`release-runners`** — in particular release workflows that target `release-runners`. The Grafana mapping for `default`/`release-runners` is replaced by `meta-prod-aws-ue2`, so those groups drop off the dashboard. If keeping `default`/`release-runners` is preferred, say so and I'll drop the `runner_group` line + revert the grafana mapping change. ## Rollout 0. Rebase to latest `main`. 1. Drain traffic: `just drain-runners arc-cbr-production` (or the `OSDC: Drain cluster` workflow). Old id, since the rename hasn't merged. 2. Destroy: `aws s3 rm s3://pytorch-arc-cbr-production-harbor-registry --recursive --region us-east-2` (also delete versions per `cluster-recreation.md` §4), then `./scripts/destroy-cluster.sh arc-cbr-production`. Leave the state bucket. 3. Deploy the new cluster **with `pause_runners`** (local edit, do NOT commit): `just deploy-base meta-prod-aws-ue2` → plant the `meta-prod-aws-ue2` App secret → `just deploy meta-prod-aws-ue2`. No `just bootstrap` (state bucket persists). 4. Smoke test: `just smoke meta-prod-aws-ue2`. 5. Merge and deploy again **without `pause_runners`**: `git checkout osdc/clusters.yaml`, merge, then dispatch `OSDC: Deploy production` with `target: meta-prod-aws-ue2`. ## Notes - Full propagation: observability docs (loki/mimir/observability/estimates), operations, pypi-package-cache, and test fixtures had `arc-cbr-production` as the canonical example — all updated to `meta-prod-aws-ue2`. - Branches off `main`, so it overlaps the uw1 rename PR (#814) on a few shared lines (deploy-prod rollout comment, grafana IN-lists); whichever lands second needs a trivial rebase. `just lint` (13/13) and `just test` (98.70% cov) pass. ## Also: drop unused modules Removes `pypi-cache` and `cache-enforcer` from this cluster's `modules` list (the `lf-prod-aws-*` clusters run neither). Just stops deploying them here; module teardown is a separate cleanup, and the `pypi_cache:` config block is left in place for now. --------- Signed-off-by: Huy Do <huydo@meta.com>
1 parent 53ab1ff commit fbf35d1

21 files changed

Lines changed: 237 additions & 181 deletions

.github/workflows/_osdc-deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
workflow_call:
55
inputs:
66
cluster:
7-
description: "Cluster id from clusters.yaml (e.g. meta-staging-aws-uw1, arc-cbr-production)"
7+
description: "Cluster id from clusters.yaml (e.g. meta-staging-aws-uw1, meta-prod-aws-ue2)"
88
required: true
99
type: string
1010
environment:

.github/workflows/_osdc-slow-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212
workflow_call:
1313
inputs:
1414
cluster:
15-
description: "Cluster id from clusters.yaml (e.g. meta-staging-aws-uw1, arc-cbr-production)"
15+
description: "Cluster id from clusters.yaml (e.g. meta-staging-aws-uw1, meta-prod-aws-ue2)"
1616
required: true
1717
type: string
1818
environment:

.github/workflows/osdc-deploy-prod.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ name: "OSDC: Deploy production"
55
# the reusable workflow, which selects LF_AWS_DEPLOY_ROLE_ARN over the Meta role.
66
#
77
# Default behavior (target = all): sequential rollout of all clusters.
8-
# Meta: meta-prod-aws-uw1 → arc-cbr-production → meta-prod-aws-ue1
8+
# Meta: meta-prod-aws-uw1 → meta-prod-aws-ue2 → meta-prod-aws-ue1
99
# LF: lf-prod-aws-ue1 → lf-prod-aws-ue2 (runs in parallel with Meta)
1010
#
1111
# Use `all-meta` or `all-lf` to deploy only one account's clusters.
@@ -30,7 +30,7 @@ on:
3030
- all-meta
3131
- all-lf
3232
- meta-prod-aws-uw1
33-
- arc-cbr-production
33+
- meta-prod-aws-ue2
3434
- meta-prod-aws-ue1
3535
- lf-prod-aws-ue1
3636
- lf-prod-aws-ue2
@@ -77,12 +77,12 @@ jobs:
7777
needs: deploy_uw1
7878
if: |
7979
!cancelled() && (
80-
inputs.target == 'arc-cbr-production' ||
80+
inputs.target == 'meta-prod-aws-ue2' ||
8181
((inputs.target == 'all' || inputs.target == 'all-meta') && needs.deploy_uw1.result == 'success')
8282
)
8383
uses: ./.github/workflows/_osdc-deploy.yml
8484
with:
85-
cluster: arc-cbr-production
85+
cluster: meta-prod-aws-ue2
8686
environment: osdc-production
8787
taint_nodes: ${{ inputs.taint_nodes }}
8888
restart_listeners: ${{ inputs.restart_listeners }}

.github/workflows/osdc-drain.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ on:
2121
- meta-staging-aws-ue1
2222
- meta-staging-aws-ue2
2323
- meta-prod-aws-uw1
24-
- arc-cbr-production
24+
- meta-prod-aws-ue2
2525
- meta-prod-aws-ue1
2626
- lf-prod-aws-ue1
2727
- lf-prod-aws-ue2

.github/workflows/osdc-plan-prod.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
if: github.event.pull_request.head.repo.full_name == github.repository
2323
uses: ./.github/workflows/_osdc-plan.yml
2424
with:
25-
cluster: arc-cbr-production
25+
cluster: meta-prod-aws-ue2
2626
pr_number: ${{ github.event.pull_request.number }}
2727
secrets: inherit
2828

.github/workflows/osdc-undrain.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
- meta-staging-aws-ue1
2323
- meta-staging-aws-ue2
2424
- meta-prod-aws-uw1
25-
- arc-cbr-production
25+
- meta-prod-aws-ue2
2626
- meta-prod-aws-ue1
2727
- lf-prod-aws-ue1
2828
- lf-prod-aws-ue2

grafana/AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ mise run push --folder "..."
3333

3434
| `runner_group_name` | `${cluster}` value |
3535
|---|---|
36-
| `default`, `release-runners` | `pytorch-arc-cbr-production` |
36+
| `meta-prod-aws-ue2` | `meta-prod-aws-ue2` |
3737
| `meta-prod-aws-uw1` | `meta-prod-aws-uw1` |
3838
| `meta-prod-aws-ue1` | `meta-prod-aws-ue1` |
3939
| `lf-prod-aws-ue1` | `lf-prod-aws-ue1` |

grafana/osdc.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -964,7 +964,7 @@
964964
},
965965
"pluginVersion": "4.17.0",
966966
"queryType": "timeseries",
967-
"rawSql": "SELECT\n toStartOfInterval(created_at, INTERVAL 5 MINUTE) AS time,\n uniqExact(id) AS jobs\nFROM default.workflow_job\nWHERE match(repository_full_name, '^(${repository:regex})$')\n AND arrayExists(label -> match(label, '^(mt|lf)-(rel-)?l-'), labels)\n AND (\n (runner_group_name IN ('default', 'release-runners') AND match('pytorch-arc-cbr-production', '^(${cluster:regex})$'))\n OR (runner_group_name = 'meta-prod-aws-uw1' AND match('meta-prod-aws-uw1', '^(${cluster:regex})$'))\n OR (runner_group_name = 'meta-prod-aws-ue1' AND match('meta-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (runner_group_name = 'lf-prod-aws-ue1' AND match('lf-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (runner_group_name = 'lf-prod-aws-ue2' AND match('lf-prod-aws-ue2', '^(${cluster:regex})$'))\n )\n AND $__timeFilter(created_at)\nGROUP BY time\nORDER BY time ASC"
967+
"rawSql": "SELECT\n toStartOfInterval(created_at, INTERVAL 5 MINUTE) AS time,\n uniqExact(id) AS jobs\nFROM default.workflow_job\nWHERE match(repository_full_name, '^(${repository:regex})$')\n AND arrayExists(label -> match(label, '^(mt|lf)-(rel-)?l-'), labels)\n AND (\n (runner_group_name = 'meta-prod-aws-ue2' AND match('meta-prod-aws-ue2', '^(${cluster:regex})$'))\n OR (runner_group_name = 'meta-prod-aws-uw1' AND match('meta-prod-aws-uw1', '^(${cluster:regex})$'))\n OR (runner_group_name = 'meta-prod-aws-ue1' AND match('meta-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (runner_group_name = 'lf-prod-aws-ue1' AND match('lf-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (runner_group_name = 'lf-prod-aws-ue2' AND match('lf-prod-aws-ue2', '^(${cluster:regex})$'))\n )\n AND $__timeFilter(created_at)\nGROUP BY time\nORDER BY time ASC"
968968
},
969969
"version": "v0"
970970
},
@@ -1215,7 +1215,7 @@
12151215
},
12161216
"pluginVersion": "4.17.0",
12171217
"queryType": "timeseries",
1218-
"rawSql": "SELECT\n bucket_time AS time,\n dateDiff('second', j_created_at, bucket_time) / 60.0 AS queue_minutes\nFROM (\n SELECT\n argMax(created_at, started_at) AS j_created_at,\n argMax(status, started_at) AS j_status,\n argMax(runner_group_name, started_at) AS j_runner_group_name,\n argMax(labels, started_at) AS j_labels,\n max(_inserted_at) AS j_last_insert,\n if(argMax(status, started_at) IN ('queued', 'waiting'), now64(9), argMax(started_at, started_at)) AS j_queue_end\n FROM default.workflow_job\n PREWHERE created_at <= $__toTime\n AND created_at >= $__fromTime - INTERVAL 24 HOUR\n WHERE arrayExists(x -> startsWith(x, 'mt-l-') OR startsWith(x, 'mt-rel-l-') OR startsWith(x, 'lf-l-') OR startsWith(x, 'lf-rel-l-'), labels)\n AND match(repository_full_name, '^(${repository:regex})$')\n GROUP BY id\n HAVING NOT arrayExists(x -> position(x, 'h100') > 0 OR position(x, 'b200') > 0 OR position(x, 'gb200') > 0 OR position(x, 'a100') > 0, j_labels)\n AND arrayExists(x -> match(x, '^(${runner_name_prefix:regex})$'), j_labels)\n AND (\n (j_runner_group_name IN ('default', 'release-runners') AND match('pytorch-arc-cbr-production', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'meta-prod-aws-uw1' AND match('meta-prod-aws-uw1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'meta-prod-aws-ue1' AND match('meta-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'lf-prod-aws-ue1' AND match('lf-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'lf-prod-aws-ue2' AND match('lf-prod-aws-ue2', '^(${cluster:regex})$'))\n OR (j_runner_group_name = '' AND j_status IN ('queued', 'waiting') AND j_last_insert > now() - INTERVAL 3 HOUR)\n )\n AND j_queue_end >= $__fromTime\n) ARRAY JOIN\n arrayDistinct(arrayConcat(\n arrayFilter(\n t -> t >= j_created_at AND t >= $__fromTime AND t <= $__toTime,\n arrayMap(x -> toDateTime64(x, 9),\n range(\n toUInt32(intDiv(toUInt32(greatest(j_created_at, $__fromTime)), 300) * 300),\n toUInt32(intDiv(toUInt32(least(j_queue_end, $__toTime)), 300) * 300) + 300,\n 300\n )\n )\n ),\n if(j_queue_end >= $__fromTime AND j_queue_end <= $__toTime, [j_queue_end], [])\n )) AS bucket_time\nWHERE bucket_time <= j_queue_end\nORDER BY bucket_time"
1218+
"rawSql": "SELECT\n bucket_time AS time,\n dateDiff('second', j_created_at, bucket_time) / 60.0 AS queue_minutes\nFROM (\n SELECT\n argMax(created_at, started_at) AS j_created_at,\n argMax(status, started_at) AS j_status,\n argMax(runner_group_name, started_at) AS j_runner_group_name,\n argMax(labels, started_at) AS j_labels,\n max(_inserted_at) AS j_last_insert,\n if(argMax(status, started_at) IN ('queued', 'waiting'), now64(9), argMax(started_at, started_at)) AS j_queue_end\n FROM default.workflow_job\n PREWHERE created_at <= $__toTime\n AND created_at >= $__fromTime - INTERVAL 24 HOUR\n WHERE arrayExists(x -> startsWith(x, 'mt-l-') OR startsWith(x, 'mt-rel-l-') OR startsWith(x, 'lf-l-') OR startsWith(x, 'lf-rel-l-'), labels)\n AND match(repository_full_name, '^(${repository:regex})$')\n GROUP BY id\n HAVING NOT arrayExists(x -> position(x, 'h100') > 0 OR position(x, 'b200') > 0 OR position(x, 'gb200') > 0 OR position(x, 'a100') > 0, j_labels)\n AND arrayExists(x -> match(x, '^(${runner_name_prefix:regex})$'), j_labels)\n AND (\n (j_runner_group_name = 'meta-prod-aws-ue2' AND match('meta-prod-aws-ue2', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'meta-prod-aws-uw1' AND match('meta-prod-aws-uw1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'meta-prod-aws-ue1' AND match('meta-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'lf-prod-aws-ue1' AND match('lf-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'lf-prod-aws-ue2' AND match('lf-prod-aws-ue2', '^(${cluster:regex})$'))\n OR (j_runner_group_name = '' AND j_status IN ('queued', 'waiting') AND j_last_insert > now() - INTERVAL 3 HOUR)\n )\n AND j_queue_end >= $__fromTime\n) ARRAY JOIN\n arrayDistinct(arrayConcat(\n arrayFilter(\n t -> t >= j_created_at AND t >= $__fromTime AND t <= $__toTime,\n arrayMap(x -> toDateTime64(x, 9),\n range(\n toUInt32(intDiv(toUInt32(greatest(j_created_at, $__fromTime)), 300) * 300),\n toUInt32(intDiv(toUInt32(least(j_queue_end, $__toTime)), 300) * 300) + 300,\n 300\n )\n )\n ),\n if(j_queue_end >= $__fromTime AND j_queue_end <= $__toTime, [j_queue_end], [])\n )) AS bucket_time\nWHERE bucket_time <= j_queue_end\nORDER BY bucket_time"
12191219
},
12201220
"version": "v0"
12211221
},
@@ -1342,7 +1342,7 @@
13421342
},
13431343
"pluginVersion": "4.17.0",
13441344
"queryType": "timeseries",
1345-
"rawSql": "SELECT\n bucket_time AS time,\n dateDiff('second', j_created_at, bucket_time) / 60.0 AS queue_minutes\nFROM (\n SELECT\n argMax(created_at, started_at) AS j_created_at,\n argMax(status, started_at) AS j_status,\n argMax(runner_group_name, started_at) AS j_runner_group_name,\n argMax(labels, started_at) AS j_labels,\n max(_inserted_at) AS j_last_insert,\n if(argMax(status, started_at) IN ('queued', 'waiting'), now64(9), argMax(started_at, started_at)) AS j_queue_end\n FROM default.workflow_job\n PREWHERE created_at <= $__toTime\n AND created_at >= $__fromTime - INTERVAL 24 HOUR\n WHERE arrayExists(x -> startsWith(x, 'mt-l-') OR startsWith(x, 'mt-rel-l-') OR startsWith(x, 'lf-l-') OR startsWith(x, 'lf-rel-l-'), labels)\n AND match(repository_full_name, '^(${repository:regex})$')\n GROUP BY id\n HAVING arrayExists(x -> position(x, 'h100') > 0 OR position(x, 'b200') > 0 OR position(x, 'gb200') > 0 OR position(x, 'a100') > 0, j_labels)\n AND arrayExists(x -> match(x, '^(${runner_name_prefix:regex})$'), j_labels)\n AND (\n (j_runner_group_name IN ('default', 'release-runners') AND match('pytorch-arc-cbr-production', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'meta-prod-aws-uw1' AND match('meta-prod-aws-uw1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'meta-prod-aws-ue1' AND match('meta-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'lf-prod-aws-ue1' AND match('lf-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'lf-prod-aws-ue2' AND match('lf-prod-aws-ue2', '^(${cluster:regex})$'))\n OR (j_runner_group_name = '' AND j_status IN ('queued', 'waiting') AND j_last_insert > now() - INTERVAL 3 HOUR)\n )\n AND j_queue_end >= $__fromTime\n) ARRAY JOIN\n arrayDistinct(arrayConcat(\n arrayFilter(\n t -> t >= j_created_at AND t >= $__fromTime AND t <= $__toTime,\n arrayMap(x -> toDateTime64(x, 9),\n range(\n toUInt32(intDiv(toUInt32(greatest(j_created_at, $__fromTime)), 300) * 300),\n toUInt32(intDiv(toUInt32(least(j_queue_end, $__toTime)), 300) * 300) + 300,\n 300\n )\n )\n ),\n if(j_queue_end >= $__fromTime AND j_queue_end <= $__toTime, [j_queue_end], [])\n )) AS bucket_time\nWHERE bucket_time <= j_queue_end\nORDER BY bucket_time"
1345+
"rawSql": "SELECT\n bucket_time AS time,\n dateDiff('second', j_created_at, bucket_time) / 60.0 AS queue_minutes\nFROM (\n SELECT\n argMax(created_at, started_at) AS j_created_at,\n argMax(status, started_at) AS j_status,\n argMax(runner_group_name, started_at) AS j_runner_group_name,\n argMax(labels, started_at) AS j_labels,\n max(_inserted_at) AS j_last_insert,\n if(argMax(status, started_at) IN ('queued', 'waiting'), now64(9), argMax(started_at, started_at)) AS j_queue_end\n FROM default.workflow_job\n PREWHERE created_at <= $__toTime\n AND created_at >= $__fromTime - INTERVAL 24 HOUR\n WHERE arrayExists(x -> startsWith(x, 'mt-l-') OR startsWith(x, 'mt-rel-l-') OR startsWith(x, 'lf-l-') OR startsWith(x, 'lf-rel-l-'), labels)\n AND match(repository_full_name, '^(${repository:regex})$')\n GROUP BY id\n HAVING arrayExists(x -> position(x, 'h100') > 0 OR position(x, 'b200') > 0 OR position(x, 'gb200') > 0 OR position(x, 'a100') > 0, j_labels)\n AND arrayExists(x -> match(x, '^(${runner_name_prefix:regex})$'), j_labels)\n AND (\n (j_runner_group_name = 'meta-prod-aws-ue2' AND match('meta-prod-aws-ue2', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'meta-prod-aws-uw1' AND match('meta-prod-aws-uw1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'meta-prod-aws-ue1' AND match('meta-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'lf-prod-aws-ue1' AND match('lf-prod-aws-ue1', '^(${cluster:regex})$'))\n OR (j_runner_group_name = 'lf-prod-aws-ue2' AND match('lf-prod-aws-ue2', '^(${cluster:regex})$'))\n OR (j_runner_group_name = '' AND j_status IN ('queued', 'waiting') AND j_last_insert > now() - INTERVAL 3 HOUR)\n )\n AND j_queue_end >= $__fromTime\n) ARRAY JOIN\n arrayDistinct(arrayConcat(\n arrayFilter(\n t -> t >= j_created_at AND t >= $__fromTime AND t <= $__toTime,\n arrayMap(x -> toDateTime64(x, 9),\n range(\n toUInt32(intDiv(toUInt32(greatest(j_created_at, $__fromTime)), 300) * 300),\n toUInt32(intDiv(toUInt32(least(j_queue_end, $__toTime)), 300) * 300) + 300,\n 300\n )\n )\n ),\n if(j_queue_end >= $__fromTime AND j_queue_end <= $__toTime, [j_queue_end], [])\n )) AS bucket_time\nWHERE bucket_time <= j_queue_end\nORDER BY bucket_time"
13461346
},
13471347
"version": "v0"
13481348
},
@@ -1672,7 +1672,7 @@
16721672
"$__all"
16731673
]
16741674
},
1675-
"definition": "SELECT DISTINCT extract(runner_name, '^(.+)-[^-]+-runner-[^-]+$') AS prefix FROM default.workflow_job WHERE arrayExists(x -> startsWith(x, 'mt-l-') OR startsWith(x, 'mt-rel-l-') OR startsWith(x, 'lf-l-') OR startsWith(x, 'lf-rel-l-'), labels) AND started_at > now() - INTERVAL 7 DAY AND runner_group_name IN ('default', 'release-runners', 'meta-prod-aws-uw1', 'meta-prod-aws-ue1', 'lf-prod-aws-ue1', 'lf-prod-aws-ue2') AND extract(runner_name, '^(.+)-[^-]+-runner-[^-]+$') != '' ORDER BY prefix",
1675+
"definition": "SELECT DISTINCT extract(runner_name, '^(.+)-[^-]+-runner-[^-]+$') AS prefix FROM default.workflow_job WHERE arrayExists(x -> startsWith(x, 'mt-l-') OR startsWith(x, 'mt-rel-l-') OR startsWith(x, 'lf-l-') OR startsWith(x, 'lf-rel-l-'), labels) AND started_at > now() - INTERVAL 7 DAY AND runner_group_name IN ('meta-prod-aws-ue2', 'meta-prod-aws-uw1', 'meta-prod-aws-ue1', 'lf-prod-aws-ue1', 'lf-prod-aws-ue2') AND extract(runner_name, '^(.+)-[^-]+-runner-[^-]+$') != '' ORDER BY prefix",
16761676
"hide": "dontHide",
16771677
"includeAll": true,
16781678
"label": "Runner name",
@@ -1689,7 +1689,7 @@
16891689
"editorType": "sql",
16901690
"format": 1,
16911691
"queryType": "table",
1692-
"rawSql": "SELECT DISTINCT extract(runner_name, '^(.+)-[^-]+-runner-[^-]+$') AS prefix FROM default.workflow_job WHERE arrayExists(x -> startsWith(x, 'mt-l-') OR startsWith(x, 'mt-rel-l-') OR startsWith(x, 'lf-l-') OR startsWith(x, 'lf-rel-l-'), labels) AND started_at > now() - INTERVAL 7 DAY AND runner_group_name IN ('default', 'release-runners', 'meta-prod-aws-uw1', 'meta-prod-aws-ue1', 'lf-prod-aws-ue1', 'lf-prod-aws-ue2') AND extract(runner_name, '^(.+)-[^-]+-runner-[^-]+$') != '' ORDER BY prefix"
1692+
"rawSql": "SELECT DISTINCT extract(runner_name, '^(.+)-[^-]+-runner-[^-]+$') AS prefix FROM default.workflow_job WHERE arrayExists(x -> startsWith(x, 'mt-l-') OR startsWith(x, 'mt-rel-l-') OR startsWith(x, 'lf-l-') OR startsWith(x, 'lf-rel-l-'), labels) AND started_at > now() - INTERVAL 7 DAY AND runner_group_name IN ('meta-prod-aws-ue2', 'meta-prod-aws-uw1', 'meta-prod-aws-ue1', 'lf-prod-aws-ue1', 'lf-prod-aws-ue2') AND extract(runner_name, '^(.+)-[^-]+-runner-[^-]+$') != '' ORDER BY prefix"
16931693
},
16941694
"version": "v0"
16951695
},

osdc/clusters.yaml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -421,9 +421,11 @@ clusters:
421421
- monitoring
422422
- logging
423423

424-
arc-cbr-production:
425-
cluster_name: pytorch-arc-cbr-production
424+
meta-prod-aws-ue2:
425+
cluster_name: meta-prod-aws-ue2
426426
region: us-east-2
427+
# state_bucket kept on the legacy arc-cbr name to avoid an S3 migration
428+
# (mirrors meta-prod-aws-ue1, which also kept its arc-cbr bucket).
427429
state_bucket: ciforge-tfstate-arc-cbr-prod
428430
access_config:
429431
authentication_mode: API_AND_CONFIG_MAP
@@ -448,8 +450,9 @@ clusters:
448450
arm64_fallback: 8
449451
arc-runners:
450452
github_config_url: "https://github.com/pytorch"
451-
github_secret_name: pytorch-arc-cbr-production
453+
github_secret_name: meta-prod-aws-ue2
452454
runner_name_prefix: "mt-"
455+
runner_group: "meta-prod-aws-ue2" # moved off the shared "default"/"release-runners" groups
453456
nodepools-h100:
454457
# us-east-2 H100 capacity reservation (p5.48xlarge, 8× H100).
455458
capacity_reservation_ids:
@@ -473,8 +476,6 @@ clusters:
473476
- arc-runners-h100
474477
- keda
475478
- buildkit
476-
- pypi-cache
477-
- cache-enforcer
478479
- zombie-cleanup
479480
- harbor-cache-recovery
480481
- monitoring

0 commit comments

Comments
 (0)