Add engine_v2 production drones.

This is a prerequisite to enable engine_v2 builders in prod.

Bug: https://github.com/flutter/flutter/issues/81855
Change-Id: I55cf8a3ee6a3afa52ef06dc93f9681edcc5ea3af
Reviewed-on: https://flutter-review.googlesource.com/c/infra/+/34500
Reviewed-by: Keyong Han <keyonghan@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
diff --git a/config/engine_config.star b/config/engine_config.star
index f9dfae3..9ebb81c 100644
--- a/config/engine_config.star
+++ b/config/engine_config.star
@@ -87,7 +87,7 @@
             recipes_ref = branch.recipes_ref,
         )
 
-    _drone_staging_prod_builders()
+    _drone_v2_builders()
     _drone_try_builders()
 
 def _drone_prod_builders(prefix, branch):
@@ -140,7 +140,7 @@
         os = platform_properties["windows"]["os"],
     )
 
-def _drone_staging_prod_builders():
+def _drone_v2_builders():
     """Generate drone builders to help with subshards."""
     engine_v2_builder_recipe_name = "engine_v2/builder"
     recipes = [engine_v2_builder_recipe_name]
@@ -154,42 +154,44 @@
     ci_yaml_config = ci_yaml.ci_yaml("engine", "main")
     platform_properties = ci_yaml.platform_properties(ci_yaml_config)
     version = None  # Use caches from ToT
-    common.linux_prod_builder(
-        name = "Linux Staging Engine Drone|drn",
-        recipe = engine_v2_builder_recipe_name,
-        repo = repos.GIT_REMOTE["engine"],
-        bucket = "staging",
-        pool = "luci.flutter.staging",
-        console_view_name = None,
-        priority = 30,
-        caches = ci_yaml.swarming_caches("engine", version),
-        dimensions = {"device_type": "none"},
-        os = platform_properties["linux"]["os"],
-    )
-    common.mac_prod_builder(
-        name = "Mac Staging Engine Drone|drn",
-        recipe = engine_v2_builder_recipe_name,
-        repo = repos.GIT_REMOTE["engine"],
-        bucket = "staging",
-        pool = "luci.flutter.staging",
-        console_view_name = None,
-        priority = 30,
-        dimensions = {"device_type": "none"},
-        caches = ci_yaml.swarming_caches("engine", version),
-        os = platform_properties["mac"]["os"],
-    )
-    common.windows_prod_builder(
-        name = "Windows Staging Engine Drone|drn",
-        recipe = engine_v2_builder_recipe_name,
-        repo = repos.GIT_REMOTE["engine"],
-        bucket = "staging",
-        pool = "luci.flutter.staging",
-        console_view_name = None,
-        priority = 30,
-        caches = ci_yaml.swarming_caches("engine", version),
-        dimensions = {"device_type": "none"},
-        os = platform_properties["windows"]["os"],
-    )
+    env_to_bucket = {"Staging": "staging", "Production": "prod"}
+    for environment in ("Staging", "Production"):
+        common.linux_prod_builder(
+            name = "Linux %s Engine Drone|drn" % environment,
+            recipe = engine_v2_builder_recipe_name,
+            repo = repos.GIT_REMOTE["engine"],
+            bucket = env_to_bucket.get(environment),
+            pool = "luci.flutter.%s" % env_to_bucket.get(environment),
+            console_view_name = None,
+            priority = 30,
+            caches = ci_yaml.swarming_caches("engine", version),
+            dimensions = {"device_type": "none"},
+            os = platform_properties["linux"]["os"],
+        )
+        common.mac_prod_builder(
+            name = "Mac %s Engine Drone|drn" % environment,
+            recipe = engine_v2_builder_recipe_name,
+            repo = repos.GIT_REMOTE["engine"],
+            bucket = env_to_bucket.get(environment),
+            pool = "luci.flutter.%s" % env_to_bucket.get(environment),
+            console_view_name = None,
+            priority = 30,
+            dimensions = {"device_type": "none"},
+            caches = ci_yaml.swarming_caches("engine", version),
+            os = platform_properties["mac"]["os"],
+        )
+        common.windows_prod_builder(
+            name = "Windows %s Engine Drone|drn" % environment,
+            recipe = engine_v2_builder_recipe_name,
+            repo = repos.GIT_REMOTE["engine"],
+            bucket = env_to_bucket.get(environment),
+            pool = "luci.flutter.%s" % env_to_bucket.get(environment),
+            console_view_name = None,
+            priority = 30,
+            caches = ci_yaml.swarming_caches("engine", version),
+            dimensions = {"device_type": "none"},
+            os = platform_properties["windows"]["os"],
+        )
 
 def _drone_try_builders():
     """Generate drone builders to help with subshards."""
diff --git a/config/generated/flutter/luci/cr-buildbucket.cfg b/config/generated/flutter/luci/cr-buildbucket.cfg
index 45615f1..2fe5660 100644
--- a/config/generated/flutter/luci/cr-buildbucket.cfg
+++ b/config/generated/flutter/luci/cr-buildbucket.cfg
@@ -1478,6 +1478,56 @@
       }
     }
     builders {
+      name: "Linux Production Engine Drone"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "device_type:none"
+      dimensions: "os:Ubuntu"
+      dimensions: "pool:luci.flutter.prod"
+      exe {
+        cipd_package: "flutter/recipe_bundles/flutter.googlesource.com/recipes"
+        cipd_version: "refs/heads/main"
+        cmd: "luciexe"
+      }
+      properties:
+        '{'
+        '  "$fuchsia/goma": {'
+        '    "server": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog"'
+        '  },'
+        '  "$kitchen": {'
+        '    "emulate_gce": true'
+        '  },'
+        '  "$recipe_engine/isolated": {'
+        '    "server": "https://isolateserver.appspot.com"'
+        '  },'
+        '  "$recipe_engine/swarming": {'
+        '    "server": "https://chromium-swarm.appspot.com"'
+        '  },'
+        '  "clobber": false,'
+        '  "gold_tryjob": false,'
+        '  "goma_jobs": "200",'
+        '  "mastername": "client.flutter",'
+        '  "recipe": "engine_v2/builder",'
+        '  "upload_packages": true'
+        '}'
+      priority: 30
+      execution_timeout_secs: 3600
+      caches {
+        name: "engine_main_builder"
+        path: "builder"
+      }
+      caches {
+        name: "pub_cache"
+        path: ".pub-cache"
+      }
+      build_numbers: YES
+      service_account: "flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com"
+      task_template_canary_percentage {}
+      experiments {
+        key: "luci.recipes.use_python3"
+        value: 100
+      }
+    }
+    builders {
       name: "Linux Publish Plugins"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "os:Linux"
@@ -54234,6 +54284,56 @@
       }
     }
     builders {
+      name: "Mac Production Engine Drone"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "device_type:none"
+      dimensions: "os:Mac-12"
+      dimensions: "pool:luci.flutter.prod"
+      exe {
+        cipd_package: "flutter/recipe_bundles/flutter.googlesource.com/recipes"
+        cipd_version: "refs/heads/main"
+        cmd: "luciexe"
+      }
+      properties:
+        '{'
+        '  "$fuchsia/goma": {'
+        '    "server": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog"'
+        '  },'
+        '  "$kitchen": {'
+        '    "emulate_gce": true'
+        '  },'
+        '  "$recipe_engine/isolated": {'
+        '    "server": "https://isolateserver.appspot.com"'
+        '  },'
+        '  "$recipe_engine/swarming": {'
+        '    "server": "https://chromium-swarm.appspot.com"'
+        '  },'
+        '  "clobber": false,'
+        '  "gold_tryjob": false,'
+        '  "goma_jobs": "200",'
+        '  "mastername": "client.flutter",'
+        '  "recipe": "engine_v2/builder",'
+        '  "upload_packages": true'
+        '}'
+      priority: 30
+      execution_timeout_secs: 3600
+      caches {
+        name: "engine_main_builder"
+        path: "builder"
+      }
+      caches {
+        name: "pub_cache"
+        path: ".pub-cache"
+      }
+      build_numbers: YES
+      service_account: "flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com"
+      task_template_canary_percentage {}
+      experiments {
+        key: "luci.recipes.use_python3"
+        value: 100
+      }
+    }
+    builders {
       name: "Mac SDK Drone"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "device_type:none"
@@ -87955,6 +88055,56 @@
       }
     }
     builders {
+      name: "Windows Production Engine Drone"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "device_type:none"
+      dimensions: "os:Windows-10"
+      dimensions: "pool:luci.flutter.prod"
+      exe {
+        cipd_package: "flutter/recipe_bundles/flutter.googlesource.com/recipes"
+        cipd_version: "refs/heads/main"
+        cmd: "luciexe"
+      }
+      properties:
+        '{'
+        '  "$fuchsia/goma": {'
+        '    "server": "rbe-prod1.endpoints.fuchsia-infra-goma-prod.cloud.goog"'
+        '  },'
+        '  "$kitchen": {'
+        '    "emulate_gce": true'
+        '  },'
+        '  "$recipe_engine/isolated": {'
+        '    "server": "https://isolateserver.appspot.com"'
+        '  },'
+        '  "$recipe_engine/swarming": {'
+        '    "server": "https://chromium-swarm.appspot.com"'
+        '  },'
+        '  "clobber": false,'
+        '  "gold_tryjob": false,'
+        '  "goma_jobs": "200",'
+        '  "mastername": "client.flutter",'
+        '  "recipe": "engine_v2/builder",'
+        '  "upload_packages": true'
+        '}'
+      priority: 30
+      execution_timeout_secs: 3600
+      caches {
+        name: "engine_main_builder"
+        path: "builder"
+      }
+      caches {
+        name: "pub_cache"
+        path: ".pub-cache"
+      }
+      build_numbers: YES
+      service_account: "flutter-prod-builder@chops-service-accounts.iam.gserviceaccount.com"
+      task_template_canary_percentage {}
+      experiments {
+        key: "luci.recipes.use_python3"
+        value: 100
+      }
+    }
+    builders {
       name: "Windows SDK Drone"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "device_type:none"