在我的 CI 中,我正在運行一個helm upgrade命令來發布一個應用程式。但如果它是一個不存在的應用程式,我必須創建命名空間、一個秘密并修補服務帳戶。所以我想出了這個:
kubectl create namespace ${namespace} --dry-run=client -o yaml | kubectl apply -f -
kubectl create secret docker-registry gitlab-registry --namespace ${namespace} --docker-server="\${CI_REGISTRY}" --docker-username="\${CI_DEPLOY_USER}" --docker-password="\${CI_DEPLOY_PASSWORD}" --docker-email="\${GITLAB_USER_EMAIL}" -o yaml --dry-run=client | kubectl apply -f -
kubectl patch serviceaccount default -p '{"imagePullSecrets":[{"name":"gitlab-registry"}]}' --namespace ${namespace}
這是可行的,但我認為這不是完美的方法,因為這三個步驟只能執行一次。: 僅當 app/namespace/secret 不存在時
uj5u.com熱心網友回復:
Helm 提供了一個--create-namespace開關,如果它不存在,它將創建發布的命名空間。
秘密可以添加到您的掌舵圖中,您可以將變數(CI_REGISTRY,CI_DEPLOY_USER等)作為掌舵圖值作為--set值或通過values.yaml檔案傳遞并使用--values
您可以作為安裝后和/或升級后作業進行的服務帳戶修補 ( https://helm.sh/docs/topics/charts_hooks/ )
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/419575.html
標籤:
