commit | 655624dc04d0671d2fff4da0c6069c5ae44b49a3 | [log] [tgz] |
---|---|---|
author | Jason Stanko <jstanko@google.com> | Thu Oct 24 20:54:58 2024 |
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Nov 15 22:48:31 2024 |
tree | 4a73465e323e22ae234188a21d5a13cee4a2fd4e | |
parent | bc9668213c098411c0f62fb414897bb6fdeb6dc4 [diff] |
passport: Add initial Docker support This adds a script to build the passport docker image locally and push it to a remote host. Verified that the script can be used to push a docker container from local source to a raspberry pi and satlab and that the service can be interacted with remotely. BUG=b:375020169 TEST=./scripts/docker_on_remote.sh <SATLAB> TEST=./scripts/docker_on_remote.sh <RASPBERRY PI> TEST=./go/bin -port <Satlab forwarded address> TEST=./go/bin -port <RPi forwarded address> Change-Id: Ib42ab36980648a1d9044e3d31c9d8c4f9b599480 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/passport/+/5963171 Tested-by: Jason Stanko <jstanko@google.com> Reviewed-by: Brett Brotherton <bbrotherton@google.com> Commit-Queue: Jason Stanko <jstanko@google.com>
A service for controlling components in ChromeOS peripheral testbeds.
See go/cros-pass-port
The executable can be built on your local machine by running ./scripts/build.sh
The service can be started in server
mode by running:
./go/bin/passport
The service can be built on your local machine by running ./scripts/build_docker.sh
If you want to use TOT rather than your local checkout you should add the REMOTE_SOURCE
variable to your build command e.g.
REMOTE_SOURCE=1 ./scripts/build_docker.sh
The container can be started on your local machine by running
docker run -p 8200:8300 passport:amd64
The service can be started on a remote machine by running ./scripts/docker_on_remote.sh <HOSTNAME>
For a remote satlab device this would look like
./scripts/docker_on_remote.sh moblab@XXX.XXX.XXX.XXX
The script will automatically start the service at port 8300
on the remote machine.
To connect to it locally, you will likely need to forward this port to your local machine.
The docker_on_remote.sh
will print out an ssh tunnel command that can be used to connect to the service, the output will look like:
$ ./scripts/docker_on_remote.sh moblab@XXX.XXX.XXX.XXX ... ... ================================================================== Successfully updated passport on host moblab@YYY.YYY.YYY.YYY SSH COMMAND: ssh -L 8300:1XXX.XXX.XXX.XXX:8300 moblab@YYY.YYY.YYY.YYY ==================================================================
Once a service is running, it can be verified in a separate terminal by running:
./go/bin/passport -mode DETECT
This will probe for all components connected to the machine and log them to STDOUT. This can also be used to check an already running service on a remote machine by forwarding the remote port to your local machine. The default port is 8300 but a different one can be provided via the -port
flag e.g.
./go/bin/passport -port 9999 -mode DETECT
It's also possible to quickly test the executable locally without starting two separate processes by running:
./go/bin/passport -mode TEST
This will perform the same actions as DETECT
except both the client and server will be started in the same process without needing a separate terminal window.