This is the configuration for the proj-servo/docker-worker-kvm
worker type.
It is similar to aws-provisioner/docker-worker
,
except that it runs on a server from Packet.net.
This server is “real” non-virtualized hardware,
so that Intel VT-x instructions are available and we can run KVM.
KVM is required for the Android emulator’s CPU acceleration,
which in turn is required to run OpenGL ES 3 (not just 2) in the guest system.
- Install Terraform
- Install taskcluster-cli
- Run
eval `taskcluster signin`
(once per open terminal/shell) - Run
./terraform_with_vars.py init
(once per checkout of the Servo repository)
- Run
./list_devices.py
- Run
./terraform_with_vars.py plan
- If the plan looks good, run
./terraform_with_vars.py apply
- Watch the new server being installed. Terraform should finish in 15~20 minutes.
terraform_with_vars.py
uses Taskcluster’s
secrets service.
These secrets include an authentication token
for Packet.net’s API.
You’ll need to authenticate with a Taskcluster client ID
that has scope secrets:get:project/servo/*
.
This should be the case if you’re a Servo project administrator (the project-admin:servo
role).
Workers are configured to authenticate with client ID
project/servo/worker/docker-worker-kvm/1
.
This client has the scopes required to run docker-worker
as well as for tasks that we run on this worker type.