helm template sample ./sample-chart --set-file configMaps="{app1.yaml,app2.yaml}"

क्या वह आदेश है जिसका उपयोग मैं चार्ट में मान के रूप में फ़ाइल सेट करने के लिए कर रहा हूं। और चार्ट में मैं इसका उपयोग कर रहा हूं, फाइलों को कॉन्फिग मैप के रूप में सेट करता हूं।

Configmap.yaml:

{{ range $configMap := .Values.configMaps }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ <<file-name> }}-cm
data: 
{{ $configMap | indent 2}}
{{ end }}

मैं कॉन्फ़िगरेशन मैप नाम सेट करना चाहता हूं, उन फ़ाइलों का नाम जिनकी सामग्री डेटा के रूप में उपयोग में है। यानी ऐप 1, ऐप 2 इस मामले में। क्या ऐसा करने का कोई तरीका है?

0
Sarabesh n.r 26 फरवरी 2020, 10:27

2 जवाब

टेम्प्लेट के तत्काल होने पर आप हेल्म को फ़ाइल को स्वयं पढ़ने के लिए कह सकते हैं। फ़ाइलों की सामग्री में पास करने के बजाय, उनके नाम सीधे पास करें।

हेल्म दस्तावेज़ से मूल उदाहरण को अपनाते हुए, आप एक ConfigMap लिख सकते हैं

{{- $files := .Files }}
{{- range .Values.configMaps }}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ . }}-cm
data:
  {{ . }}: |-
    {{ $files.Get . }}
{{- end }}

(वास्तविक उदाहरण सभी फाइलों को एक ही ConfigMap में रखता है और इसे प्रबंधित करना थोड़ा आसान हो सकता है।)

जब आप इसे चलाते हैं, तो आप कमांड लाइन (या एक सहायक मान फ़ाइल) पर फाइलों के नाम देंगे, न कि उनकी सामग्री को।

helm template sample ./sample-chart --set configMaps="{app1.yaml,app2.yaml}"
1
David Maze 26 फरवरी 2020, 15:01
1
.फ़ाइलों का उपयोग केवल चार्ट में फ़ाइलें प्राप्त करने के लिए किया जा सकता है। मैं चार्ट के बाहर की फाइलों तक पहुंच बनाना चाहता हूं, और इसलिए मैं --सेट-फाइल का उपयोग करने की कोशिश कर रहा हूं, जो बाहरी फ़ाइल को हेल्म चार्ट में मल्टीलाइन स्ट्रिंग कुंजी मान में परिवर्तित कर सकता है।
 – 
Sarabesh n.r
26 फरवरी 2020, 17:14

इस मुद्दे पर बस एक अपडेट, मैंने --सेट-फाइल तर्क में कुंजी के प्रारूप को बदल दिया है।

helm template sample ./sample-chart --set-file configMapFiles.app1-yaml.data="app1.yaml" --set-file configMapFiles.app2-yaml.data="app2.yaml"

और मैंने configMap.yaml के लिए टेम्पलेट को बदल दिया है:

Configmap.yaml :

{{ range $configMapName$configMap := .Values.configMapFiles }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{$configMapName}}-cm
data: 
{{$configMap | indent 2}}: |-
{{ $configMap.data | indent 4}}
---
{{ end }}

इसने मुझे configMap के मेटाडेटा में फ़ाइल नाम सेट करने की अनुमति दी।

0
Sarabesh n.r 4 मार्च 2020, 11:38