# This configuration file controls which applications
# can be pushed to which servers.
#
# Each server is configured at [servers.{servername}]
# where {servername} is the GCE name of the server.
# The only supported value is appNames which is a list
# of applications that can be installed on the server.
#
# The names in appName should match up with the directory
# names in gs://skia-push/debs/.
#
[servers]

# For example this section would indicated that prober and logserver can be
# deployed to server skia-testing-b.
#
#  [servers.skia-testing-b]
#  appNames = [
#    "logserver",
#    "prober",
#  ]

  [servers.skia-monitoring]
  appNames = [
    "grafanad",
    "grafana-configd",
    "logmetrics",
    "proberd",
    "pulld",
    "graphite-exporter",
  ]

  [servers.skia-push]
  appNames = [
    "pulld",
    "pushd",
  ]

  [servers.skia-docs]
  appNames = [
    "docserver",
    "contest",
    "pulld",
  ]

  [servers.skia-skfe-1]
  appNames = [
    "pulld",
    "skfe-config",
  ]

  [servers.skia-skfe-2]
  appNames = [
    "pulld",
    "skfe-config",
  ]

  [servers.skia-perf]
  appNames = [
    "pulld",
    "skiaperfd",
  ]

  [servers.skia-gold-prod]
  appNames = [
    "pulld",
    "skiacorrectness-prod",
  ]

  [servers.skia-diffserver-prod]
  appNames = [
    "pulld",
    "diffserver-prod",
  ]

  [servers.skia-gold-pdfium]
  appNames = [
    "pulld",
    "skiacorrectness-pdfium",
  ]

  [servers.skia-systemd-snapshot-maker]
  appNames = [
    "pulld",
  ]

  [servers.skia-ct-master]
  appNames = [
    "pulld",
    "ct-masterd",
  ]

  [servers.skia-ctfe]
  appNames = [
    "pulld",
    "ctfe",
  ]

  [servers.skia-cq-watcher]
  appNames = [
    "pulld",
    "cq-watcherd",
  ]

  [servers.skia-swarming-logger]
  appNames = [
    "swarming-logger",
    "pulld",
  ]

  [servers.skia-task-scheduler]
  appNames = [
    "task-scheduler",
    "task-scheduler-db-backup",
    "task-scheduler-trigger-nightly",
    "task-scheduler-trigger-weekly",
    "pulld",
  ]

  [servers.skia-task-scheduler-internal]
  appNames = [
    "task-scheduler-internal",
    "task-scheduler-db-backup",
    "task-scheduler-trigger-nightly",
    "task-scheduler-trigger-weekly",
    "pulld",
  ]

  [servers.skia-status]
  appNames = [
    "statusd",
    "pulld",
  ]

  [servers.skia-status-internal]
  appNames = [
    "status-internal",
    "pulld",
  ]

  [servers.skia-autoroll]
  appNames = [
    "skia-autorolld",
    "pulld",
  ]

  [servers.skia-internal-autoroll]
  appNames = [
    "skia-internal-autorolld",
    "pulld",
  ]

  [servers.android-master-autoroll]
  appNames = [
    "android-master-autorolld",
    "pulld",
  ]

  [servers.android-o-autoroll]
  appNames = [
    "android-o-autorolld",
    "pulld",
  ]

  [servers.catapult-autoroll]
  appNames = [
    "catapult-autorolld",
    "pulld",
  ]

  [servers.nacl-autoroll]
  appNames = [
    "nacl-autorolld",
    "pulld",
  ]

  [servers.pdfium-autoroll]
  appNames = [
    "pdfium-autorolld",
    "pulld",
  ]

  [servers.fuchsia-autoroll]
  appNames = [
    "fuchsia-autorolld",
    "pulld",
  ]

  [servers.skia-datahopper2]
  appNames = [
    "buildbot-db-backup",
    "datahopperd",
    "pulld",
  ]

  [servers.skia-datahopper-test1]
  appNames = [
    "datahopperd",
    "pulld",
  ]

  [servers.skia-datahopper-test2]
  appNames = [
    "datahopperd",
    "pulld",
  ]

  [servers.skia-fuzzer-fe]
  appNames = [
    "pulld",
    "fuzzer-fe",
  ]

  [servers.skia-fuzzer-be-1]
  appNames = [
    "pulld",
    "fuzzer-be-1",
  ]

  [servers.skia-fuzzer-be-2]
  appNames = [
    "pulld",
    "fuzzer-be-2",
  ]

  [servers.skia-fuzzer-be-3]
  appNames = [
    "pulld",
    "fuzzer-be-3",
  ]

  [servers.skia-internal]
  appNames = [
    "datahopper-internald",
    "pulld",
  ]

  [servers.skia-tracedb]
  appNames = [
    "pulld",
    "traceserverd",
    "ingestiond",
  ]

  [servers.skia-debugger]
  appNames = [
    "pulld",
    "skdebuggerd",
  ]

  [servers.skia-fiddle]
  appNames = [
    "pulld",
    "fiddle",
  ]

  [servers.skia-imageinfo]
  appNames = [
    "pulld",
    "imageinfo",
  ]

  [servers.skia-rpi-master]
  appNames = [
    "pulld-not-gce",
    "rpi-backup",
  ]

  [servers.skia-rpi-master-spare]
  appNames = [
    "pulld-not-gce",
    "hotspare",
  ]

  [servers.jumphost-rpi-01]
  appNames = [
    "powercycle",
    "prometheus-jumphost-rpi-01",
    "pulld-not-gce",
    "router-backup",
  ]

  [servers.jumphost-linux-01]
  appNames = [
    "powercycle",
    "pulld-not-gce",
    "router-backup",
  ]

  [servers.skia-android-ingest]
  appNames = [
    "androidingest",
    "pulld",
  ]

  [servers.skia-prom]
  appNames = [
    "prometheus",
    "prometheus-config",
    "sheriff-emails",
    "pulld",
  ]

  [servers.skia-proxy]
  appNames = [
    "corpproxy",
    "pulld",
  ]

  [servers.skia-android-perf]
  appNames = [
    "android-skiaperfd",
    "pulld",
  ]

  [servers.skia-android-master-perf]
  appNames = [
    "android-master-skiaperfd",
    "pulld",
  ]

  [servers.skia-power-controller]
  appNames = [
    "power-controller",
    "pulld",
  ]
