# 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",
    "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-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-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.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",
    "router-backup",
  ]

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

  [servers.skia-jumphost]
  appNames = [
    "powercycle-backup",
    "pulld-not-gce",
    "prometheus-skolo",
  ]

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

  [servers.skia-prom]
  appNames = [
    "prometheus",
    "prometheus-config",
    "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",
  ]
