# 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",
    "influxdbd",
    "influxdb-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 = [
    "logserverd",
    "pulld",
    "skiacorrectness-prod",
  ]

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

  [servers.skia-gold-pdfium]
  appNames = [
    "logserverd",
    "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-task-scheduler-stage]
  appNames = [
    "task-scheduler",
    "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-alerts]
  appNames = [
    "alertserverd",
    "logserverd",
    "pulld",
  ]

  [servers.skia-autoroll]
  appNames = [
    "skia-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-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.skia-jumphost]
  appNames = [
    "pulld-not-gce",
  ]

  [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",
  ]
