)]}'
{
  "commit": "33c3e765a63f94c9e848aab452d6dcd00edbeefd",
  "tree": "d206c5d5e19147f0296eb0923789382a9d4d542f",
  "parents": [
    "c44ccf37f19d7032d10321da06f2729dd2ba3a5c"
  ],
  "author": {
    "name": "Yun Peng",
    "email": "pcloudy@google.com",
    "time": "Mon Sep 21 13:06:38 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Sep 21 13:06:38 2026 +0200"
  },
  "message": "Migrate GCE runner pools to Regional MIGs (RMIG) across us-central1 (#2870)\n\nMigrate Linux (x86) and Windows runner instance groups from zonal MIGs\n(in us-central1-c) to regional MIGs in us-central1 with ANY distribution\nshape to prevent capacity stockouts.\n\n### Problem\nUpgrading `default_vm` in single-zone `us-central1-c` caused severe\ncapacity exhaustion across Linux Docker and Windows runners, draining\nthe active runner fleet as runners terminated after each job.\n\n### Solution\n- Migrate runner pools to Regional Managed Instance Groups (RMIGs)\nacross `us-central1` using `--target-distribution-shape\u003dANY`. GCE will\ndynamically distribute VMs across `us-central1-a`, `b`, `c`, and `f`\nbased on real-time hardware capacity.\n- Inherit `region: us-central1` from `default_vm` for `bk-docker`,\n`bk-windows`, and their testing/trusted variants.\n- Retain explicit `zone: us-central1-c` on ARM64 pools\n(`c4a-standard-8`).\n- In `buildkite/create_instances.py`, set\n`target_distribution_shape\u003d\"ANY\"` for regional MIG creation and\nautomatically check for and delete legacy zonal MIGs with the same name\nto prevent naming and resource conflicts during migration.\n\n---------\n\nCo-authored-by: Salma Samy \u003c16399431+SalmaSamy@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1938b28e1f5e90f89421f043c9cb9fdbc7daed0b",
      "old_mode": 33261,
      "old_path": "buildkite/create_instance_template.py",
      "new_id": "32dfbeacc2ae5a7ef8a20da2871b6ea1498948e8",
      "new_mode": 33261,
      "new_path": "buildkite/create_instance_template.py"
    },
    {
      "type": "modify",
      "old_id": "286e62c31e4cbbc663cc04c6371f70068bbb6677",
      "old_mode": 33261,
      "old_path": "buildkite/create_instances.py",
      "new_id": "4974d7ab151fea9eb56ebd370f2a1f538f510e69",
      "new_mode": 33261,
      "new_path": "buildkite/create_instances.py"
    },
    {
      "type": "modify",
      "old_id": "bcbcb823039bce0f7921e3640bce0bb750f018f0",
      "old_mode": 33188,
      "old_path": "buildkite/instances.yml",
      "new_id": "85d79be43359b7992d3e5d9e3854a4eb6303eb3d",
      "new_mode": 33188,
      "new_path": "buildkite/instances.yml"
    },
    {
      "type": "modify",
      "old_id": "7e92f5d61d68cf1dbfb988e0c55f1af054c5fa3d",
      "old_mode": 33261,
      "old_path": "buildkite/update_instances.py",
      "new_id": "15563ec713f5331dd1aac268fc3b232ce11db42b",
      "new_mode": 33261,
      "new_path": "buildkite/update_instances.py"
    }
  ]
}
