![](/img/trans.png)
[英]Kubernetes create secret and change default service account upon namespace creation
[英]Create namespace and secret, do patch only if not existing
在我的 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 不存在時
Helm 提供了--create-namespace
開關,如果它不存在,它將創建發布的命名空間。
秘密可以添加到您的 helm 圖表中,您可以將變量( CI_REGISTRY
、 CI_DEPLOY_USER
等)作為 helm 圖表值作為--set
值或通過values.yaml
文件並使用--values
您可以作為安裝后和/或升級后作業進行的服務帳戶修補 ( https://helm.sh/docs/topics/charts_hooks/ )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.