commit | 2bbec900f1cb31ff9a8312188d3ae82433d080dc | [log] [tgz] |
---|---|---|
author | Vadim Shtayura <vadimsh@chromium.org> | Tue Oct 08 01:19:30 2024 |
committer | LUCI CQ <infra-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Oct 08 01:19:30 2024 |
tree | 6aeea8f4970e31942c52f2f373b36967b5ee0ad1 | |
parent | efe7de00f4f652709094112168b47be362aaef94 [diff] |
[auth] Refactor GCE metadata emulation. Previously we were emulating a bunch of very specific HTTP calls that various tools are making. This required to occasionally touch this code to add another way some new tool queries metadata. Instead this now implements most of the GCE metadata protocol with all its quirks, but we populate only subset of metadata that is actually expected to be used. This better covers all the ways various tools interact with the metadata server. There's also a change to "instance/name" and "instance/zone". Before, they were exposed only when running on real GCE and values were taken from the real GCE metadata when starting the server. Now "instance/name" is always exposed (but set to the machine hostname when on non-GCE), and "instance/zone" is queryable only on real GCE. "Proxying" to real GCE metadata happens lazily, removing the need for AssumeNonGCE hack. This was needed to make sure "instance/" listing works, since "gcp-metadata" npm packages uses its presence to detect GCE environment. BUG=b/370833648 R=iannucci@chromium.org Change-Id: Ia5286535bf980aa6391229038330c39a71b61a04 Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5906463 Reviewed-by: Robbie Iannucci <iannucci@chromium.org> Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:
fetch infra cd infra/go eval `./env.py` cd src/go.chromium.org/luci
It is now possible to directly install tools with go install:
go install go.chromium.org/luci/auth/client/cmd/...@latest go install go.chromium.org/luci/buildbucket/cmd/...@latest go install go.chromium.org/luci/cipd/client/cmd/...@latest go install go.chromium.org/luci/client/cmd/...@latest go install go.chromium.org/luci/cv/cmd/...@latest go install go.chromium.org/luci/gce/cmd/...@latest go install go.chromium.org/luci/grpc/cmd/...@latest go install go.chromium.org/luci/logdog/client/cmd/...@latest go install go.chromium.org/luci/luci_notify/cmd/...@latest go install go.chromium.org/luci/lucicfg/cmd/...@latest go install go.chromium.org/luci/luciexe/legacy/cmd/...@latest go install go.chromium.org/luci/mailer/cmd/...@latest go install go.chromium.org/luci/mmutex/cmd/...@latest go install go.chromium.org/luci/resultdb/cmd/...@latest go install go.chromium.org/luci/server/cmd/...@latest go install go.chromium.org/luci/swarming/cmd/...@latest go install go.chromium.org/luci/tokenserver/cmd/...@latest go install go.chromium.org/luci/tools/cmd/...@latest
Contributing uses the same flow as Chromium contributions.