[英]Helm chart deployment ordering
我創建了一個包含 2 個 podPresets 和 2 個部署的新圖表,當我去運行 helm install 時,首先創建了部署(pod)對象,然后是 podPresets,因此我從 podPreset 中的值不會應用於 pods,但是當我首先手動創建 podPreset 時然后部署正確應用預設,有沒有辦法可以在掌舵中指定應該首先創建哪個對象。
既然您正在使用 Helm charts 並完全控制這部分,為什么不在您的 helm charts 中創建可以使用外部值激活的可選部分?
這將是更“Helm native”的方式:
{{- if eq .Values.prodSecret "enabled"}}
- name: prod_db_password
valueFrom:
secretKeyRef:
name: prod_db_password
key: password
{{- end}}
然后你只需要在執行你的 Helm 圖表時添加--set prodSecret=enabled 。
將此作為社區 Wiki 發布以獲得更好的可見性,因為在@Rastko 的另一個答案下方的評論中提供了答案。
PodPresents
Pod Preset 是一種 API 資源,用於在創建時將額外的運行時需求注入到 Pod 中。 使用 Pod Preset 允許 Pod 模板作者不必明確提供每個 Pod 的所有信息。 這樣,使用特定服務的 pod 模板的作者不需要知道有關該服務的所有詳細信息。
有關更多信息,請查看 官方文檔。
在 Helm 中部署對象的順序
部署順序在Helm
硬編碼。 列表可以在這里找到。
此外,如果資源不在列表中,它將作為最后一個執行。
從評論中回答問題*
回答您的問題 - 要實現與默認順序不同的順序,您可以創建兩個掌舵圖表,其中一個帶有部署,然后使用
preinstall hook
執行,確保預設存在。
預安裝掛鈎注釋允許在呈現模板之后但在創建任何資源之前執行。
Github線程上提到了此解決方法。 服務示例:
apiVersion: v1
kind: Service
metadata:
name: foo
annotations:
"helm.sh/hook": "pre-install"
作為附加信息,可以為掛鈎定義權重,這將有助於構建確定性的執行順序。
annotations: "helm.sh/hook-weight": "5"
有關此注釋的更多詳細信息,請查看此Stackoverflow 問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.