أهلا،
أواجه مشكلة عندما أحاول نشر خريطة التكوين باستخدام الدفة. يتم شرح المشكلة على النحو التالي.
لنفترض أن لدي مخطط دفة يحتوي على بنية المجلد على النحو التالي.
├── الرسوم البيانية
├── مخطط. yaml
├── أسيوط
│ └── tee.xml
├── القوالب
│ └── ConfigMap.yaml
└── القيم
يظهر tee.xml أدناه.
<note>
<to>Tove</to>
<from>${name}</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
يتم عرض ConfigMap.yaml أدناه.
apiVersion: v1
kind: ConfigMap
metadata:
name: mytest-var
xml:
{{ .Values.from }}
data:
{{- $file := .Files }}
{{- $var := .Values.from }}
{{- range $path, $byte := .Files.Glob "conf/*" }}
{{- $list := $path | splitList "/"}}
{{- $length := len $list }}
{{- $last := add $length -1 }}
{{ index $list $last }}: |-
{{- range $file.Lines $path }}
{{ . }}
{{- end }}
{{- end }}
جزء من القيم. yaml موضح أدناه.
from: Shashi
عندما أقوم بتشغيل أمر تثبيت helm ، أريد استبدال القيمة ${name}
الموجودة في ملف tee.xml ( <from>${name}</from>
) من قيمة تم تعيينها في القيم. yaml. هل هذا ممكن باستخدام الدفة وإذا كان ذلك ممكنًا هل يمكنك مساعدتي في إجراء التغييرات ذات الصلة؟
أهلا،
تمكنت من إيجاد حل للمشكلة أعلاه باستخدام "استبدال". لقد أرفقت ملفات القيادة ذات الصلة أدناه.
ConfigMap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mytest-var
xml:
{{ .Values.from }}
data:
{{- $file := .Files }}
{{- $var := .Values.from }}
{{- range $path, $byte := .Files.Glob "conf/*" }}
{{- $list := $path | splitList "/"}}
{{- $length := len $list }}
{{- $last := add $length -1 }}
{{ index $list $last }}: |-
{{- range $line := $file.Lines $path }}
{{ $line | replace "John" $var }}
{{- end }}
{{- end }}
tee.xml
<note>
<to>Tove</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
جزء من القيم
from: Cigra
من خلال تشغيل تثبيت helm ، يمكننا إنشاء خريطة التكوين التي تم استبدال المفتاح "
من فضلك قل لي هذه هي الطريقة الصحيحة؟
إذا كان يعمل ، فإنه يعمل. يبدو استخدام replace
لاستبدال كل مثيل لسلسلة فرعية ضمن سلسلة معينة أمرًا منطقيًا بالنسبة لي.
أوافق - يبدو استخدام replace
خيارًا جيدًا في هذه الحالة.
KavinduZoysa نظرًا لأن هذا الحل يعمل ، اسمحوا لي أن أمضي قدمًا وأغلق هذه المشكلة. لا تتردد في إعادة الفتح إذا لم يعمل هذا كما هو متوقع أو إذا كان لديك أي أسئلة أخرى ذات صلة. شكرا!
التعليق الأكثر فائدة
أهلا،
تمكنت من إيجاد حل للمشكلة أعلاه باستخدام "استبدال". لقد أرفقت ملفات القيادة ذات الصلة أدناه.
ConfigMap.yaml
tee.xml
جزء من القيم
from: Cigra
من خلال تشغيل تثبيت helm ، يمكننا إنشاء خريطة التكوين التي تم استبدال المفتاح "يوحنا "من كلمة" Cigra "
من فضلك قل لي هذه هي الطريقة الصحيحة؟