自动化gcloud组件更新

时间:2015-08-04 13:25:38

标签: gcloud

如何在shell脚本中以编程方式更新gcloud组件?

调用gcloud components update需要用户输入,例如:

$ gcloud components update

The following components will be installed:
--------------------------------------------
| kubectl (Linux, x86_64) | 1.0.1 | 4.5 MB |
--------------------------------------------

For the latest release notes, please visit:
  https://dl.google.com/dl/cloudsdk/release/RELEASE_NOTES
Do you want to continue (Y/n)? 

我无法找到gcloud强制更新的论据。

2 个答案:

答案 0 :(得分:17)

您正在寻找--quiet旗帜。

来自gcloud --help

 --quiet, -q
    Disable all interactive prompts when running gcloud commands. If input
    is required, defaults will be used, or an error will be raised.

这通常是您想要用于非交互式上下文的标志。

您也可以将CLOUDSDK_CORE_DISABLE_PROMPTS环境变量设置为非空值:

export CLOUDSDK_CORE_DISABLE_PROMPTS=1
gcloud components update # This works for all gcloud commands

答案 1 :(得分:0)

如果在持续集成(CI)服务器上运行gcloud命令时遇到此问题,则可以尝试使用已包含所需组件的Docker映像来运行。因此,您可以避免更新gcloud组件。

例如,如果您尝试运行gcloud beta firebase test android run,则可以使用image: google/cloud-sdk:latest,因为在https://github.com/GoogleCloudPlatform/cloud-sdk-docker处,它显示:latest包含gcloud Beta命令。

我在Gitlab托管的CI(.gitlab-ci.yml)上进行了测试,并且可以正常工作。