[goma] Add goma_gcp_configurator.

This change adds goma_gcp_configurator recipe. It is responsible for
reading  goma configurations from a config repo, updating the cluster
configuration files and landing the changes back to the config repo.

Bug: 35512
Test: https://chromium-swarm.appspot.com/task?id=4a014c16a3b38910
      https://fuchsia-review.googlesource.com/c/infra/config/+/357701

Change-Id: Icc7dfbba89036f3bc0113e0699f2668683d4c71a
diff --git a/recipe_modules/gerrit/api.py b/recipe_modules/gerrit/api.py
index 037c133..ba3e0d3 100644
--- a/recipe_modules/gerrit/api.py
+++ b/recipe_modules/gerrit/api.py
@@ -168,6 +168,26 @@
         test_data=test_data,
     )
 
+  def submit(self, name, change_id, gerrit_host=None, test_data=None):
+    """Submit a change a repository.
+
+    Returns a JSON dict of details regarding the change.
+
+    Args:
+      name (str): The name of the step.
+      change_id (str): A change ID that uniquely defines a change on the host.
+      gerrit_host (str): The Gerrit host to make the query against. Overrides
+                         the recipe module's global host property.
+      test_data (recipe_test_api.StepTestData): Test JSON output data for this
+                                                step.
+    """
+    return self(
+        name=name,
+        subcmd='submit',
+        input_json={'change_id': change_id},
+        gerrit_host=gerrit_host,
+        test_data=test_data)
+
   def change_details(self,
                      name,
                      change_id,
diff --git a/recipe_modules/gerrit/examples/full.expected/basic.json b/recipe_modules/gerrit/examples/full.expected/basic.json
index 49c75d4..477f4a2 100644
--- a/recipe_modules/gerrit/examples/full.expected/basic.json
+++ b/recipe_modules/gerrit/examples/full.expected/basic.json
@@ -125,6 +125,24 @@
   {
     "cmd": [
       "[START_DIR]/cipd/gerrit/gerrit",
+      "submit",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-input",
+      "{\"change_id\": \"some id\"}",
+      "-output",
+      "/path/to/tmp/json"
+    ],
+    "name": "submit",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@json.output (invalid)@@@",
+      "@@@STEP_LOG_LINE@json.output (exception)@No JSON object could be decoded@@@",
+      "@@@STEP_LOG_END@json.output (exception)@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gerrit/gerrit",
       "change-abandon",
       "-host",
       "https://fuchsia-review.googlesource.com",
diff --git a/recipe_modules/gerrit/examples/full.py b/recipe_modules/gerrit/examples/full.py
index 6441aab..835d895 100644
--- a/recipe_modules/gerrit/examples/full.py
+++ b/recipe_modules/gerrit/examples/full.py
@@ -51,6 +51,12 @@
       ccs=['test2@example.com'],
   )
 
+  # Submit.
+  api.gerrit.submit(
+      'submit',
+      change_id,
+  )
+
   # Abandon.
   api.gerrit.abandon('abandon', change_id, message='bad CL')
 
diff --git a/recipes/goma_gcp_configurator.expected/change id collision.json b/recipes/goma_gcp_configurator.expected/change id collision.json
new file mode 100644
index 0000000..d812725
--- /dev/null
+++ b/recipes/goma_gcp_configurator.expected/change id collision.json
@@ -0,0 +1,1282 @@
+[
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config"
+    ],
+    "infra_step": true,
+    "name": "makedirs"
+  },
+  {
+    "cmd": [
+      "git",
+      "init"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git init"
+  },
+  {
+    "cmd": [
+      "git",
+      "remote",
+      "add",
+      "origin",
+      "https://fuchsia.googlesource.com/infra/config"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git remote"
+  },
+  {
+    "cmd": [
+      "git",
+      "fetch",
+      "--tags",
+      "origin",
+      "master"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git fetch"
+  },
+  {
+    "cmd": [
+      "git",
+      "checkout",
+      "-f",
+      "FETCH_HEAD"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git checkout"
+  },
+  {
+    "cmd": [
+      "git",
+      "rev-parse",
+      "HEAD"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git rev-parse"
+  },
+  {
+    "cmd": [
+      "git",
+      "clean",
+      "-f",
+      "-d",
+      "-x"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git clean"
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend"
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.Remove existing k8s configurations",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev",
+      "*/*.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.Remove existing k8s configurations.glob existing configurations",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/goma/configmap_nginx-extra-conf.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/goma/configmap_nginx-extra-conf.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.Remove existing k8s configurations.remove [START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/goma/configmap_nginx-extra-conf.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/templates-rbe",
+      "*/*yaml*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.glob template dir [START_DIR]/config/goma/k8s/templates-rbe",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.ensure directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.read input template [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      imagetag: $IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      buildtag: $TAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - --project-id=$PROJECT_ID@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          image: gcr.io/$CONTAINER_PROJECT_ID/auth-server:$IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml.custom.in@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gcloud",
+      "-ensure-file",
+      "infra/gcloud/${platform} version:266.0.0.chromium0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-version:266.0.0.\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/gcloud/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/cipd/gcloud/bin/gcloud"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud.remove gcloud wrapper",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "RECIPE_MODULE[fuchsia::gcloud]/resources/gcloud",
+      "[START_DIR]/cipd/gcloud/bin/gcloud"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud.copy patched gcloud",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "container",
+      "images",
+      "list-tags",
+      "gcr.io/goma-fuchsia/auth-server",
+      "--filter",
+      "tags: latest",
+      "--limit",
+      "1",
+      "--format=get(digest)"
+    ],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.retrieve digest for gcr.io/goma-fuchsia/auth-server",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "# Copyright 2020 Google Inc. All Rights Reserved.\n  apiVersion: apps/v1beta2\n  kind: Deployment\n  metadata:\n  labels:\n      app: auth-server\n  annotations:\n      imagetag: latest\n      buildtag: 20120514_125321\n  name: auth-server\n  spec:\n  replicas: 2\n  selector:\n      matchLabels:\n      app: auth-server\n  template:\n      metadata:\n      labels:\n          app: auth-server\n      spec:\n      containers:\n      - command:\n          - /opt/goma/bin/auth_server\n          - --project-id=goma-fuchsia\n          name: auth-server\n          image: gcr.io/goma-fuchsia/auth-server@\n          ports:\n          - containerPort: 5050\n          protocol: TCP\n          - containerPort: 8081\n          protocol: TCP\n          resources:\n          limits:\n              cpu: 1500m\n              memory: 1500Mi\n          requests:\n              cpu: 100m\n              memory: 100Mi\n          # following could be configured by PodPreset?\n          livenessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5\n          readinessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.write gke yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      imagetag: latest@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      buildtag: 20120514_125321@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - --project-id=goma-fuchsia@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          image: gcr.io/goma-fuchsia/auth-server@@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.ensure directory (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.remove [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.copy [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates",
+      "*/*yaml*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.glob template dir [START_DIR]/config/goma/k8s/rbe-dev/templates",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.ensure directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.read input template [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      imagetag: $IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      buildtag: $TAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - --project-id=$PROJECT_ID@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          image: gcr.io/$CONTAINER_PROJECT_ID/auth-server:$IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml.custom.in@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "container",
+      "images",
+      "list-tags",
+      "gcr.io/goma-fuchsia/auth-server",
+      "--filter",
+      "tags: latest",
+      "--limit",
+      "1",
+      "--format=get(digest)"
+    ],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.retrieve digest for gcr.io/goma-fuchsia/auth-server",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "# Copyright 2020 Google Inc. All Rights Reserved.\n  apiVersion: apps/v1beta2\n  kind: Deployment\n  metadata:\n  labels:\n      app: auth-server\n  annotations:\n      imagetag: latest\n      buildtag: 20120514_125321\n  name: auth-server\n  spec:\n  replicas: 2\n  selector:\n      matchLabels:\n      app: auth-server\n  template:\n      metadata:\n      labels:\n          app: auth-server\n      spec:\n      containers:\n      - command:\n          - /opt/goma/bin/auth_server\n          - --project-id=goma-fuchsia\n          name: auth-server\n          image: gcr.io/goma-fuchsia/auth-server@\n          ports:\n          - containerPort: 5050\n          protocol: TCP\n          - containerPort: 8081\n          protocol: TCP\n          resources:\n          limits:\n              cpu: 1500m\n              memory: 1500Mi\n          requests:\n              cpu: 100m\n              memory: 100Mi\n          # following could be configured by PodPreset?\n          livenessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5\n          readinessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.write gke yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      imagetag: latest@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      buildtag: 20120514_125321@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - --project-id=goma-fuchsia@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          image: gcr.io/goma-fuchsia/auth-server@@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.ensure directory (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.remove [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.copy [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia",
+      "*/*yaml*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.glob template dir [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.ensure directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.read input template [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      imagetag: $IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      buildtag: $TAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - --project-id=$PROJECT_ID@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          image: gcr.io/$CONTAINER_PROJECT_ID/auth-server:$IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml.custom.in@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "container",
+      "images",
+      "list-tags",
+      "gcr.io/goma-fuchsia/auth-server",
+      "--filter",
+      "tags: latest",
+      "--limit",
+      "1",
+      "--format=get(digest)"
+    ],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.retrieve digest for gcr.io/goma-fuchsia/auth-server",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "# Copyright 2020 Google Inc. All Rights Reserved.\n  apiVersion: apps/v1beta2\n  kind: Deployment\n  metadata:\n  labels:\n      app: auth-server\n  annotations:\n      imagetag: latest\n      buildtag: 20120514_125321\n  name: auth-server\n  spec:\n  replicas: 2\n  selector:\n      matchLabels:\n      app: auth-server\n  template:\n      metadata:\n      labels:\n          app: auth-server\n      spec:\n      containers:\n      - command:\n          - /opt/goma/bin/auth_server\n          - --project-id=goma-fuchsia\n          name: auth-server\n          image: gcr.io/goma-fuchsia/auth-server@\n          ports:\n          - containerPort: 5050\n          protocol: TCP\n          - containerPort: 8081\n          protocol: TCP\n          resources:\n          limits:\n              cpu: 1500m\n              memory: 1500Mi\n          requests:\n              cpu: 100m\n              memory: 100Mi\n          # following could be configured by PodPreset?\n          livenessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5\n          readinessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.write gke yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      imagetag: latest@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      buildtag: 20120514_125321@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - --project-id=goma-fuchsia@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          image: gcr.io/goma-fuchsia/auth-server@@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.ensure directory (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.remove [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.copy [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.patch yaml files",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev",
+      "*/*.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.glob yaml dir [START_DIR]/config/goma/k8s/rbe-dev",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/patches",
+      "[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml.*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.glob patch dir [START_DIR]/config/goma/k8s/rbe-dev/patches",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/patches/[START_DIR]/config/goma/k8s/rbe-dev/patches/goma/deploy_exec-server.yaml.replica.strategic@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/patches/[START_DIR]/config/goma/k8s/rbe-dev/patches/goma/deploy_exec-server.yaml.replica.strategic",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.read patch [START_DIR]/config/goma/k8s/rbe-dev/patches/[START_DIR]/config/goma/k8s/rbe-dev/patches/goma/deploy_exec-server.yaml.replica.strategic",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_END@deploy_exec-server.yaml.replica.strategic@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.ensure kubectl",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/kubectl",
+      "-ensure-file",
+      "fuchsia/third_party/kubectl/linux-amd64 version:1.16.1-00",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.ensure kubectl.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-version:1.16.1-0\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/third_party/kubectl/linux-amd64\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/kubectl/kubectl",
+      "patch",
+      "-f",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml",
+      "--local=true",
+      "--type=strategic",
+      "--patch",
+      "",
+      "-o",
+      "yaml"
+    ],
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.patch [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.write patched yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_END@deploy_exec-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.generate memory store",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[fuchsia::yaml]/resources/parse_yaml.py",
+      "[START_DIR]/config/goma/gke-res/rbe-dev/storage.yaml"
+    ],
+    "name": "configurate goma GCP backend.generate memory store.load yaml [START_DIR]/config/goma/gke-res/rbe-dev/storage.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"region\": \"us-central\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "redis",
+      "instances",
+      "describe",
+      "rbe-dev-memorystore",
+      "--project",
+      "goma-fuchsia",
+      "--region",
+      "us-central",
+      "--format",
+      "get(host)"
+    ],
+    "name": "configurate goma GCP backend.generate memory store.retrieve host info",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "redis",
+      "instances",
+      "describe",
+      "rbe-dev-memorystore",
+      "--project",
+      "goma-fuchsia",
+      "--region",
+      "us-central",
+      "--format",
+      "get(port)"
+    ],
+    "name": "configurate goma GCP backend.generate memory store.retrieve port info",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: memorystore\ndata:\n  REDISHOST: \"\"\n  REDISPORT: \"\"\n",
+      "[START_DIR]/config/goma/k8s/rbe-dev/goma/configmap-memorystore.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.generate memory store.write configmap-memorystore.yaml file",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@apiVersion: v1@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@kind: ConfigMap@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@metadata:@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@  name: memorystore@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@data:@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@  REDISHOST: \"\"@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@  REDISPORT: \"\"@@@",
+      "@@@STEP_LOG_END@configmap-memorystore.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "add",
+      "--all",
+      "--intent-to-add"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git add"
+  },
+  {
+    "cmd": [
+      "git",
+      "diff"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git diff"
+  },
+  {
+    "cmd": [
+      "git",
+      "hash-object",
+      "a diff"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git hash-object"
+  },
+  {
+    "cmd": [
+      "git",
+      "add",
+      "-A"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git add (2)"
+  },
+  {
+    "cmd": [
+      "git",
+      "commit",
+      "-m",
+      "[goma] Update config for goma-fuchsia/rbe-dev:\n\nUsing gomatools tag: latest\n\nExempt-From-Owner-Approval: Roller.\n\nChange-Id: Iabc123\n"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git commit"
+  },
+  {
+    "cmd": [
+      "git",
+      "diff",
+      "HEAD^"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "diff",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@diff@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "push",
+      "origin",
+      "HEAD:refs/for/master"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git push",
+    "~followup_annotations": [
+      "@@@STEP_TEXT@<br/>Change is identical to a previous CL@@@",
+      "@@@STEP_SUMMARY_TEXT@rejected by gerrit@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipes/goma_gcp_configurator.expected/default.json b/recipes/goma_gcp_configurator.expected/default.json
new file mode 100644
index 0000000..f8e6346
--- /dev/null
+++ b/recipes/goma_gcp_configurator.expected/default.json
@@ -0,0 +1,1349 @@
+[
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config"
+    ],
+    "infra_step": true,
+    "name": "makedirs"
+  },
+  {
+    "cmd": [
+      "git",
+      "init"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git init"
+  },
+  {
+    "cmd": [
+      "git",
+      "remote",
+      "add",
+      "origin",
+      "https://fuchsia.googlesource.com/infra/config"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git remote"
+  },
+  {
+    "cmd": [
+      "git",
+      "fetch",
+      "--tags",
+      "origin",
+      "master"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git fetch"
+  },
+  {
+    "cmd": [
+      "git",
+      "checkout",
+      "-f",
+      "FETCH_HEAD"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git checkout"
+  },
+  {
+    "cmd": [
+      "git",
+      "rev-parse",
+      "HEAD"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git rev-parse"
+  },
+  {
+    "cmd": [
+      "git",
+      "clean",
+      "-f",
+      "-d",
+      "-x"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git clean"
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend"
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.Remove existing k8s configurations",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev",
+      "*/*.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.Remove existing k8s configurations.glob existing configurations",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/goma/configmap_nginx-extra-conf.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/goma/configmap_nginx-extra-conf.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.Remove existing k8s configurations.remove [START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/goma/configmap_nginx-extra-conf.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/templates-rbe",
+      "*/*yaml*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.glob template dir [START_DIR]/config/goma/k8s/templates-rbe",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.ensure directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.read input template [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      imagetag: $IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      buildtag: $TAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - --project-id=$PROJECT_ID@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          image: gcr.io/$CONTAINER_PROJECT_ID/auth-server:$IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml.custom.in@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gcloud",
+      "-ensure-file",
+      "infra/gcloud/${platform} version:266.0.0.chromium0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-version:266.0.0.\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/gcloud/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/cipd/gcloud/bin/gcloud"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud.remove gcloud wrapper",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "RECIPE_MODULE[fuchsia::gcloud]/resources/gcloud",
+      "[START_DIR]/cipd/gcloud/bin/gcloud"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud.copy patched gcloud",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "container",
+      "images",
+      "list-tags",
+      "gcr.io/goma-fuchsia/auth-server",
+      "--filter",
+      "tags: latest",
+      "--limit",
+      "1",
+      "--format=get(digest)"
+    ],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.retrieve digest for gcr.io/goma-fuchsia/auth-server",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "# Copyright 2020 Google Inc. All Rights Reserved.\n  apiVersion: apps/v1beta2\n  kind: Deployment\n  metadata:\n  labels:\n      app: auth-server\n  annotations:\n      imagetag: latest\n      buildtag: 20120514_125321\n  name: auth-server\n  spec:\n  replicas: 2\n  selector:\n      matchLabels:\n      app: auth-server\n  template:\n      metadata:\n      labels:\n          app: auth-server\n      spec:\n      containers:\n      - command:\n          - /opt/goma/bin/auth_server\n          - --project-id=goma-fuchsia\n          name: auth-server\n          image: gcr.io/goma-fuchsia/auth-server@\n          ports:\n          - containerPort: 5050\n          protocol: TCP\n          - containerPort: 8081\n          protocol: TCP\n          resources:\n          limits:\n              cpu: 1500m\n              memory: 1500Mi\n          requests:\n              cpu: 100m\n              memory: 100Mi\n          # following could be configured by PodPreset?\n          livenessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5\n          readinessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.write gke yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      imagetag: latest@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      buildtag: 20120514_125321@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - --project-id=goma-fuchsia@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          image: gcr.io/goma-fuchsia/auth-server@@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.ensure directory (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.remove [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.copy [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates",
+      "*/*yaml*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.glob template dir [START_DIR]/config/goma/k8s/rbe-dev/templates",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.ensure directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.read input template [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      imagetag: $IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      buildtag: $TAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - --project-id=$PROJECT_ID@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          image: gcr.io/$CONTAINER_PROJECT_ID/auth-server:$IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml.custom.in@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "container",
+      "images",
+      "list-tags",
+      "gcr.io/goma-fuchsia/auth-server",
+      "--filter",
+      "tags: latest",
+      "--limit",
+      "1",
+      "--format=get(digest)"
+    ],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.retrieve digest for gcr.io/goma-fuchsia/auth-server",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "# Copyright 2020 Google Inc. All Rights Reserved.\n  apiVersion: apps/v1beta2\n  kind: Deployment\n  metadata:\n  labels:\n      app: auth-server\n  annotations:\n      imagetag: latest\n      buildtag: 20120514_125321\n  name: auth-server\n  spec:\n  replicas: 2\n  selector:\n      matchLabels:\n      app: auth-server\n  template:\n      metadata:\n      labels:\n          app: auth-server\n      spec:\n      containers:\n      - command:\n          - /opt/goma/bin/auth_server\n          - --project-id=goma-fuchsia\n          name: auth-server\n          image: gcr.io/goma-fuchsia/auth-server@\n          ports:\n          - containerPort: 5050\n          protocol: TCP\n          - containerPort: 8081\n          protocol: TCP\n          resources:\n          limits:\n              cpu: 1500m\n              memory: 1500Mi\n          requests:\n              cpu: 100m\n              memory: 100Mi\n          # following could be configured by PodPreset?\n          livenessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5\n          readinessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.write gke yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      imagetag: latest@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      buildtag: 20120514_125321@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - --project-id=goma-fuchsia@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          image: gcr.io/goma-fuchsia/auth-server@@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.ensure directory (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.remove [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.copy [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia",
+      "*/*yaml*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.glob template dir [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.ensure directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.read input template [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      imagetag: $IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      buildtag: $TAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - --project-id=$PROJECT_ID@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          image: gcr.io/$CONTAINER_PROJECT_ID/auth-server:$IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml.custom.in@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "container",
+      "images",
+      "list-tags",
+      "gcr.io/goma-fuchsia/auth-server",
+      "--filter",
+      "tags: latest",
+      "--limit",
+      "1",
+      "--format=get(digest)"
+    ],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.retrieve digest for gcr.io/goma-fuchsia/auth-server",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "# Copyright 2020 Google Inc. All Rights Reserved.\n  apiVersion: apps/v1beta2\n  kind: Deployment\n  metadata:\n  labels:\n      app: auth-server\n  annotations:\n      imagetag: latest\n      buildtag: 20120514_125321\n  name: auth-server\n  spec:\n  replicas: 2\n  selector:\n      matchLabels:\n      app: auth-server\n  template:\n      metadata:\n      labels:\n          app: auth-server\n      spec:\n      containers:\n      - command:\n          - /opt/goma/bin/auth_server\n          - --project-id=goma-fuchsia\n          name: auth-server\n          image: gcr.io/goma-fuchsia/auth-server@\n          ports:\n          - containerPort: 5050\n          protocol: TCP\n          - containerPort: 8081\n          protocol: TCP\n          resources:\n          limits:\n              cpu: 1500m\n              memory: 1500Mi\n          requests:\n              cpu: 100m\n              memory: 100Mi\n          # following could be configured by PodPreset?\n          livenessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5\n          readinessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.write gke yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      imagetag: latest@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      buildtag: 20120514_125321@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - --project-id=goma-fuchsia@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          image: gcr.io/goma-fuchsia/auth-server@@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.ensure directory (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.remove [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.copy [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.patch yaml files",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev",
+      "*/*.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.glob yaml dir [START_DIR]/config/goma/k8s/rbe-dev",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/patches",
+      "[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml.*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.glob patch dir [START_DIR]/config/goma/k8s/rbe-dev/patches",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/patches/[START_DIR]/config/goma/k8s/rbe-dev/patches/goma/deploy_exec-server.yaml.replica.strategic@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/patches/[START_DIR]/config/goma/k8s/rbe-dev/patches/goma/deploy_exec-server.yaml.replica.strategic",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.read patch [START_DIR]/config/goma/k8s/rbe-dev/patches/[START_DIR]/config/goma/k8s/rbe-dev/patches/goma/deploy_exec-server.yaml.replica.strategic",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_END@deploy_exec-server.yaml.replica.strategic@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.ensure kubectl",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/kubectl",
+      "-ensure-file",
+      "fuchsia/third_party/kubectl/linux-amd64 version:1.16.1-00",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.ensure kubectl.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-version:1.16.1-0\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/third_party/kubectl/linux-amd64\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/kubectl/kubectl",
+      "patch",
+      "-f",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml",
+      "--local=true",
+      "--type=strategic",
+      "--patch",
+      "",
+      "-o",
+      "yaml"
+    ],
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.patch [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.write patched yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_END@deploy_exec-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.generate memory store",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[fuchsia::yaml]/resources/parse_yaml.py",
+      "[START_DIR]/config/goma/gke-res/rbe-dev/storage.yaml"
+    ],
+    "name": "configurate goma GCP backend.generate memory store.load yaml [START_DIR]/config/goma/gke-res/rbe-dev/storage.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"region\": \"us-central\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "redis",
+      "instances",
+      "describe",
+      "rbe-dev-memorystore",
+      "--project",
+      "goma-fuchsia",
+      "--region",
+      "us-central",
+      "--format",
+      "get(host)"
+    ],
+    "name": "configurate goma GCP backend.generate memory store.retrieve host info",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "redis",
+      "instances",
+      "describe",
+      "rbe-dev-memorystore",
+      "--project",
+      "goma-fuchsia",
+      "--region",
+      "us-central",
+      "--format",
+      "get(port)"
+    ],
+    "name": "configurate goma GCP backend.generate memory store.retrieve port info",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: memorystore\ndata:\n  REDISHOST: \"\"\n  REDISPORT: \"\"\n",
+      "[START_DIR]/config/goma/k8s/rbe-dev/goma/configmap-memorystore.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.generate memory store.write configmap-memorystore.yaml file",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@apiVersion: v1@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@kind: ConfigMap@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@metadata:@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@  name: memorystore@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@data:@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@  REDISHOST: \"\"@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@  REDISPORT: \"\"@@@",
+      "@@@STEP_LOG_END@configmap-memorystore.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "add",
+      "--all",
+      "--intent-to-add"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git add"
+  },
+  {
+    "cmd": [
+      "git",
+      "diff"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git diff"
+  },
+  {
+    "cmd": [
+      "git",
+      "hash-object",
+      "a diff"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git hash-object"
+  },
+  {
+    "cmd": [
+      "git",
+      "add",
+      "-A"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git add (2)"
+  },
+  {
+    "cmd": [
+      "git",
+      "commit",
+      "-m",
+      "[goma] Update config for goma-fuchsia/rbe-dev:\n\nUsing gomatools tag: latest\n\nExempt-From-Owner-Approval: Roller.\n\nChange-Id: Iabc123\n"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git commit"
+  },
+  {
+    "cmd": [
+      "git",
+      "diff",
+      "HEAD^"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "diff",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@diff@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "push",
+      "origin",
+      "HEAD:refs/for/master"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git push"
+  },
+  {
+    "cmd": [],
+    "name": "ensure gerrit"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gerrit",
+      "-ensure-file",
+      "infra/tools/luci/gerrit/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/config",
+    "infra_step": true,
+    "name": "ensure gerrit.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gerrit/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gerrit/gerrit",
+      "set-review",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-input",
+      "{\"change_id\": \"Iabc123\", \"input\": {\"labels\": {\"Code-Review\": 2}}, \"revision_id\": \"current\"}",
+      "-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "submit to commit queue",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@json.output (invalid)@@@",
+      "@@@STEP_LOG_LINE@json.output (exception)@No JSON object could be decoded@@@",
+      "@@@STEP_LOG_END@json.output (exception)@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gerrit/gerrit",
+      "submit",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-input",
+      "{\"change_id\": \"Iabc123\"}",
+      "-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "submit",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@json.output (invalid)@@@",
+      "@@@STEP_LOG_LINE@json.output (exception)@No JSON object could be decoded@@@",
+      "@@@STEP_LOG_END@json.output (exception)@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipes/goma_gcp_configurator.expected/dry_run.json b/recipes/goma_gcp_configurator.expected/dry_run.json
new file mode 100644
index 0000000..3c00716
--- /dev/null
+++ b/recipes/goma_gcp_configurator.expected/dry_run.json
@@ -0,0 +1,1330 @@
+[
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config"
+    ],
+    "infra_step": true,
+    "name": "makedirs"
+  },
+  {
+    "cmd": [
+      "git",
+      "init"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git init"
+  },
+  {
+    "cmd": [
+      "git",
+      "remote",
+      "add",
+      "origin",
+      "https://fuchsia.googlesource.com/infra/config"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git remote"
+  },
+  {
+    "cmd": [
+      "git",
+      "fetch",
+      "--tags",
+      "origin",
+      "master"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git fetch"
+  },
+  {
+    "cmd": [
+      "git",
+      "checkout",
+      "-f",
+      "FETCH_HEAD"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git checkout"
+  },
+  {
+    "cmd": [
+      "git",
+      "rev-parse",
+      "HEAD"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git rev-parse"
+  },
+  {
+    "cmd": [
+      "git",
+      "clean",
+      "-f",
+      "-d",
+      "-x"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git clean"
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend"
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.Remove existing k8s configurations",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev",
+      "*/*.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.Remove existing k8s configurations.glob existing configurations",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/goma/configmap_nginx-extra-conf.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/goma/configmap_nginx-extra-conf.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.Remove existing k8s configurations.remove [START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/rbe-dev/goma/configmap_nginx-extra-conf.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/templates-rbe",
+      "*/*yaml*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.glob template dir [START_DIR]/config/goma/k8s/templates-rbe",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.ensure directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.read input template [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      imagetag: $IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      buildtag: $TAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - --project-id=$PROJECT_ID@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          image: gcr.io/$CONTAINER_PROJECT_ID/auth-server:$IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml.custom.in@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gcloud",
+      "-ensure-file",
+      "infra/gcloud/${platform} version:266.0.0.chromium0",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-version:266.0.0.\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/gcloud/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/cipd/gcloud/bin/gcloud"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud.remove gcloud wrapper",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "RECIPE_MODULE[fuchsia::gcloud]/resources/gcloud",
+      "[START_DIR]/cipd/gcloud/bin/gcloud"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.ensure gcloud.copy patched gcloud",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@5@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "container",
+      "images",
+      "list-tags",
+      "gcr.io/goma-fuchsia/auth-server",
+      "--filter",
+      "tags: latest",
+      "--limit",
+      "1",
+      "--format=get(digest)"
+    ],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.retrieve digest for gcr.io/goma-fuchsia/auth-server",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "# Copyright 2020 Google Inc. All Rights Reserved.\n  apiVersion: apps/v1beta2\n  kind: Deployment\n  metadata:\n  labels:\n      app: auth-server\n  annotations:\n      imagetag: latest\n      buildtag: 20120514_125321\n  name: auth-server\n  spec:\n  replicas: 2\n  selector:\n      matchLabels:\n      app: auth-server\n  template:\n      metadata:\n      labels:\n          app: auth-server\n      spec:\n      containers:\n      - command:\n          - /opt/goma/bin/auth_server\n          - --project-id=goma-fuchsia\n          name: auth-server\n          image: gcr.io/goma-fuchsia/auth-server@\n          ports:\n          - containerPort: 5050\n          protocol: TCP\n          - containerPort: 8081\n          protocol: TCP\n          resources:\n          limits:\n              cpu: 1500m\n              memory: 1500Mi\n          requests:\n              cpu: 100m\n              memory: 100Mi\n          # following could be configured by PodPreset?\n          livenessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5\n          readinessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.generate yaml [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml.write gke yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      imagetag: latest@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      buildtag: 20120514_125321@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - --project-id=goma-fuchsia@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          image: gcr.io/goma-fuchsia/auth-server@@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.ensure directory (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.remove [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/templates-rbe.copy [START_DIR]/config/goma/k8s/templates-rbe/[START_DIR]/config/goma/k8s/templates-rbe/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates",
+      "*/*yaml*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.glob template dir [START_DIR]/config/goma/k8s/rbe-dev/templates",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.ensure directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.read input template [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      imagetag: $IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      buildtag: $TAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - --project-id=$PROJECT_ID@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          image: gcr.io/$CONTAINER_PROJECT_ID/auth-server:$IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml.custom.in@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "container",
+      "images",
+      "list-tags",
+      "gcr.io/goma-fuchsia/auth-server",
+      "--filter",
+      "tags: latest",
+      "--limit",
+      "1",
+      "--format=get(digest)"
+    ],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.retrieve digest for gcr.io/goma-fuchsia/auth-server",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "# Copyright 2020 Google Inc. All Rights Reserved.\n  apiVersion: apps/v1beta2\n  kind: Deployment\n  metadata:\n  labels:\n      app: auth-server\n  annotations:\n      imagetag: latest\n      buildtag: 20120514_125321\n  name: auth-server\n  spec:\n  replicas: 2\n  selector:\n      matchLabels:\n      app: auth-server\n  template:\n      metadata:\n      labels:\n          app: auth-server\n      spec:\n      containers:\n      - command:\n          - /opt/goma/bin/auth_server\n          - --project-id=goma-fuchsia\n          name: auth-server\n          image: gcr.io/goma-fuchsia/auth-server@\n          ports:\n          - containerPort: 5050\n          protocol: TCP\n          - containerPort: 8081\n          protocol: TCP\n          resources:\n          limits:\n              cpu: 1500m\n              memory: 1500Mi\n          requests:\n              cpu: 100m\n              memory: 100Mi\n          # following could be configured by PodPreset?\n          livenessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5\n          readinessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml.write gke yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      imagetag: latest@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      buildtag: 20120514_125321@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - --project-id=goma-fuchsia@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          image: gcr.io/goma-fuchsia/auth-server@@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.ensure directory (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.remove [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates.copy [START_DIR]/config/goma/k8s/rbe-dev/templates/[START_DIR]/config/goma/k8s/rbe-dev/templates/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia",
+      "*/*yaml*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.glob template dir [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.ensure directory",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.read input template [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      imagetag: $IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      buildtag: $TAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - --project-id=$PROJECT_ID@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          image: gcr.io/$CONTAINER_PROJECT_ID/auth-server:$IMAGETAG@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml.custom.in@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml.custom.in@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "container",
+      "images",
+      "list-tags",
+      "gcr.io/goma-fuchsia/auth-server",
+      "--filter",
+      "tags: latest",
+      "--limit",
+      "1",
+      "--format=get(digest)"
+    ],
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.retrieve digest for gcr.io/goma-fuchsia/auth-server",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "# Copyright 2020 Google Inc. All Rights Reserved.\n  apiVersion: apps/v1beta2\n  kind: Deployment\n  metadata:\n  labels:\n      app: auth-server\n  annotations:\n      imagetag: latest\n      buildtag: 20120514_125321\n  name: auth-server\n  spec:\n  replicas: 2\n  selector:\n      matchLabels:\n      app: auth-server\n  template:\n      metadata:\n      labels:\n          app: auth-server\n      spec:\n      containers:\n      - command:\n          - /opt/goma/bin/auth_server\n          - --project-id=goma-fuchsia\n          name: auth-server\n          image: gcr.io/goma-fuchsia/auth-server@\n          ports:\n          - containerPort: 5050\n          protocol: TCP\n          - containerPort: 8081\n          protocol: TCP\n          resources:\n          limits:\n              cpu: 1500m\n              memory: 1500Mi\n          requests:\n              cpu: 100m\n              memory: 100Mi\n          # following could be configured by PodPreset?\n          livenessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5\n          readinessProbe:\n          httpGet:\n              path: /healthz\n              port: 8081\n              scheme: HTTP\n          initialDelaySeconds: 3\n          periodSeconds: 5",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.generate yaml [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.custom.in from template [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml.write gke yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_auth-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@# Copyright 2020 Google Inc. All Rights Reserved.@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  apiVersion: apps/v1beta2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  kind: Deployment@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  annotations:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      imagetag: latest@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      buildtag: 20120514_125321@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  replicas: 2@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  selector:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      matchLabels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@  template:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      metadata:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      labels:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          app: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      spec:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      containers:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@      - command:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - /opt/goma/bin/auth_server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - --project-id=goma-fuchsia@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          name: auth-server@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          image: gcr.io/goma-fuchsia/auth-server@@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          ports:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 5050@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          - containerPort: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          protocol: TCP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          resources:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          limits:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 1500m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 1500Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          requests:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              cpu: 100m@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              memory: 100Mi@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          # following could be configured by PodPreset?@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          livenessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          readinessProbe:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          httpGet:@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              path: /healthz@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              port: 8081@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@              scheme: HTTP@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          initialDelaySeconds: 3@@@",
+      "@@@STEP_LOG_LINE@deploy_auth-server.yaml@          periodSeconds: 5@@@",
+      "@@@STEP_LOG_END@deploy_auth-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "ensure-directory",
+      "--mode",
+      "0777",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.ensure directory (2)",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "remove",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.remove [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.generate yaml from template directory [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia.copy [START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/[START_DIR]/config/goma/k8s/rbe-dev/templates-goma-fuchsia/goma/deploy_cmd-cache-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.patch yaml files",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev",
+      "*/*.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.glob yaml dir [START_DIR]/config/goma/k8s/rbe-dev",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "glob",
+      "[START_DIR]/config/goma/k8s/rbe-dev/patches",
+      "[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml.*"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.glob patch dir [START_DIR]/config/goma/k8s/rbe-dev/patches",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_LINE@glob@[START_DIR]/config/goma/k8s/rbe-dev/patches/[START_DIR]/config/goma/k8s/rbe-dev/patches/goma/deploy_exec-server.yaml.replica.strategic@@@",
+      "@@@STEP_LOG_END@glob@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "[START_DIR]/config/goma/k8s/rbe-dev/patches/[START_DIR]/config/goma/k8s/rbe-dev/patches/goma/deploy_exec-server.yaml.replica.strategic",
+      "/path/to/tmp/"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.read patch [START_DIR]/config/goma/k8s/rbe-dev/patches/[START_DIR]/config/goma/k8s/rbe-dev/patches/goma/deploy_exec-server.yaml.replica.strategic",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_END@deploy_exec-server.yaml.replica.strategic@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.ensure kubectl",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/kubectl",
+      "-ensure-file",
+      "fuchsia/third_party/kubectl/linux-amd64 version:1.16.1-00",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.ensure kubectl.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@4@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-version:1.16.1-0\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"fuchsia/third_party/kubectl/linux-amd64\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/kubectl/kubectl",
+      "patch",
+      "-f",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml",
+      "--local=true",
+      "--type=strategic",
+      "--patch",
+      "",
+      "-o",
+      "yaml"
+    ],
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.patch [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "",
+      "[START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.process yamls.patch yaml files.write patched yaml [START_DIR]/config/goma/k8s/rbe-dev/[START_DIR]/config/goma/k8s/rbe-dev/goma/deploy_exec-server.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@3@@@",
+      "@@@STEP_LOG_END@deploy_exec-server.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [],
+    "name": "configurate goma GCP backend.generate memory store",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "python",
+      "-u",
+      "RECIPE_MODULE[fuchsia::yaml]/resources/parse_yaml.py",
+      "[START_DIR]/config/goma/gke-res/rbe-dev/storage.yaml"
+    ],
+    "name": "configurate goma GCP backend.generate memory store.load yaml [START_DIR]/config/goma/gke-res/rbe-dev/storage.yaml",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"region\": \"us-central\"@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "redis",
+      "instances",
+      "describe",
+      "rbe-dev-memorystore",
+      "--project",
+      "goma-fuchsia",
+      "--region",
+      "us-central",
+      "--format",
+      "get(host)"
+    ],
+    "name": "configurate goma GCP backend.generate memory store.retrieve host info",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gcloud/bin/gcloud",
+      "redis",
+      "instances",
+      "describe",
+      "rbe-dev-memorystore",
+      "--project",
+      "goma-fuchsia",
+      "--region",
+      "us-central",
+      "--format",
+      "get(port)"
+    ],
+    "name": "configurate goma GCP backend.generate memory store.retrieve port info",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "vpython",
+      "-u",
+      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
+      "--json-output",
+      "/path/to/tmp/json",
+      "copy",
+      "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: memorystore\ndata:\n  REDISHOST: \"\"\n  REDISPORT: \"\"\n",
+      "[START_DIR]/config/goma/k8s/rbe-dev/goma/configmap-memorystore.yaml"
+    ],
+    "infra_step": true,
+    "name": "configurate goma GCP backend.generate memory store.write configmap-memorystore.yaml file",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@2@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@apiVersion: v1@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@kind: ConfigMap@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@metadata:@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@  name: memorystore@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@data:@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@  REDISHOST: \"\"@@@",
+      "@@@STEP_LOG_LINE@configmap-memorystore.yaml@  REDISPORT: \"\"@@@",
+      "@@@STEP_LOG_END@configmap-memorystore.yaml@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "add",
+      "--all",
+      "--intent-to-add"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git add"
+  },
+  {
+    "cmd": [
+      "git",
+      "diff"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git diff"
+  },
+  {
+    "cmd": [
+      "git",
+      "hash-object",
+      "a diff"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git hash-object"
+  },
+  {
+    "cmd": [
+      "git",
+      "add",
+      "-A"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git add (2)"
+  },
+  {
+    "cmd": [
+      "git",
+      "commit",
+      "-m",
+      "[goma] Update config for goma-fuchsia/rbe-dev:\n\nUsing gomatools tag: latest\n\nExempt-From-Owner-Approval: Roller.\n\nChange-Id: Iabc123\n"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git commit"
+  },
+  {
+    "cmd": [
+      "git",
+      "diff",
+      "HEAD^"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "diff",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@diff@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "git",
+      "push",
+      "origin",
+      "HEAD:refs/for/master"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "git push"
+  },
+  {
+    "cmd": [],
+    "name": "ensure gerrit"
+  },
+  {
+    "cmd": [
+      "cipd",
+      "ensure",
+      "-root",
+      "[START_DIR]/cipd/gerrit",
+      "-ensure-file",
+      "infra/tools/luci/gerrit/${platform} latest",
+      "-json-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/config",
+    "infra_step": true,
+    "name": "ensure gerrit.ensure_installed",
+    "~followup_annotations": [
+      "@@@STEP_NEST_LEVEL@1@@@",
+      "@@@STEP_LOG_LINE@json.output@{@@@",
+      "@@@STEP_LOG_LINE@json.output@  \"result\": {@@@",
+      "@@@STEP_LOG_LINE@json.output@    \"\": [@@@",
+      "@@@STEP_LOG_LINE@json.output@      {@@@",
+      "@@@STEP_LOG_LINE@json.output@        \"instance_id\": \"resolved-instance_id-of-latest----------\", @@@",
+      "@@@STEP_LOG_LINE@json.output@        \"package\": \"infra/tools/luci/gerrit/resolved-platform\"@@@",
+      "@@@STEP_LOG_LINE@json.output@      }@@@",
+      "@@@STEP_LOG_LINE@json.output@    ]@@@",
+      "@@@STEP_LOG_LINE@json.output@  }@@@",
+      "@@@STEP_LOG_LINE@json.output@}@@@",
+      "@@@STEP_LOG_END@json.output@@@"
+    ]
+  },
+  {
+    "cmd": [
+      "[START_DIR]/cipd/gerrit/gerrit",
+      "change-abandon",
+      "-host",
+      "https://fuchsia-review.googlesource.com",
+      "-input",
+      "{\"change_id\": \"Iabc123\", \"input\": {\"message\": \"dry run\"}}",
+      "-output",
+      "/path/to/tmp/json"
+    ],
+    "cwd": "[START_DIR]/config",
+    "name": "abandon the change",
+    "~followup_annotations": [
+      "@@@STEP_LOG_END@json.output (invalid)@@@",
+      "@@@STEP_LOG_LINE@json.output (exception)@No JSON object could be decoded@@@",
+      "@@@STEP_LOG_END@json.output (exception)@@@"
+    ]
+  },
+  {
+    "name": "$result"
+  }
+]
\ No newline at end of file
diff --git a/recipes/goma_gcp_configurator.py b/recipes/goma_gcp_configurator.py
new file mode 100644
index 0000000..f68bafa
--- /dev/null
+++ b/recipes/goma_gcp_configurator.py
@@ -0,0 +1,591 @@
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Recipe for updating goma configurations."""
+
+from recipe_engine.recipe_api import Property
+from string import Template
+
+import os.path
+
+DEPS = [
+    'fuchsia/gcloud',
+    'fuchsia/gerrit',
+    'fuchsia/git',
+    'fuchsia/kubectl',
+    'fuchsia/yaml',
+    'recipe_engine/buildbucket',
+    'recipe_engine/context',
+    'recipe_engine/file',
+    'recipe_engine/json',
+    'recipe_engine/path',
+    'recipe_engine/properties',
+    'recipe_engine/raw_io',
+    'recipe_engine/step',
+    'recipe_engine/time',
+]
+
+PROPERTIES = {
+    'repository':
+        Property(
+            kind=str,
+            help='repository that hold the goma configurations',
+            default='https://fuchsia.googlesource.com/infra/config'),
+    'config_root':
+        Property(
+            kind=str,
+            help='root directory in repository that stores goma configurations',
+            default='goma'),
+    'toolchain_project':
+        Property(
+            kind=str,
+            help='project name that hosts goma toolchains',
+            default='goma-fuchsia'),
+    'cluster_project':
+        Property(
+            kind=str,
+            help='project name that hosts goma cluster',
+            default='goma-fuchsia'),
+    'cluster':
+        Property(kind=str, help='the name of the cluster', default='rbe-dev'),
+    'tag':
+        Property(
+            kind=str,
+            help='container tag for gomatools containers',
+            default='latest'),
+    'dry_run':
+        Property(
+            kind=bool,
+            help='dry_run without landing changes to repository',
+            default=True),
+}
+
+COMMIT_MESSAGE = '''[goma] Update config for {project}/{cluster}:
+
+Using gomatools tag: {tag}
+
+Exempt-From-Owner-Approval: Roller.
+'''
+
+YAML_TEMPLATE_TEST_DATA = '''# Copyright 2020 Google Inc. All Rights Reserved.
+  apiVersion: apps/v1beta2
+  kind: Deployment
+  metadata:
+  labels:
+      app: auth-server
+  annotations:
+      imagetag: $IMAGETAG
+      buildtag: $TAG
+  name: auth-server
+  spec:
+  replicas: 2
+  selector:
+      matchLabels:
+      app: auth-server
+  template:
+      metadata:
+      labels:
+          app: auth-server
+      spec:
+      containers:
+      - command:
+          - /opt/goma/bin/auth_server
+          - --project-id=$PROJECT_ID
+          name: auth-server
+          image: gcr.io/$CONTAINER_PROJECT_ID/auth-server:$IMAGETAG
+          ports:
+          - containerPort: 5050
+          protocol: TCP
+          - containerPort: 8081
+          protocol: TCP
+          resources:
+          limits:
+              cpu: 1500m
+              memory: 1500Mi
+          requests:
+              cpu: 100m
+              memory: 100Mi
+          # following could be configured by PodPreset?
+          livenessProbe:
+          httpGet:
+              path: /healthz
+              port: 8081
+              scheme: HTTP
+          initialDelaySeconds: 3
+          periodSeconds: 5
+          readinessProbe:
+          httpGet:
+              path: /healthz
+              port: 8081
+              scheme: HTTP
+          initialDelaySeconds: 3
+          periodSeconds: 5'''
+
+
+def generate_time_stamp(api):
+  return "{:%Y%m%d_%H%M%S}".format(api.time.utcnow())
+
+
+def get_region_for_cluster(api, goma_config_dir, cluster):
+  storage_yaml = goma_config_dir.join('gke-res', cluster, 'storage.yaml')
+  if not api.path.exists(storage_yaml):
+    raise api.step.StepFailure('unknown cluster name %s' %
+                               cluster)  # pragma no cover
+  return api.yaml.retrieve_field(storage_yaml, 'region')
+
+
+def gen_configmap_memorystore(api, config_dir, cluster_project, cluster):
+  """Generate the content of memorystore yaml file for a goma k8s cluster.
+  This function mocks the behavior of 'gen-configmap-memorystore.sh' from
+  'cloudbuild/k8s'.
+
+  Args:
+    * cluster (str) - The name of the k8s cluster.
+  """
+  region = get_region_for_cluster(api, config_dir, cluster)
+
+  if region == '':
+    raise api.step.StepFailure(
+        'region config not found in file')  # pragma: no cover
+  host = api.gcloud(
+      'redis',
+      'instances',
+      'describe',
+      '%s-memorystore' % cluster,
+      '--project',
+      cluster_project,
+      '--region',
+      region,
+      '--format',
+      'get(host)',
+      step_name='retrieve host info',
+      stdout=api.raw_io.output(),
+  ).stdout.strip()
+  port = api.gcloud(
+      'redis',
+      'instances',
+      'describe',
+      '%s-memorystore' % cluster,
+      '--project',
+      cluster_project,
+      '--region',
+      region,
+      '--format',
+      'get(port)',
+      step_name='retrieve port info',
+      stdout=api.raw_io.output(),
+  ).stdout.strip()
+  return '''apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: memorystore
+data:
+  REDISHOST: "{}"
+  REDISPORT: "{}"
+'''.format(host, port)
+
+
+def patch_yaml(api, input_yaml, patch_file, test_data=''):
+  """Patch a k8s yaml configuration file using kubectl patch.
+  This function mocks the behavior of 'apply_patch' from
+  'cloudbuild/k8s/config.sh'.
+
+  Args:
+    * input_yaml (Path) - The path to the yaml that needs to be patched.
+    * patch_file (Path) - The path to the patch file.
+    * test_data (string) - The test data content of a patch file.
+  """
+  ptype = str(patch_file)[str(patch_file).rfind('.') + 1:]
+  patch_data = api.file.read_text(
+      'read patch %s' % patch_file, patch_file, test_data=test_data)
+  patched_yaml = api.kubectl(
+      'patch',
+      '-f',
+      input_yaml,
+      '--local=true',
+      '--type=%s' % ptype,
+      '--patch',
+      patch_data,
+      '-o',
+      'yaml',
+      step_name='patch %s' % input_yaml,
+      stdout=api.raw_io.output(),
+  ).stdout
+  api.file.write_text('write patched yaml %s' % input_yaml, input_yaml,
+                      patched_yaml)
+
+
+def template_to_output(api, template_file, templates_root, yaml_root):
+  """Generate the file name of generated k8s configuration yaml from a
+  template.
+
+  Args:
+    * template_file (Path) - The path to the template file.
+    * templates_root (Path) - The path to the root directory of the templates.
+    * yaml_root (Path) - The path to the root directory that holds generated
+                         k8s configuration yamls.
+  """
+  template_file_rel = os.path.relpath(str(template_file), str(templates_root))
+  target_file = api.path.join(str(yaml_root), template_file_rel)
+  if target_file.endswith('.in'):
+    target_file = target_file[:len(target_file) - len('.in')]
+  if target_file.endswith('.custom'):
+    target_file = target_file[:len(target_file) - len('.custom')]
+  return api.path.abs_to_path(target_file)
+
+
+def generate_k8s_yaml_from_template(api,
+                                    input_yaml,
+                                    output_yaml,
+                                    cluster_project,
+                                    cluster,
+                                    container_project,
+                                    rbe_instance_prefix,
+                                    cmd_files_bucket,
+                                    toolchain_config_bucket,
+                                    cache_bucket_prefix,
+                                    imagetag='latest',
+                                    opt_pre_shared_cert='',
+                                    tag='',
+                                    test_data=''):
+  """Generate k8s yaml configuration files from templates.
+  This function mocks the behavior of 'fix.sh' in 'cloudbuild/k8s'.
+
+  Args:
+    * input_yaml (Path) - The path to the template file.
+    * output_yaml (Path) - The path to the generated yaml file.
+    * project_id (str) - The project id of the gcloud project hosting k8s
+                         clusters.
+    * cluster (str) - The name of the k8s cluster.
+    * container_project (str) - The project id of the gcloud project
+                                hosting goma docker images.
+    * rbe_instance_prefix (str) - The instance prefix for RBE workers.
+    * cmd_files_bucket (str) - The GCS bucket name for Goma config files.
+    * toolchain_config_bucket (str) - The GCS bucket of Goma toolchain config.
+    * cache_bucket_prefix (str) - The GCS bucket name for toolchain caches.
+    * imagetag (str) - The container tag name for Goma GCP images.
+    * opt_pre_shared_cert (str) - The optional path to pre shared SSL certs.
+    * tag (str) - The time stamp tag.
+    * test_data (str) - Test data for template.
+  """
+  replace_dict = {
+      'PROJECT_ID': cluster_project,
+      'CLUSTER': cluster,
+      'CONTAINER_PROJECT_ID': container_project,
+      'RBE_INSTANCE_PREFIX': rbe_instance_prefix,
+      'CMD_FILES_BUCKET': cmd_files_bucket,
+      'TOOLCHAIN_CONFIG_BUCKET': toolchain_config_bucket,
+      'CACHE_BUCKET_PREFIX': cache_bucket_prefix,
+      'TAG': tag,
+  }
+  if opt_pre_shared_cert:
+    # Not currently used by Fuchsia goma.
+    replace_dict['OPT_PRE_SHARED_CERT'] = opt_pre_shared_cert  # pragma no cover
+  infile = api.file.read_text(
+      'read input template %s' % input_yaml, input_yaml, test_data=test_data)
+  outfile = ""
+  # First pass, looking for image url and retrieve image digest.
+  for curline in infile.splitlines(True):
+    if 'image:' in curline:
+      image_url = curline[curline.find('image:') +
+                          len('image:'):curline.find(':$IMAGETAG')].strip()
+      image_url_temp = Template(image_url)
+      image_url = image_url_temp.substitute(replace_dict)
+      # SHA256 can be retrieved through gcloud container images list-tags gcr.io/goma-fuchsia/auth-server --filter "tags: \"latest\"" --limit 1 --format='get(digest)'
+      digest = api.gcloud(
+          'container',
+          'images',
+          'list-tags',
+          image_url,
+          '--filter',
+          'tags: %s' % imagetag,
+          '--limit',
+          '1',
+          '--format=get(digest)',
+          step_name='retrieve digest for %s' % image_url,
+          stdout=api.raw_io.output(),
+      ).stdout.strip()
+      break
+  # Second pass, replace place holders to actual image spec data.
+  replace_dict['IMAGETAG'] = imagetag
+  for curline in infile.splitlines(True):
+    if ':$IMAGETAG' in curline:
+      curline = curline.replace(':$IMAGETAG', '@' + digest)
+    curline_temp = Template(curline)
+    curline = curline_temp.substitute(replace_dict)
+    outfile += curline
+  api.file.write_text('write gke yaml %s' % output_yaml, output_yaml, outfile)
+
+
+def generate_k8s_yaml_from_template_on_directory(
+    api, templates_root, k8s_config_root, project_id, container_project_id,
+    cluster, rbe_instance_prefix, cmd_files_bucket, toolchain_config_bucket,
+    imagetag, cache_bucket_prefix, tag):
+  """Generate the k8s configuration yamls from a template directory.
+
+  Args:
+    * api (RecipeApi) - The RecipeApi object.
+    * templates_root (Path) - The path to the root directory of the templates.
+    * k8s_config_root (Path) - The path to the root directory that holds generated
+                               k8s configuration yamls.
+    * project_id (str) - The project id of the gcloud project hosting k8s
+                         clusters.
+    * cluster (str) - The name of the k8s cluster.
+    * rbe_instance_prefix (str) - The instance prefix for RBE workers.
+    * cmd_files_bucket (str) - The GCS bucket name for Goma config files.
+    * toolchain_config_bucket (str) - The GCS bucket of Goma toolchain config.
+    * imagetag (str) - The container tag name for Goma GCP images.
+    * cache_bucket_prefix (str) - The GCS bucket name for toolchain caches.
+    * tag (str) - The time stamp tag.
+  """
+  with api.step.nest('generate yaml from template directory %s' %
+                     templates_root):
+    for item in api.file.glob_paths(
+        'glob template dir %s' % str(templates_root),
+        templates_root,
+        '*/*yaml*',
+        test_data=[
+            templates_root.join('goma', 'deploy_auth-server.yaml.custom.in'),
+            templates_root.join('goma', 'deploy_cmd-cache-server.yaml'),
+        ]):
+      output_file = template_to_output(api, item, templates_root,
+                                       k8s_config_root)
+      api.file.ensure_directory('ensure directory',
+                                api.path.dirname(output_file))
+      if str(item).endswith('.yaml') or str(item).endswith('.yaml.custom'):
+        api.file.remove('remove %s' % output_file, output_file)
+        api.file.copy('copy %s' % item, item, output_file)
+        continue
+      with api.step.nest('generate yaml {} from template {}'.format(
+          item, output_file)):
+
+        generate_k8s_yaml_from_template(
+            api,
+            item,
+            output_file,
+            project_id,
+            cluster,
+            container_project_id,
+            rbe_instance_prefix,
+            cmd_files_bucket,
+            toolchain_config_bucket,
+            cache_bucket_prefix,
+            imagetag=imagetag,
+            tag=tag,
+            test_data=YAML_TEMPLATE_TEST_DATA)
+
+
+def config_cluster(api, config_dir, cluster_project, toolchain_project, cluster,
+                   tag, timestamp):
+  """Generate Goma k8s cluster configurations.
+  This function mocks the behaviors of `./build.sh k8s config $CLUSTER`.
+  It only supports Goma GCP with RBE.
+
+  Args:
+    * api (RecipeApi) - The RecipeApi object.
+    * cluster_project (str) - The project id of the gcloud project hosting k8s
+                              clusters.
+    * toolchain_project (str) - The project id of the gcloud project hosting
+                                goma toolchain images.
+    * zone (str) - The gcloud zone for Goma GCP backend.
+    * cluster (str) - The name of the cluster.
+    * imagetag (str) - The container tag name for Goma GCP images.
+    * timestamp (str) - The timestamp tag.
+  """
+  rbe_instance_prefix = 'projects/%s/instances' % cluster_project
+  cmd_files_bucket = '%s-files' % toolchain_project
+  toolchain_config_bucket = '%s-toolchain-config' % toolchain_project
+  cache_bucket_prefix = '{}-{}'.format(cluster_project, cluster)
+  # We only support RBE
+  cluster_template = 'rbe'
+
+  k8s_config_root = config_dir.join('k8s').join(cluster)
+
+  with api.step.nest('Remove existing k8s configurations'):
+    for item in api.file.glob_paths(
+        'glob existing configurations',
+        k8s_config_root.join(cluster),
+        '*/*.yaml',
+        test_data=[
+            k8s_config_root.join('rbe-dev', 'goma',
+                                 'configmap_nginx-extra-conf.yaml')
+        ]):
+      api.file.remove('remove %s' % item, item)
+
+  templates_root = config_dir.join('k8s').join('templates-%s' %
+                                               cluster_template)
+  cluster_templates_root = config_dir.join('k8s').join(cluster, 'templates')
+  project_templates_root = config_dir.join('k8s').join(
+      cluster, 'templates-%s' % cluster_project)
+  with api.step.nest('process yamls'):
+    # Process yaml from ${templates}"/*/*yaml*
+    generate_k8s_yaml_from_template_on_directory(
+        api,
+        templates_root,
+        k8s_config_root,
+        cluster_project,
+        toolchain_project,
+        cluster,
+        rbe_instance_prefix,
+        cmd_files_bucket,
+        toolchain_config_bucket,
+        tag,
+        cache_bucket_prefix,
+        tag=timestamp)
+
+    # Process yaml from "${cluster}/templates/"*/*yaml*
+    generate_k8s_yaml_from_template_on_directory(
+        api,
+        cluster_templates_root,
+        k8s_config_root,
+        cluster_project,
+        toolchain_project,
+        cluster,
+        rbe_instance_prefix,
+        cmd_files_bucket,
+        toolchain_config_bucket,
+        tag,
+        cache_bucket_prefix,
+        tag=timestamp)
+
+    # Process yaml from "${cluster}/templates-${project}/"*/*yaml*
+    generate_k8s_yaml_from_template_on_directory(
+        api,
+        project_templates_root,
+        k8s_config_root,
+        cluster_project,
+        toolchain_project,
+        cluster,
+        rbe_instance_prefix,
+        cmd_files_bucket,
+        toolchain_config_bucket,
+        tag,
+        cache_bucket_prefix,
+        tag=timestamp)
+
+    # Patch yaml files
+    with api.step.nest('patch yaml files'):
+      for item in api.file.glob_paths(
+          'glob yaml dir %s' % str(k8s_config_root),
+          k8s_config_root,
+          '*/*.yaml',
+          test_data=[k8s_config_root.join('goma', 'deploy_exec-server.yaml')]):
+        item_rel = os.path.relpath(str(item), str(k8s_config_root))
+        for patch_file in api.file.glob_paths(
+            'glob patch dir %s' % str(k8s_config_root.join('patches')),
+            k8s_config_root.join('patches'),
+            item_rel + '.*',
+            test_data=[
+                k8s_config_root.join(
+                    'patches', 'goma',
+                    'deploy_exec-server.yaml.replica.strategic')
+            ]):
+          patch_yaml(api, item, patch_file)
+  # gen memory store
+  with api.step.nest('generate memory store'):
+    api.file.write_text(
+        'write configmap-memorystore.yaml file',
+        k8s_config_root.join('goma', 'configmap-memorystore.yaml'),
+        gen_configmap_memorystore(api, config_dir, cluster_project, cluster))
+
+
+def RunSteps(api, repository, config_root, toolchain_project, cluster_project,
+             cluster, tag, dry_run):
+  timestamp = generate_time_stamp(api)
+  # checkout
+  infra_config_dir = api.path['start_dir'].join('config')
+  goma_config_dir = infra_config_dir.join(config_root)
+  # for recipe tests, add mock files.
+  api.path.mock_add_paths(
+      goma_config_dir.join('gke', 'rbe-dev', 'cluster.yaml'))
+  api.path.mock_add_paths(
+      goma_config_dir.join('gke-res', 'rbe-dev', 'storage.yaml'))
+
+  api.git.checkout(
+      url=repository, path=infra_config_dir, submodules=False, cache=False)
+  with api.step.nest('configurate goma GCP backend'):
+    api.path.mock_add_paths(
+        goma_config_dir.join('gke', cluster, 'cluster.yaml'))
+    config_cluster(api, goma_config_dir, cluster_project, toolchain_project,
+                   cluster, tag, timestamp)
+
+  # Push changes to infra/config.
+  with api.context(cwd=infra_config_dir):
+    # Calculate the Change ID for Gerrit.
+    api.git('add', '--all', '--intent-to-add')
+    diff_step = api.git(
+        'diff',
+        stdout=api.raw_io.output(),
+        step_test_data=lambda: api.raw_io.test_api.stream_output('a diff'))
+    hash_step = api.git(
+        'hash-object',
+        api.raw_io.input(diff_step.stdout),
+        stdout=api.raw_io.output(),
+        step_test_data=lambda: api.raw_io.test_api.stream_output('abc123'))
+    change_id = 'I%s' % hash_step.stdout.strip()
+    message = COMMIT_MESSAGE.format(
+        project=cluster_project,
+        cluster=cluster,
+        tag=tag,
+    ) + ('\nChange-Id: %s\n' % change_id)
+    api.git.commit(
+        message=message,
+        all_files=True,
+    )
+    diff_step = api.step(
+        'diff', ['git', 'diff', 'HEAD^'], stdout=api.raw_io.output())
+    diff_step.presentation.logs['diff'] = diff_step.stdout.splitlines()
+    push_step = api.git.push('HEAD:refs/for/master', ok_ret='any')
+    if push_step.retcode != 0:
+      # Maybe caused by change ID collision.
+      push_step.presentation.step_summary_text = 'rejected by gerrit'
+      push_step.presentation.step_text = (
+          '\nChange is identical to a previous CL')
+      return
+    if dry_run:
+      api.gerrit.abandon('abandon the change', change_id, message='dry run')
+    else:
+      labels = {'Code-Review': 2}
+      api.gerrit.set_review(
+          'submit to commit queue',
+          change_id,
+          labels=labels,
+      )
+      api.gerrit.submit(
+          name='submit',
+          change_id=change_id,
+      )
+
+
+def GenTests(api):
+  dry_run_properties = api.properties(
+      repository='https://fuchsia.googlesource.com/infra/config',
+      config_root='goma',
+      toolchain_project='goma-fuchsia',
+      cluster_project='goma-fuchsia',
+      tag='latest',
+      dry_run=True)
+  default_properties = api.properties(
+      repository='https://fuchsia.googlesource.com/infra/config',
+      config_root='goma',
+      toolchain_project='goma-fuchsia',
+      cluster_project='goma-fuchsia',
+      tag='latest',
+      dry_run=False)
+
+  region_step_data = api.step_data(
+      'configurate goma GCP backend.generate memory store.load yaml [START_DIR]/config/goma/gke-res/rbe-dev/storage.yaml',
+      stdout=api.json.output({'region': 'us-central'}))
+
+  yield api.test('dry_run') + dry_run_properties + api.buildbucket.try_build(
+      git_repo='https://fuchsia.googlesource.com/integration'
+  ) + region_step_data
+
+  yield api.test('default') + default_properties + api.buildbucket.try_build(
+      git_repo='https://fuchsia.googlesource.com/integration'
+  ) + region_step_data
+
+  yield api.test('change id collision') + default_properties + api.step_data(
+      'git push', retcode=1) + api.buildbucket.try_build(
+          git_repo='https://fuchsia.googlesource.com/integration'
+      ) + region_step_data