การแทนที่ค่าเริ่มต้นของ Library ภายในเครื่อง
การปรับแต่งแม่แบบที่ใช้ร่วมกันสำหรับผู้ใช้แต่ละราย
การแทนที่ค่าเริ่มต้นของ Library ภายในเครื่อง เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
ใช้ร่วมกันได้แต่ไม่ตายตัว
ไลบรารีที่ดีจะกำหนดค่าเริ่มต้นที่เหมาะสม พร้อมเปิดให้ผู้ใช้แต่ละรายปรับแก้ได้ ตัวควบคุมหลักคือ ค่าที่ส่วนย่อยอ่านขณะเรนเดอร์
ควบคุมพฤติกรรมด้วยค่า
เนื่องจากส่วนย่อยอ่าน .Values ชาร์ตของคุณจึงปรับแต่งผลลัพธ์ที่ใช้ร่วมกันได้ง่าย ๆ เพียงกำหนดคีย์เหล่านั้นใน values.yaml ของตัวเอง
# your values.yaml
image:
repository: nginx
tag: "1.27"ไลบรารีพึ่งพาค่าเริ่มต้น
เทมเพลตย่อยที่เขียนไว้อย่างดีจะครอบการอ่านค่าไว้ในฟังก์ชัน ค่าเริ่มต้น ดังนั้นค่าที่ไม่ได้กำหนดจะใช้ค่าทดแทนอย่างเหมาะสม แทนที่จะแสดงผลเป็นค่าว่าง
replicas: {{ .Values.replicaCount | default 1 }}แทนที่เฉพาะคีย์นั้น
หากต้องการเปลี่ยนค่าเริ่มต้นเพียงค่าเดียว ให้กำหนดเฉพาะคีย์นั้นในค่าของคุณ ไลบรารียังคงใช้ค่าทดแทนอื่น ๆ ทั้งหมดไว้ จึงเป็นการแทนค่าเท่าที่ จำเป็นขั้นต่ำ
# your values.yaml
replicaCount: 3แทนที่เทมเพลตย่อยทั้งชุด
ต้องการเปลี่ยนแปลงมากกว่านี้หรือไม่ ให้กำหนดนิยามใหม่ของเทมเพลตที่มีชื่อเดียวกันในชาร์ตของคุณ นิยามล่าสุดสำหรับชื่อหนึ่งจะมีผล ดังนั้นเวอร์ชันของคุณจะแทนที่เวอร์ชันของไลบรารี
{{- define "common.labels" -}}
team: payments
{{- end -}}นิยามล่าสุดมีผล
เมื่อชาร์ตสองรายการกำหนดนิยามเทมเพลตชื่อเดียวกัน Helm จะใช้รายการที่โหลดทีหลัง ชาร์ตแอปพลิเคชันของคุณจึงสามารถบดบังเทมเพลตย่อยของไลบรารีได้โดยตั้งใจ
ครอบแทนการแทนที่
บ่อยครั้งวิธีที่สะอาดกว่าคือ กำหนดเทมเพลตย่อยใหม่ที่รวมเทมเพลตย่อยของไลบรารี แล้วเพิ่มฟิลด์ของคุณต่อท้าย วิธีนี้ช่วยขยายการทำงานโดยไม่สูญเสียตรรกะจากต้นทาง
{{- define "app.labels" -}}
{{ include "common.labels" . }}
tier: backend
{{- end -}}ส่งผ่านขอบเขตแบบกำหนดเอง
แทนที่จะส่งจุดราก ให้ส่งบริบทที่จำกัดขอบเขตแก่เทมเพลตย่อย เพื่อให้เทมเพลตอ่านค่าจากส่วนย่อยของค่าของคุณและปรับรูปแบบผลลัพธ์ในการเรียกแต่ละครั้ง
{{ include "common.resources" .Values.web }}สร้างบริบทที่ผสานกัน
หากต้องการควบคุมได้ละเอียดขึ้น ให้สร้างพจนานุกรมที่ผสมจุดรากกับค่าที่แทนที่ แล้วส่งพจนานุกรมนั้นเข้าไป เทมเพลตย่อยจะเห็นเฉพาะค่าที่คุณประกอบขึ้น
{{ include "common.tpl" (dict "top" . "name" "web") }}ยืนยันว่าการแทนค่ามีผล
หลังจากแทนค่าแล้ว ให้เรียกใช้ helm template ทุกครั้งเพื่อตรวจสอบว่าค่าหรือเทมเพลตย่อยที่กำหนดนิยามใหม่สร้างแมนนิเฟสต์ตามที่คุณต้องการ
helm template my-release . | grep replicasจำกัดการแทนค่าให้เล็กที่สุด
ใช้ค่าเป็นทางเลือกแรก และกำหนดนิยามใหม่ให้เทมเพลตย่อยเฉพาะเมื่อจำเป็น การแทนค่าขนาดเล็กเฉพาะจุดช่วยให้ชาร์ตของคุณสอดคล้องกับการอัปเกรดไลบรารี
ตรวจสอบอย่างรวดเร็ว
ชาร์ตของคุณและไลบรารีต่างก็กำหนด common.labels แล้ว Helm จะใช้คำจำกัดความใด
ทบทวน: การแทนค่าเฉพาะที่
ปรับแต่งไลบรารีโดยเริ่มจากค่าก่อน กำหนดนิยามใหม่หรือครอบเทมเพลตย่อยเมื่อจำเป็น ส่งขอบเขตแบบกำหนดเอง แล้วตรวจสอบด้วย helm template ✅
คำถามที่พบบ่อย
บทเรียน “การแทนที่ค่าเริ่มต้นของ Library ภายในเครื่อง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การแทนที่ค่าเริ่มต้นของ Library ภายในเครื่อง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การแทนที่ค่าเริ่มต้นของ Library ภายในเครื่อง”
การปรับแต่งแม่แบบที่ใช้ร่วมกันสำหรับผู้ใช้แต่ละราย คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การแทนที่ค่าเริ่มต้นของ Library ภายในเครื่อง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การประกาศประเภท Library Chart
- การส่งออก Named Templates ที่นำกลับมาใช้ใหม่ได้
- การใช้ Library เป็น Dependency
- การแทนที่ค่าเริ่มต้นของ Library ภายในเครื่อง