tree: 7fc49471b5fe3cf2e8ec34310d85c4c9b06d8c59
  1. api/
  2. cloudrun/
  3. internal/
  4. site/
  5. .gitattributes
  6. adminclient
  7. crosadm
  8. Makefile
  9. OWNERS
  10. README.md
go/src/infra/appengine/crosskylabadmin/README.md

ChromeOS Skylab Admin

Overview

Chrome OS Skylab Admin is a Google App Engine app (in Go) that supports the following:

Keep Devices Healthy

This service is trying to keep devices in a healthy, schedulable state at all times. Device health can degrade for many reasons (bad test, provisioning failure, etc...) and this service supports recovering those devices with the following:

  • Scheduling automated repair jobs for any devices it detects as unhealthy:
    • DUTs: Automated admin tasks (repair, reset) are scheduled based on the device's specific dut_state (needs_repair, repair_failed, needs_manual_repair).
    • Labstations: Periodic repair checks and reboot tasks (push-repair-jobs-for-labstations) are scheduled hourly for idle labstations whose dut_state is ready, needs_repair, repair_failed, or needs_manual_repair. Labstations in reserved state (or other ineligible states such as disabled and decommissioned) are intentionally excluded from automated periodic repair checks to prevent interrupting manual debugging or reserved usage.

Other functionality

  • Read recovery version from configs
  • Provides API to read recovery version from Datastore

Code/Development Setup

For initial setup, follow the Chrome Infra Go procedures

For environment setup, follow the Bootstrap procedures

Application Environments

Test

  • Unit testing - ‘cd go/src/infra/appengine/crosskylabadmin && make test’
  • Functional/integration testing - No automated testing

Release Procedures

  • cd go/src/infra/appengine/crosskylabadmin
  • make up-staging && switch-staging (Staging)
  • make up-prod && switch-prod (Production)