Chrome OS Skylab Admin is a Google App Engine app (in Go) that supports the following:
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:
dut_state (needs_repair, repair_failed, needs_manual_repair).push-repair-jobs-for-labstations) are scheduled hourly for idle labstations whose dut_state is ready, serving, 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.For initial setup, follow the Chrome Infra Go procedures
For environment setup, follow the Bootstrap procedures
Crosskylabadmin (CSA) deployments and rollbacks are managed primarily through automated LUCI Promoters (recipes/fleet/csa_promoter.py).
csa-dev-promoter)bb add (bb add infra-internal/fleet-services/csa-dev-promoter).default service) and configurations (cron.yaml, queue.yaml).skylab-staging-bot-fleet.appspot.com.csa-prod-promoter)bb add (bb add infra-internal/fleet-services/csa-prod-promoter).csa-prod-promoter automatically queries the active App Engine version currently serving on skylab-staging-bot-fleet.appspot.com, verifies that it is valid, and checks out that exact Git commit before deploying to production. Staging (skylab-staging-bot-fleet) must always be pushed and verified first before triggering the production promoter.default service) and configurations (cron.yaml, queue.yaml).chromeos-skylab-bot-fleet.appspot.com.If an issue occurs after a deployment, rollback builders are available to immediately restore service without recompiling:
bb add infra-internal/fleet-services/csa-prod-promoter-rollback)chromeos-skylab-bot-fleet).target_version property (-p target_version="<version>") if rolling back to a specific earlier release.bb add infra-internal/fleet-services/csa-dev-promoter-rollback)skylab-staging-bot-fleet) traffic back to the prior serving version.gae.py)For emergency or local manual workflows, App Engine commands can be run directly from go/src/infra/appengine/crosskylabadmin:
make up-staging && make switch-stagingmake up-prod && make switch-prodgae.py switch -A chromeos-skylab-bot-fleet --app-dir ./internal/app/appengine <previous_version>