blob: 6d7da99f5b44041ed2128b264d567f00f33e774f [file]
# Copyright 2022 The LUCI Authors.
#
# 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
#
# http://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.
runtime: go125
instance_class: F4
service: default
service_account: ${SERVICE_ACCOUNT}
# Currently optimised for the backend. If frontend latency becomes
# an issue, we can split backend into a separate service.
automatic_scaling:
target_throughput_utilization: 0.90
target_cpu_utilization: 0.90
max_concurrent_requests: 20
# Always keep some instances running to avoid latency spikes from needing
# to spin up new instances.
min_instances: 2
# Note: this is interpreted by gae.py, it maps the app ID being deployed to
# values of ${...} vars.
# Reference: https://chromium.googlesource.com/infra/luci/luci-go/+/HEAD/examples/appengine/helloworld_v2/app.yaml
#
# This configuration is only used for developer testing. The
# configuration used for development and production instances is
# contained in the infradata/gae repo. Refer to LUCI GAE Automatic
# Deployment for more (go/luci/how_to_deploy.md) (Googlers only).
#
# IMPORTANT: Keep in sync between app.yaml, service-api.yaml and service-result-ingestion.yaml.
# IMPORTANT: Keep in sync with app.star files in
# https://chrome-internal.googlesource.com/infradata/gae/+/refs/heads/main/apps/luci-analysis/
# and in
# https://chrome-internal.googlesource.com/infradata/gae/+/refs/heads/main/apps/weetbix/
luci_gae_vars:
luci-analysis-dev:
AUTH_SERVICE_HOST: chrome-infra-auth-dev.appspot.com
CONFIG_SERVICE_HOST: config.luci.app
CRON_AUTHORIZED_CALLER: cloud-scheduler-jobs@luci-analysis-dev.iam.gserviceaccount.com
PUBSUB_AUTHORIZED_CALLER: cloud-pubsub-pusher@luci-analysis-dev.iam.gserviceaccount.com
TQ_PUSH_AS: cloud-tasks-pusher@luci-analysis-dev.iam.gserviceaccount.com
TQ_PUSH_OIDC_TOKEN_AUDIENCE: https://staging.analysis.api.luci.app
TQ_TARGET_HOST: staging.analysis.api.luci.app
TS_MON_ACCOUNT: app-engine-metric-publishers@prodx-mon-chrome-infra.google.com.iam.gserviceaccount.com
OAUTH_CLIENT_ID: 171536942974-su83vlacqnbccpm2h32ki6gs5a2hi7eo.apps.googleusercontent.com
ROOT_SECRET: sm://root-secret
SPANNER_DB: projects/luci-analysis-dev/instances/dev/databases/luci-analysis-dev
DISABLE_PROJECT_SCOPED_AUTH: TRUE
BUGANIZER_MODE: disable
BUGANIZER_ENDPOINT_BASE: placeholder-issuetracker-c2p
BUGANIZER_ENDPOINT_OAUTH_SCOPE: https://www.googleapis.com/auth/placeholder
BUGANIZER_TEST_COMPONENT_ID: 12345
BUGANIZER_TEST_MODE: false
BUGANIZER_SELF_EMAIL: email@google.com
SERVICE_ACCOUNT: luci-analysis-dev-service@luci-analysis-dev.iam.gserviceaccount.com
PROFILING_PROBABILITY: "0.25"
UI_BASE_URL: "luci-milo-dev.appspot.com/ui/tests"
# IMPORTANT: Except for /static, keep in sync between app.yaml, service-api.yaml and service-result-ingestion.yaml.
handlers:
- url: /_ah/push-handlers/.*
script: auto
login: admin
secure: always
- url: /.*
script: auto
secure: always
# To allow setting min_instances in automatic scaling block above.
inbound_services:
- warmup
# IMPORTANT: Keep in sync between app.yaml, service-api.yaml and service-result-ingestion.yaml.
entrypoint: >
main
-auth-service-host ${AUTH_SERVICE_HOST}
-config-service-host ${CONFIG_SERVICE_HOST}
-cron-authorized-caller ${CRON_AUTHORIZED_CALLER}
-tq-default-target-host ${TQ_TARGET_HOST}
-tq-push-as ${TQ_PUSH_AS}
-tq-push-oidc-token-audience ${TQ_PUSH_OIDC_TOKEN_AUDIENCE}
-tq-sweep-initiation-launcher ${CRON_AUTHORIZED_CALLER}
-pubsub-authorized-caller ${PUBSUB_AUTHORIZED_CALLER}
-ts-mon-account ${TS_MON_ACCOUNT}
-frontend-client-id ${OAUTH_CLIENT_ID}
-root-secret ${ROOT_SECRET}
-spanner-database ${SPANNER_DB}
-disable-project-scoped-auth=${DISABLE_PROJECT_SCOPED_AUTH}
-buganizer-mode=${BUGANIZER_MODE}
-buganizer-endpoint-base=${BUGANIZER_ENDPOINT_BASE}
-buganizer-endpoint-oauth-scope=${BUGANIZER_ENDPOINT_OAUTH_SCOPE}
-buganizer-test-component-id=${BUGANIZER_TEST_COMPONENT_ID}
-buganizer-self-email=${BUGANIZER_SELF_EMAIL}
-buganizer-test-mode=${BUGANIZER_TEST_MODE}
-profiling-probability=${PROFILING_PROBABILITY}
-ui-base-url=${UI_BASE_URL}