簡體   English   中英

創建命名空間和機密,僅在不存在時才打補丁

[英]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_REGISTRYCI_DEPLOY_USER等)作為 helm 圖表值作為--set值或通過values.yaml文件並使用--values

您可以作為安裝后和/或升級后作業進行的服務帳戶修補 ( https://helm.sh/docs/topics/charts_hooks/ )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM