กำหนด Partial ด้วย define
ประกาศบล็อกเทมเพลตแบบมีชื่อที่นำกลับมาใช้ซ้ำได้
กำหนด Partial ด้วย define เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
ทำไมต้องทำซ้ำ
ป้ายกำกับและชื่อชุดเดียวกันถูกคัดลอกลงในแมนนิเฟสต์ทุกตัวของแผนภูมิ แม่แบบที่ตั้งชื่อช่วยให้คุณเขียนบล็อกนั้นครั้งเดียวแล้วนำกลับมาใช้ได้ทุกที่
รู้จักแอ็กชันประกาศ
คุณประกาศบล็อกที่นำกลับมาใช้ใหม่ได้ด้วยแอ็กชันประกาศ แอ็กชันนี้ตั้งชื่อส่วนหนึ่งของข้อความแม่แบบ แต่จะไม่เรนเดอร์อะไรด้วยตัวเอง
{{- define "mychart.labels" -}}
app: my-app
{{- end -}}โครงสร้างของบล็อกประกาศ
ทุกการประกาศจะเปิดด้วยสตริงชื่อและปิดด้วยจุดสิ้นสุด เนื้อหาที่อยู่ระหว่างสองส่วนนี้คือเนื้อหาหลักที่ผู้เรียกจะดึงมาใช้
{{- define "NAME" -}}
...body...
{{- end -}}หลักการตั้งชื่อมีความสำคัญ
ชื่อมีขอบเขตครอบคลุมทั้งแผนภูมิ ดังนั้นให้เติมชื่อแผนภูมิไว้ข้างหน้าเพื่อหลีกเลี่ยงชื่อซ้ำ รูปแบบจุดอย่าง chart.purpose คือรูปแบบตามธรรมเนียม
{{- define "mychart.selectorLabels" -}}
app.kubernetes.io/name: mychart
{{- end -}}ส่วนย่อยอยู่ที่ใด
ตามธรรมเนียม บล็อกประกาศทั้งหมดของคุณจะอยู่ใน templates/_helpers.tpl ขีดล่างด้านหน้าบอกเฮลม์ว่าไฟล์นี้ไม่ปล่อยแมนนิเฟสต์ของตัวเอง
ไฟล์ที่ขึ้นต้นด้วยขีดล่างมีคุณสมบัติพิเศษ
ไฟล์ใน templates ที่ขึ้นต้นด้วยขีดล่างจะไม่ถูกเรนเดอร์เป็นออบเจ็กต์ของคูเบอร์เนทีส ไฟล์เหล่านี้มีไว้เก็บส่วนย่อยและตัวช่วยให้ส่วนอื่นนำไปใช้เท่านั้น
การประกาศไม่สร้างผลลัพธ์
การประกาศส่วนย่อยเป็นเพียงการลงทะเบียนส่วนย่อยด้วยชื่อเท่านั้น จะไม่มีสิ่งใดปรากฏใน YAML ที่เรนเดอร์จนกว่าแม่แบบอื่นจะเรียกส่วนย่อยนั้นจริง ๆ
ส่วนย่อยใช้จุดได้
ภายในส่วนย่อย คุณสามารถอ่านบริบทอย่าง .Release.Name ได้ แต่ต้องมีผู้เรียกส่งขอบเขตนั้นเข้ามา เราจะกล่าวถึงการส่งขอบเขตในเร็ว ๆ นี้
{{- define "mychart.name" -}}
{{ .Release.Name }}
{{- end -}}ส่วนย่อยหลายส่วนในไฟล์เดียว
คุณสามารถวางบล็อกประกาศไว้ใน _helpers.tpl ได้มากเท่าที่ต้องการ จัดกลุ่มตัวช่วยที่เกี่ยวข้องไว้ด้วยกันเพื่อให้สแกนไฟล์ได้ง่าย
{{- define "mychart.name" -}}
my-app
{{- end -}}
{{- define "mychart.fullname" -}}
my-app-prod
{{- end -}}ส่วนย่อยช่วยสร้างแผนภูมิขนาดใหญ่
เมื่อแผนภูมิเติบโตขึ้น ส่วนย่อยจะช่วยให้ป้ายกำกับและชื่อที่ซ้ำกันยังสอดคล้องกัน เปลี่ยนตัวช่วยเพียงครั้งเดียว แล้วแมนนิเฟสต์ทุกตัวที่ใช้ตัวช่วยนั้นจะอัปเดตไปพร้อมกัน
การประกาศเป็นเพียงครึ่งหนึ่งของงาน
การประกาศเพียงอย่างเดียวไม่มีผล ขั้นตอนถัดไปคือการแทรกสิ่งนั้นลงในแมนนิเฟสต์จริงด้วยการแทรกหรือแม่แบบ ซึ่งบทเรียนถัดไปจะอธิบาย
ตรวจสอบอย่างรวดเร็ว
คุณเพิ่มบล็อกประกาศแล้ว แต่ผลลัพธ์ที่เรนเดอร์กลับว่างเปล่า เพราะเหตุใด
ทบทวน: การประกาศส่วนย่อย
คุณได้เรียนรู้การประกาศบล็อกที่นำกลับมาใช้ใหม่ได้ด้วยการประกาศ ตั้งชื่อบล็อกเป็น chart.purpose และจัดเก็บไว้ใน _helpers.tpl ต่อไปคุณจะได้เรียกใช้บล็อกเหล่านี้ 🧩
คำถามที่พบบ่อย
บทเรียน “กำหนด Partial ด้วย define” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “กำหนด Partial ด้วย define” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “กำหนด Partial ด้วย define”
ประกาศบล็อกเทมเพลตแบบมีชื่อที่นำกลับมาใช้ซ้ำได้ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “กำหนด Partial ด้วย define” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- กำหนด Partial ด้วย define
- แทรก Partial ด้วย template และ include
- ตัวช่วย Fullname และ Labels มาตรฐาน
- ส่ง Scope เข้า Named Template