2017-06-06 33 views
1

我用我的gitlab-ci.yml腳本以下helm(2.4.2)命令:有沒有像'helm exec`?

- helm upgrade --install myapp-db --wait --set postgresUser=postgres,postgresPassword=postgres,postgresDatabase=myapp stable/postgresql 
- helm upgrade --install myapp-web ./myapp-chart --wait --set env.DATABASE_URL="${DATABASE_URL}" 

這是一個部署到我的分期/審查環境的一部分。完成上述命令後,我想對my-app pod執行命令以創建/遷移數據庫。目前這是通過使用initContainer(在引用的yaml文件中定義)來實現的。但我更願意將邏輯作爲CI腳本的一部分 - 所以我不必爲生產而設置單獨的部署文件。

有沒有辦法做到這一點helm?或者是我唯一的選擇使用kubectl exec?如果我使用kubectl exec,是否有一種簡單的方法可以使用helm來獲取吊艙的名稱?

回答

0

這GitHub的問題地址如何使用kubectl找出一個吊艙的基於標籤上的名稱:

https://github.com/kubernetes/kubernetes/issues/8876

我實現了以下內容:

- export POD_NAME=`kubectl get pod -l "app=myapp-web-chart" -o jsonpath='{.items[0].metadata.name}'` 
- kubectl exec $POD_NAME -- mix ecto.migrate 

儘管如此,會更好,如果有辦法做到這一點helm