| # Copyright 2021 The Chromium OS Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| version: "3" | |
| services: | |
| ##############################################################################conf-creator | |
| conf_creator: | |
| container_name: conf-creator | |
| image: ${SFP_REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab-for-partners}/conf_creator:${CONF_CREATOR:-release} | |
| environment: | |
| - DOCKER_GCS_IMAGE_STORAGE_SERVER=${GCS_IMAGE_BUCKET:-chromeos-image-archive} | |
| labels: | |
| - "skip.while.pruning.docker.system=yes" | |
| volumes: | |
| - nginx_configs:/mnt/conf/nginx:rw | |
| ##############################################################################drone | |
| drone: | |
| container_name: drone | |
| image: ${SFP_REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab-for-partners}/drone:${SATLAB_DRONE:-release} | |
| environment: | |
| - ADB_CONNECTION_PORT=5555 | |
| - DOCKER_DRONE_QUEEN_SERVICE=drone-queen-prod.appspot.com | |
| - DOCKER_DRONE_SWARMING_SERVER_URL=https://chromeos-swarming.appspot.com | |
| - DOCKER_DRONE_ADMIN_SERVICE=chromeos-skylab-bot-fleet.appspot.com | |
| - DOCKER_DRONE_INVENTORY_ENVIRONMENT=prod | |
| - DOCKER_DRONE_AGENT_DUT_CAPACITY=${DRONE_AGENT_DUT_CAPACITY:-10} | |
| - DOCKER_DRONE_INVENTORY_SERVICE=cros-lab-inventory.appspot.com | |
| - DOCKER_DRONE_UFS_SERVICE=ufs.api.cr.dev | |
| - DOCKER_DRONE_AGENT_HIVE=${DRONE_HOSTNAME:-satlab-drone} | |
| - DOCKER_DRONE_LABPACK_DIR=/usr/local/labpack | |
| - DOCKER_DRONE_CACHESERVER_IP=192.168.100.1 | |
| - DOCKER_DRONE_SUBNET=192.168.231.0/24 | |
| - SERVOD_CONTAINER_LABEL=${SERVOD_CONTAINER_LABEL:-release} | |
| - DOCKER_SERVOD_DEBUG_MODE=0 | |
| - DOCKER_DEFAULT_NETWORK=default_satlab | |
| - DOCKER_DRONE_SERVER_NAME=${SATLAB_HOST_IP:-satlab-drone} | |
| - DOCKER_DNS_SERVER=192.168.100.51 | |
| - DOCKER_DRONE_PRIVATE_SSH_KEYS_PATH=/creds/ssh_keys/partner_testing_rsa | |
| - DOCKER_DRONE_AGENT_BOT_PREFIX=${BOT_PREFIX:-crossk-} | |
| - DOCKER_DRONE_AGENT_TSMON_CREDENTIAL_PATH=${TSMON_CREDENTIAL_PATH:-} | |
| - DOCKER_DRONE_AGENT_TSMON_ENDPOINT=${TSMON_END_POINT:-} | |
| - DOCKER_SHIVAS_NAMESPACE=${UFS_NAMESPACE:-os} | |
| - DOCKER_GCS_IMAGE_STORAGE_SERVER=${GCS_IMAGE_BUCKET:-} | |
| - DOCKER_DRONE_RECOVERY_VERSIONS_DIR=/creds/service_accounts/recovery_versions/ | |
| - DOCKER_CERT_PATH=${DOCKER_CERT_PATH:-} | |
| - DOCKER_DRONE_CERT_PATH=${DOCKER_DRONE_CERT_PATH:-} | |
| - DOCKER_HOST=${DOCKER_HOST:-} | |
| - DOCKER_TLS_VERIFY=${DOCKER_TLS_VERIFY:-} | |
| - DOCKER_RPM_PASSWORD=${DOCKER_RPM_PASSWORD:-/creds/rpm/password.json} | |
| privileged: true | |
| hostname: ${DRONE_HOSTNAME:-satlab-drone} | |
| restart: always | |
| volumes: | |
| - ssp:/usr/local/autotest/containers/ssp_volume:rw | |
| - satlab_keys:/creds/service_accounts:rw | |
| - rpm_keys:/creds/rpm:ro | |
| - servod_profile:/var/servod/profile/:rw | |
| - containers:/var/lib/containers:rw | |
| - partner_testing_rsa:/creds/ssh_keys:rw | |
| - docker_tls:${DOCKER_COMPOSE_CERT_PATH}:ro | |
| - /dev:/dev | |
| # TODO (prasadv): Make static ip addresses higher numbers | |
| # so that the lower number are available for dhcp to assign it | |
| # to dynamically created containers such as servod container | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.10 | |
| dns: | |
| - 192.168.100.51 | |
| depends_on: | |
| - dns | |
| - partner_testing_rsa | |
| - labservice | |
| - passport | |
| ##############################################################################dns | |
| dns: | |
| container_name: dns | |
| image: ${REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab}/satlab-dns:${DNS:-release} | |
| restart: unless-stopped | |
| volumes: | |
| - logs:/var/log/ | |
| - dut_hosts:/etc/dut_hosts:rw | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.51 | |
| ##############################################################################downloader | |
| downloader: | |
| container_name: downloader | |
| image: ${SFP_REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab-for-partners}/downloader:${DOWNLOADER:-release} | |
| restart: unless-stopped | |
| volumes: | |
| - /var/run/docker.sock:/var/run/docker.sock:rw | |
| - images:/home/chromeos-test/images | |
| - satlab_keys:/creds/service_accounts | |
| command: | |
| [ | |
| '--credential-file', | |
| '/creds/service_accounts/pubsub-key-do-not-delete.json', | |
| '--address', | |
| ':8887', | |
| '--cache-server-url', | |
| 'http://192.168.100.3:8082', | |
| '--android-build', | |
| 'https://androidbuild-pa.googleapis.com/v4', | |
| '--auth-scopes', | |
| 'https://www.googleapis.com/auth/androidbuild.internal,https://www.googleapis.com/auth/devstorage.read_only' | |
| ] | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.2 | |
| dns: | |
| - 192.168.100.51 | |
| depends_on: | |
| - dns | |
| ##############################################################################ngix | |
| nginx: | |
| container_name: nginx | |
| image: ${SFP_REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab-for-partners}/nginx:${NGINX:-release} | |
| restart: unless-stopped | |
| volumes: | |
| - /var/run/docker.sock:/var/run/docker.sock:rw | |
| - nginx_logs:/var/log/nginx | |
| - cache:/var/cache/nginx | |
| - nginx_configs:/mnt/conf/nginx:ro | |
| ports: | |
| - "8082:8082" | |
| command: | |
| [ | |
| 'nginx', | |
| '-g', | |
| 'daemon off;', | |
| '-c', | |
| '/mnt/conf/nginx/nginx.conf' | |
| ] | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.3 | |
| dns: | |
| - 192.168.100.51 | |
| extra_hosts: | |
| - "cacheserver:192.168.100.1" | |
| depends_on: | |
| - conf_creator | |
| - dns | |
| - downloader | |
| ##############################################################################dut_key | |
| partner_testing_rsa: | |
| container_name: partner_testing_rsa | |
| image: us-docker.pkg.dev/chromeos-partner-moblab/satlab-for-partners/partner_testing_rsa:${PARTNER_TESTING_RSA:-release} | |
| labels: | |
| - "skip.while.pruning.docker.system=yes" | |
| volumes: | |
| - partner_testing_rsa:/creds/ssh_keys:rw | |
| ##############################################################################rpc_server | |
| satlab_rpcserver: | |
| container_name: satlab_rpcserver | |
| image: ${REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab}/satlab-rpcserver:${SATLAB_RPCSERVER:-release} | |
| hostname: satlab-rpcserver | |
| restart: unless-stopped | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.4 | |
| dns: | |
| - 192.168.100.51 | |
| ports: | |
| - "6003:6003" | |
| environment: | |
| - PUID=246 | |
| - PGID=246 | |
| - TZ=Etc/UTC | |
| - SUDO_ACCESS=true | |
| - USER_NAME=moblab | |
| - SERVOD_CONTAINER_LABEL=${SERVOD_CONTAINER_LABEL:-release} | |
| - DOCKER_MODS=linuxserver/mods:openssh-server-ssh-tunnel | |
| - GCS_IMAGE_BUCKET=${GCS_IMAGE_BUCKET:-} | |
| # gcs_partner_bucket is same as gcs_image_bucket for all partners | |
| # These buckets differ only for internal users | |
| - GCS_PARTNER_BUCKET=${GCS_IMAGE_BUCKET:-} | |
| - SERVICE_ACCOUNT_KEY_PATH=/home/satlab/keys/pubsub-key-do-not-delete.json | |
| - UFS_NAMESPACE=${UFS_NAMESPACE:-os} | |
| - UFS_ZONE=${UFS_ZONE:-} | |
| - SERIVCE_ACCOUNT=${SERIVCE_ACCOUNT:-} | |
| - CTP_BUILDER_BUCKET=${CTP_BUILDER_BUCKET:-} | |
| - DEPLOY_BUILDER_BUCKET=${DEPLOY_BUILDER_BUCKET:-} | |
| - SATLAB_RPCSERVER_LOGFILE=${SATLAB_RPCSERVER_LOGFILE:-/var/log/satlab/satlab_rpcserver.log} | |
| - BOTO_PATH=/home/satlab/keys/boto_config | |
| - BOT_PREFIX=${BOT_PREFIX:-} | |
| - TEST_RUNNER_SWARMING_POOL=${TEST_RUNNER_SWARMING_POOL:-} | |
| - CTP_SWARMING_POOL=${CTP_SWARMING_POOL:-} | |
| - CPCON_ACCOUNT_ID=${CPCON_ACCOUNT_ID:-} | |
| - DOCKER_CERT_PATH=${DOCKER_CERT_PATH:-} | |
| - DOCKER_HOST=${DOCKER_HOST:-} | |
| - DOCKER_TLS_VERIFY=${DOCKER_TLS_VERIFY:-} | |
| - ACCOUNT_ID=${ACCOUNT_ID:-} | |
| - ATS_ENABLED=${ATS_ENABLED:-false} | |
| volumes: | |
| - logs:/var/log/satlab | |
| - /var/run/docker.sock:/var/run/docker.sock:rw | |
| - /var/log/bootup:/var/log/bootup | |
| - satlab_keys:/home/satlab/keys | |
| - leases:/leases:ro | |
| - docker_tls:${DOCKER_COMPOSE_CERT_PATH}:ro | |
| extra_hosts: | |
| - "dockerhost:192.168.100.1" | |
| ##############################################################################envoy-proxy | |
| envoy-proxy: | |
| container_name: envoy-proxy | |
| image: ${REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab}/envoy-proxy:${ENVOY_PROXY:-release} | |
| user: moblab | |
| restart: unless-stopped | |
| environment: | |
| - ENVOY_UID=0 | |
| hostname: envoy-proxy | |
| volumes: | |
| - logs:/var/log/satlab | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.5 | |
| ports: | |
| - "80:6001" | |
| - "6011:6011" | |
| ###########################################################################logrotate | |
| logrotate: | |
| container_name: logrotate | |
| image: ${REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab}/logrotate:${LOGROTATE:-release} | |
| environment: | |
| # Rotate logs regardless of the extension. | |
| - LOGS_DIRECTORIES=/var/log/satlab | |
| # The file endings that we want to watch at (filtering). | |
| - LOG_FILE_ENDINGS=log | |
| # The number of rotations. | |
| # Further rotations will delete old logfiles. | |
| - LOGROTATE_COPIES=5 | |
| # Moves the rotated log files. | |
| # Default value is copytruncate | |
| # - LOGROTATE_MODE= | |
| # Rotate log files that are 20M or over. | |
| - LOGROTATE_SIZE=20M | |
| # Rotate log files if they are older than 5 days. | |
| - LOGROTATE_MAXAGE=5 | |
| # Cronjob scheduled once per day. | |
| - LOGROTATE_INTERVAL=daily | |
| # Naming of the rotated files | |
| - LOGROTATE_DATEFORMAT=-%Y%m%d | |
| # compress the rotated files | |
| - LOGROTATE_COMPRESSION=compress | |
| volumes: | |
| - logs:/var/log/satlab | |
| ##############################################################################satlab-ui | |
| satlab-ui: | |
| container_name: satlab-ui | |
| image: ${REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab}/satlab-ui:${SATLAB_UI:-release} | |
| hostname: satlab-ui | |
| restart: unless-stopped | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.6 | |
| volumes: | |
| - logs:/var/log/ui | |
| depends_on: | |
| - dns | |
| - envoy-proxy | |
| - satlab_rpcserver | |
| ###########################################################################opentelemetry-collector | |
| opentelemetry-collector: | |
| container_name: opentelemetry-collector | |
| image: ${REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab}/opentelemetry-collector:${OPENTELEMETRY_COLLECTOR:-release} | |
| environment: | |
| - GOOGLE_APPLICATION_CREDENTIALS=/data/keys/pubsub-key-do-not-delete.json | |
| - HOST_IDENTIFIER=${DRONE_HOSTNAME} | |
| - SATLAB_VERSION=${BUILD_VERSION} | |
| - OS_VERSION=${OS_VERSION} | |
| - TRACK=${TRACK} | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.7 | |
| dns: | |
| - 192.168.100.51 | |
| volumes: | |
| - /:/hostfs:ro | |
| - /var/run/docker.sock:/var/run/docker.sock:rw | |
| - satlab_keys:/data/keys | |
| ports: | |
| - "9000:9000" | |
| ###########################################################################bols | |
| bols: | |
| container_name: bols | |
| image: ${REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab}/satlab-bols:${BOLS:-release} | |
| restart: unless-stopped | |
| environment: | |
| - SERVOD_REGISTRY_URI=${SERVOD_REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/common-core} | |
| - SERVOD_CONTAINER_LABEL=${SERVOD_CONTAINER_LABEL:-release} | |
| - DOCKER_CERT_PATH=${DOCKER_CERT_PATH:-} | |
| - DOCKER_HOST=${DOCKER_HOST:-} | |
| - DOCKER_TLS_VERIFY=${DOCKER_TLS_VERIFY:-} | |
| entrypoint: /usr/bin/bols_satlab | |
| command: | |
| [ | |
| 'server', | |
| '-port', | |
| '9100' | |
| ] | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.8 | |
| dns: | |
| - 192.168.100.51 | |
| volumes: | |
| - logs:/tmp/bols | |
| - /var/run/docker.sock:/var/run/docker.sock:rw | |
| - satlab_keys:/home/satlab/keys | |
| - leases:/leases:ro | |
| - docker_tls:${DOCKER_COMPOSE_CERT_PATH}:ro | |
| ports: | |
| - "9100:9100" | |
| ###########################################################################dualconduit | |
| dualconduit: | |
| container_name: dualconduit | |
| image: ${SFP_REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab-for-partners}/dualconduit:${DUALCONDUIT:-release} | |
| restart: unless-stopped | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.11 | |
| dns: | |
| - 192.168.100.51 | |
| volumes: | |
| - satlab_keys:/creds/service_accounts:rw | |
| command: | |
| [ | |
| '--acceptor_target=wss://dcon-acceptor.testing.endpoints.${GCP_PROJECT}.cloud.goog', | |
| '--debug', | |
| '-sa_key_file=/creds/service_accounts/skylab-drone.json', | |
| '--forward_address=0.0.0.0', | |
| '--use_sa_token', | |
| '--keep_alive_tick_period=20s', | |
| '-L', '8000:mtt:8000', | |
| '-L', '8006:mtt:8006', | |
| '-L', '8008:mtt:8008', | |
| '-L', '7031:mtt:7031', | |
| '-L', '8081:mtt:8081' | |
| ] | |
| ###########################################################################ats | |
| ats: | |
| container_name: ats | |
| image: ${ATS_REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab-for-partners}/ats:${ATS:-release} | |
| hostname: ${DRONE_HOSTNAME} | |
| restart: unless-stopped | |
| privileged: true | |
| sysctls: | |
| - net.ipv6.conf.all.disable_ipv6=0 | |
| volumes: | |
| - /dev:/dev | |
| - satlab_keys:/creds/service_accounts:rw | |
| devices: | |
| - /dev/fuse:/dev/fuse | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.12 | |
| dns: | |
| - 192.168.100.51 | |
| environment: | |
| - CLOUD_FILE_TRANSFER_BUCKET=${CLOUD_FILE_TRANSFER_BUCKET} | |
| - GCP_PROJECT=${GCP_PROJECT} | |
| - UFS_NAMESPACE=${UFS_NAMESPACE:-os} | |
| depends_on: | |
| - dualconduit | |
| - dns | |
| - labservice | |
| - passport | |
| ###########################################################################labservice | |
| labservice: | |
| container_name: labservice | |
| image: ${REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab}/labservice:${LABSERVICE:-release} | |
| command: | |
| - -addr | |
| - 0.0.0.0:1485 | |
| - -service-account-json | |
| - /creds/service_accounts/skylab-drone.json | |
| - -preferred-caching-services | |
| - http://192.168.100.1:8082 | |
| - -ufs-service | |
| - ufs.api.cr.dev | |
| - -version-server-addr | |
| - chromeos-skylab-bot-fleet.appspot.com | |
| - -recovery-versions-dir | |
| - /creds/service_accounts/recovery_versions/ | |
| environment: | |
| GOOGLE_APPLICATION_CREDENTIALS: /creds/service_accounts/skylab-drone.json | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.13 | |
| ports: | |
| - "1485:1485" | |
| dns: | |
| - 192.168.100.51 | |
| volumes: | |
| - satlab_keys:/creds/service_accounts:rw | |
| - rpm_keys:/creds/rpm:rw | |
| depends_on: | |
| - dns | |
| ###########################################################################drone-proxy | |
| drone-proxy: | |
| container_name: drone-proxy | |
| image: ${REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab}/satlab-helper:${SATLAB_HELPER:-release} | |
| network_mode: "service:drone" | |
| restart: always | |
| command: "socat TCP4-LISTEN:1485,fork TCP4:labservice:1485" | |
| depends_on: | |
| - drone | |
| - labservice | |
| ###########################################################################passport | |
| passport: | |
| container_name: passport | |
| image: ${SFP_REGISTRY_URI:-us-docker.pkg.dev/chromeos-partner-moblab/satlab-for-partners}/passport:${PASSPORT:-release} | |
| restart: unless-stopped | |
| networks: | |
| satlab: | |
| ipv4_address: 192.168.100.14 | |
| ports: | |
| - "8300:8300" | |
| privileged: true | |
| dns: | |
| - 192.168.100.51 | |
| volumes: | |
| - /dev:/dev | |
| depends_on: | |
| - dns | |
| ##############################################################################volumes | |
| volumes: | |
| logs: {} | |
| leases: {} | |
| images: {} | |
| cache: {} | |
| dut_hosts: {} | |
| nginx_configs: {} | |
| servod_profile: {} | |
| rpm_keys: | |
| external: True | |
| satlab_keys: | |
| external: True | |
| ssp: {} | |
| containers: {} | |
| nginx_logs: {} | |
| partner_testing_rsa: {} | |
| docker_tls: | |
| external: True | |
| bridge_ssh: {} | |
| ##############################################################################networks | |
| networks: | |
| satlab: | |
| ipam: | |
| driver: default | |
| config: | |
| - subnet: "192.168.100.0/24" |