การส่งออก Named Templates ที่นำกลับมาใช้ใหม่ได้
การเผยแพร่ส่วนย่อยที่แผนภูมิอื่นสามารถรวมได้
การส่งออก Named Templates ที่นำกลับมาใช้ใหม่ได้ เป็นบทเรียน Helm Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Helm Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Helm Academy มีบทเรียนทั้งหมด 4 บทเรียน
เทมเพลตที่ตั้งชื่อคือเนื้อหาหลัก
ชาร์ตไลบรารีจัดส่งคุณค่าหลักในรูปแบบ เทมเพลตที่ตั้งชื่อ คุณเขียนเทมเพลตเหล่านี้ด้วย define เช่นเดียวกับที่เขียนในไฟล์ _helpers.tpl ใด ๆ
{{- define "common.fullname" -}}
{{ .Release.Name }}-{{ .Chart.Name }}
{{- end -}}กำหนดเนมสเปซให้ชื่อเทมเพลต
ชื่อเทมเพลตจะอยู่ในขอบเขตร่วมกันทั้งชาร์ตและดีเพนเดนซีของชาร์ต คุณจึงควรเติมชื่อไลบรารีไว้ข้างหน้า เช่น common.labels เพื่อหลีกเลี่ยงการชนกัน
{{- define "common.labels" -}}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}วางไว้ใน templates
เทมเพลตของไลบรารีจะอยู่ในไดเรกทอรี templates ของชาร์ต โดยอยู่ในไฟล์ที่ขึ้นต้นด้วยขีดล่าง เพื่อไม่ให้ Helm เรนเดอร์ไฟล์เหล่านั้นเป็นแม니เฟสต์
common/
templates/
_labels.tpl
_names.tplDefine ไม่สร้างผลลัพธ์ด้วยตัวเอง
บล็อก define ที่อยู่เพียงลำพังจะไม่สร้างสิ่งใดเมื่อชาร์ตเรนเดอร์ เทมเพลตจะส่งออกข้อความก็ต่อเมื่อชาร์ตอื่น include ในภายหลัง
ส่งออกทรัพยากรเต็มรูปแบบ
คุณสามารถกำหนดออบเจ็กต์ Kubernetes ทั้งรายการเป็นเทมเพลตที่ตั้งชื่อรายการเดียวได้ จากนั้นผู้ใช้จึงเรนเดอร์ Service ที่สมบูรณ์ด้วยการเรียก include เพียงครั้งเดียว
{{- define "common.service" -}}
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}
{{- end -}}รับบริบทจากผู้เรียก
ภายในส่วนย่อย จุดจะเป็นอะไรก็ตามที่ผู้เรียกส่งเข้ามา การอ่าน .Values และ .Release ทำให้เทมเพลตของคุณปรับตามชาร์ตผู้ใช้แต่ละรายการได้
{{- define "common.image" -}}
{{ .Values.image.repository }}:{{ .Values.image.tag }}
{{- end -}}ระบุขอบเขตที่คาดหวัง
เนื่องจากส่วนย่อยเชื่อถืออินพุตของตนเอง จึงควรใส่คอมเมนต์ระบุ บริบท ที่ส่วนย่อยต้องการ หากผู้ใช้ส่งจุดที่ไม่ถูกต้อง จะได้รับข้อผิดพลาดที่เข้าใจได้ยาก
{{/* common.fullname expects the root context (.) */}}ให้แต่ละเทมเพลตรับผิดชอบเรื่องเดียว
แบ่งตรรกะออกเป็นส่วนย่อยขนาดเล็กที่มุ่งเน้นเฉพาะเรื่อง เช่น ส่วนหนึ่งสำหรับ ชื่อ ส่วนหนึ่งสำหรับป้ายกำกับ และอีกส่วนสำหรับตัวเลือก ชิ้นส่วนเล็ก ๆ เหล่านี้นำมาประกอบกันได้อย่างสะอาดในชาร์ตหลายรายการ
เครื่องหมายเว้นวรรคมีความสำคัญ
ครอบ define และ end ด้วย เครื่องหมายขีด เช่น {{- และ -}} เพื่อไม่ให้ผลลัพธ์ของไลบรารีแทรกบรรทัดว่างเกินมาใน YAML ของผู้ใช้
{{- define "common.name" -}}
{{ .Chart.Name }}
{{- end -}}จะส่งออกได้ก็ต่อเมื่อถูกเรียกใช้
การกำหนดเทมเพลตทำให้เทมเพลต พร้อมใช้งาน แต่ยังไม่ทำงาน เทมเพลตจะสร้างผลลัพธ์ก็ต่อเมื่อชาร์ตแอปพลิเคชันเรียกใช้ include หรือ template กับเทมเพลตนั้น
ชุดตัวช่วยที่นำกลับมาใช้ใหม่ได้ขนาดเล็ก
ส่วนย่อยจำนวนหนึ่ง เช่น common.fullname และ common.labels จะกลายเป็นคำศัพท์ร่วมที่ชาร์ตของทุกทีมใช้ต่อยอดได้
{{- define "common.fullname" -}}
{{ printf "%s-%s" .Release.Name .Chart.Name }}
{{- end -}}ตรวจสอบอย่างรวดเร็ว
เหตุใดไลบรารีจึงควรเติมชื่อไลบรารีไว้หน้าชื่อเทมเพลต เช่น common.labels แทนที่จะใช้ labels
สรุป: การส่งออกเทมเพลต
คุณเผยแพร่ตรรกะที่นำกลับมาใช้ใหม่ได้ด้วย define ในไฟล์ที่ขึ้นต้นด้วยขีดล่าง กำหนดเนมสเปซให้ชื่อ และใช้จุดของผู้เรียกเป็นบริบท 🧩
คำถามที่พบบ่อย
บทเรียน “การส่งออก Named Templates ที่นำกลับมาใช้ใหม่ได้” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การส่งออก Named Templates ที่นำกลับมาใช้ใหม่ได้” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Helm Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Helm Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การส่งออก Named Templates ที่นำกลับมาใช้ใหม่ได้”
การเผยแพร่ส่วนย่อยที่แผนภูมิอื่นสามารถรวมได้ คุณปฏิบัติ Helm Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Helm Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Helm Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การส่งออก Named Templates ที่นำกลับมาใช้ใหม่ได้” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Helm Academy นี้ได้ไหม
ได้ บทเรียน Helm Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การประกาศประเภท Library Chart
- การส่งออก Named Templates ที่นำกลับมาใช้ใหม่ได้
- การใช้ Library เป็น Dependency
- การแทนที่ค่าเริ่มต้นของ Library ภายในเครื่อง