containers: Add utility to ensure gcloud helper is configured.
We need to use gcloud credentials to push to GCS container
registries. These aren't necessarily configured by default on a
given host, so we need to ensure that the configuration is correct
before we push images.
BUG=b:209543161
TEST=manual build_api call.
Change-Id: I6fc1b1ae8c01452630e0b6e768519034283e506b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/dev-util/+/3321290
Tested-by: Sean McAllister <smcallis@google.com>
Auto-Submit: Sean McAllister <smcallis@google.com>
Reviewed-by: Jared Loucks <jaredloucks@google.com>
Reviewed-by: Derek Beckett <dbeckett@chromium.org>
Commit-Queue: Sean McAllister <smcallis@google.com>
diff --git a/test/docker/util.sh b/test/docker/util.sh
index 98f58ed..ddb01a1 100644
--- a/test/docker/util.sh
+++ b/test/docker/util.sh
@@ -112,6 +112,17 @@
readonly server_name docker_file chroot_arg tags
}
+ensure_gcloud_helpers() {
+ # @FUNCTION: ensure_gcloud_helpers
+ # @USAGE: ensure_gcloud_helpers
+ # @DESCRIPTION:
+ # Setup gcloud credential helpers for Google Cloud container registries.
+
+ # First call sets up default GCR registries, second call sets up
+ # Artifact Registry registries.
+ sudo gcloud --quiet --verbosity=error auth configure-docker
+ sudo gcloud --quiet --verbosity=error auth configure-docker us-docker.pkg.dev
+}
build_image() {
# @FUNCTION: build_image
@@ -139,6 +150,7 @@
sudo docker build "${args[@]}"
# Push image to register
+ ensure_gcloud_helpers
sudo docker login -u oauth2accesstoken -p "$(gcloud auth print-access-token)" "https://${registry_name}"
sudo docker push --all-tags "${image_path}"