prow/oss/terraform/main.tf (80 lines of code) (raw):
# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# NOTE: These alerts are being developed internally and for now serve as a
# reference. When things are stabilized, these alerts will be updated.
# Store terraform states in GCS
terraform {
backend "gcs" {
bucket = "prow-metrics-terraform"
}
}
module "dashboards" {
source = "./modules/dashboards"
project = "prow-metrics"
}
module "alert" {
source = "./modules/alerts"
project = "prow-metrics"
heartbeat_jobs = [
{ // oss-prow
job_name = "ci-oss-test-infra-heartbeat"
interval = "300s"
alert_interval = "1200s"
},
{ // k8s-prow
job_name = "ci-test-infra-prow-checkconfig"
interval = "300s"
alert_interval = "1200s"
},
]
# gcloud alpha monitoring channels list --project=prow-metrics
# grep displayName: prow-alert-pioneer
notification_channel_id = "1206225022273963240"
prow_instances = {
oss-prow = {
crier : { namespace : "default" }
deck : { namespace : "default" }
ghproxy : { namespace : "default" }
hook : { namespace : "default" }
horologium : { namespace : "default" }
prow-controller-manager : { namespace : "default" }
sinker : { namespace : "default" }
tide : { namespace : "default" }
}
k8s-prow = {
crier : { namespace : "default" }
deck : { namespace : "default" }
ghproxy : { namespace : "default" }
hook : { namespace : "default" }
horologium : { namespace : "default" }
prow-controller-manager : { namespace : "default" }
sinker : { namespace : "default" }
tide : { namespace : "default" }
}
istio-testing = {
crier : { namespace : "default" }
deck : { namespace : "default" }
ghproxy : { namespace : "default" }
hook : { namespace : "default" }
horologium : { namespace : "default" }
prow-controller-manager : { namespace : "default" }
sinker : { namespace : "default" }
tide : { namespace : "default" }
}
}
// blackbox_probers maps HTTPS hosts to the project they should be associated with.
blackbox_probers = [
// oss-prow
"oss.gprow.dev",
// k8s-prow
"prow.k8s.io",
"testgrid.k8s.io",
"gubernator.k8s.io",
// istio-testing
"prow.istio.io",
]
bot_token_hashes = [
"5514c8081c74362c58993e5de935cb92e38cc9397e57a72883c1878cfcdd4b38", // google-oss-robot
"89baaef92d6c5da4c2261911d273d4a01ef27d80f2bb7d517185f6f0416be8b5", // istio-testing
// Ignore k8s-ci-robot until we resolve the token remaining inaccuracies.
// "6624f39f2213835d6c820aff41666853557f99155d23cc52cd9171bcbed3dccc", // k8s-ci-robot
]
no_webhook_alert_minutes = {
"oss-prow" = 15
"k8s-prow" = 10
"istio-testing" = 30
}
}