我創建了一個帶有子圖的舵圖。
全域舵圖包含values.yaml和values-int.yaml檔案。以及所有子圖表。
這是結構:
- Global-helm-chart:
- values.yaml
- values-int.yaml
- sub-charts:
- chart-1:
- values.yaml
- value-int.yaml
- templates:
- configmap.yaml
- chart-2:
- values.yaml
- value-int.yaml
- templates:
- configmap.yaml
這是configmap.yaml下chart-1圖(圖 2 相同):
{{- $root := .Values -}}
{{ if eq .Values.global.env "int" }}
apiVersion: v1
kind: ConfigMap
metadata:
name: "{{ .Chart.Name }}-configuration"
data:
json: {{ $root.tickets | toJson | quote }}
{{ end }}
這是values-int.yaml下chart-1:
tickets:
dynamicEvents:
topics:
- topic_name: "ai-recommendations-pending-for-review"
events:
- name: "PendingForReview"
parameters:
subject: "$.insightTypeId"
group_uid: "customer_care"
helm template .from the global chart 將列印出兩個 configMaps,它們的值取自values.yaml和values-int.yml的全域圖表,而不是預期的來自chart-1和chart-2。
我希望 global-helm-chart 中的 helm 模板顯示json: 具有values-int.yamlunder值的in configMap chart-1。
提前致謝..
uj5u.com熱心網友回復:
Helm 本身并沒有您描述的每個環境值檔案的概念。如果你跑
helm template . -f values-int.yaml
讀取./values-int.yaml當前目錄,但不會在任何其他位置查找該檔案;特別是它不會嘗試在子圖表中查找同名值檔案。
相反,你需要將所有的設定折疊在一起成一個單一的values-int.yaml,無論你正在運行從部署(它并不需要在圖表目錄中的檔案本身)。該單個檔案包含具有圖表名稱的頂級鍵下的所有子圖表的設定。
因此,檔案系統布局為:
global-helm-chart/
-- Chart.yaml
-- values.yaml
-- values-int.yaml
|
\-- charts/
-- chart1/
| -- Chart.yaml
| -- values.yaml
| \-- templates/
| \-- configmap.yaml
|
\-- chart2/
-- Chart.yaml
-- values.yaml
\-- templates/
\-- configmap.yaml
頂層values-int.yaml將包含:
# Helm values for the integration environment. These override
# settings in values.yaml in this chart and its subcharts.
global:
env: int
chart1:
tickets:
dynamicEvents: { ... }
chart2: { ... }
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/359012.html
上一篇:與kubectl一起使用時,mobaxterm無法讀取kube配置設定?
下一篇:如何在掌舵圖中創建模板?
