2017-03-21 75 views
0

我們使用Jenkins構建數據並將其推送到Google雲端存儲。gcloud命令行客戶端 - 並行處理多個gCloud項目

我們有一臺生成機器;和多個不同的Google項目(測試;生產)

如果在1個構建節點上由'jenkins'用戶完成並行構建,有什麼方法可以將參數傳遞到gcloud docker -- push,這樣單獨的憑證就可以驗證一次推送到Google項目的testing,另一個到production項目嗎?

回答

4

從雲SDK的角度來看,這裏有幾個選項。

第一個是使用不同的配置目錄。默認情況下,Cloud SDK使用~/.config/gcloud作爲其配置目錄;環境變量$CLOUDSDK_CONFIG覆蓋此。如果您使用不同的配置目錄,則實際上與進行兩次不同的安裝相同,並且您不會冒任何風險。競賽條件。第二個是使用named configurations。這可能是最簡單的用一個例子來說明:

$ gcloud config configurations create foo # creates and activates a new configuration 
$ gcloud auth login # you may want to use `activate-service-account` for non-interactive use 
$ gcloud config set project foo-project 
$ gcloud config configurations create bar 
$ gcloud auth login 
$ gcloud config set project bar-project 
$ CLOUDSDK_ACTIVE_CONFIG_NAME=foo gcloud version & 
$ CLOUDSDK_ACTIVE_CONFIG_NAME=bar gcloud version & 

如果你只是想改變配置屬性,可以通過環境變量$CLOUDSDK_<SECTION>_<PROPERTY>這樣做。例如,$CLOUDSDK_CORE_ACCOUNT$CLOUDSDK_CORE_PROJECT。對於一些常用標誌,您可以在每個gcloud命令上設置它們:例如,--project--account。請參閱gcloud help瞭解這些公共標誌的概述。

這就是說,與gcloud docker你可能會遇到任何這些情況下的問題,因爲docker共享一個配置文件。你最好的選擇可能是使用docker-credential-gcr和不同的$GOOGLE_APPLICATION_CREDENTIALS文件。