diff --git a/build.yaml b/build.yaml
index 48fe927f5f576967f060b80f7869a538ecb3e86a..61b3c025102d243d883ff08fd6eb985f7f7c1c3c 100644
--- a/build.yaml
+++ b/build.yaml
@@ -3023,6 +3023,7 @@ targets:
   - mac
   - linux
   - posix
+  timeout_seconds: 1200
 - name: channel_arguments_test
   gtest: true
   build: test
diff --git a/templates/tools/run_tests/generated/tests.json.template b/templates/tools/run_tests/generated/tests.json.template
index 2815dbb9b3877c19dba6509e8fabe65fa2718df7..ca483b30a6ef87d933b6c06b377f8ba2b7eed738 100644
--- a/templates/tools/run_tests/generated/tests.json.template
+++ b/templates/tools/run_tests/generated/tests.json.template
@@ -2,18 +2,25 @@
 --- |
   <%!
   import json
+
+  def gen_one_target(tgt):
+    out = {"name": tgt.name,
+           "language": tgt.language,
+           "platforms": tgt.platforms,
+           "ci_platforms": tgt.ci_platforms,
+           "gtest": tgt.gtest,
+           "exclude_configs": tgt.get("exclude_configs", []),
+           "exclude_iomgrs": tgt.get("exclude_iomgrs", []),
+           "args": tgt.get("args", []),
+           "flaky": tgt.flaky,
+           "cpu_cost": tgt.get("cpu_cost", 1.0)}
+    timeout_seconds = tgt.get("timeout_seconds", None)
+    if timeout_seconds:
+      out['timeout_seconds'] = timeout_seconds
+    return out
   %>
 
-  ${json.dumps([{"name": tgt.name,
-                 "language": tgt.language,
-                 "platforms": tgt.platforms,
-                 "ci_platforms": tgt.ci_platforms,
-                 "gtest": tgt.gtest,
-                 "exclude_configs": tgt.get("exclude_configs", []),
-                 "exclude_iomgrs": tgt.get("exclude_iomgrs", []),
-                 "args": tgt.get("args", []),
-                 "flaky": tgt.flaky,
-                 "cpu_cost": tgt.get("cpu_cost", 1.0)}
+  ${json.dumps([gen_one_target(tgt)
                 for tgt in targets
                 if tgt.get('run', True) and tgt.build == 'test'] +
                 tests,
diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json
index a161e8a670e41c3970dd7158846f83fd61e6cd3a..bca0b22d39dde80b229452dc5839b94ac80a49d3 100644
--- a/tools/run_tests/generated/tests.json
+++ b/tools/run_tests/generated/tests.json
@@ -2511,7 +2511,8 @@
       "linux", 
       "mac", 
       "posix"
-    ]
+    ], 
+    "timeout_seconds": 1200
   }, 
   {
     "args": [],