Agentbaker เป็นชุดของส่วนประกอบที่ใช้ในการจัดเตรียมโหนด Kubernetes ใน Azure
Agentbaker มีไม่กี่ชิ้น
ผู้บริโภคหลักของ Agentbaker คือ Azure Kubernetes Service (AKS)
AKS ใช้ AgentBaker เพื่อจัดเตรียม Linux และ Windows Kubernetes โหนด
การพัฒนา Agentbaker ต้องการสิ่งจำเป็นพื้นฐานบางประการ:
เรียกใช้ make -C hack/tools install เพื่อติดตั้งเครื่องมือการพัฒนาทั้งหมด
หากคุณเปลี่ยนรหัสหรือสิ่งประดิษฐ์ที่ใช้ในการสร้างข้อมูลที่กำหนดเองหรือ Payloads ส่วนขยายสคริปต์ที่กำหนดเองคุณควรเรียกใช้ make
รหัสเรียกใช้ใหม่นี้เพื่อฝังไฟล์คงที่ในรหัส GO ซึ่งเป็นสิ่งที่จะใช้จริงในรันไทม์
นอกจากนี้ยังดำเนินการทดสอบหน่วย (เทียบเท่ากับ go test ./... ) และสร้าง TestData Snapshot ใหม่
เราใช้ Golangci-Lint เพื่อบังคับใช้สไตล์
เรียกใช้ make -C hack/tools install เพื่อติดตั้ง Linter
run ./hack/tools/bin/golangci-lint run เพื่อเรียกใช้ linter
ขณะนี้เรามีความล้มเหลวมากมายที่เราหวังว่าจะกำจัด
เรามีงานที่จะเรียกใช้ Golangci-Lint ในคำขอดึง
งานนี้ใช้คุณสมบัติ "No-New-issues" ของ Linters
ตราบใดที่ PRS ไม่แนะนำปัญหาใหม่สุทธิพวกเขาควรผ่าน
นอกจากนี้เรายังมีงานผ้าสำลีเพื่อบังคับใช้รูปแบบข้อความ
เรายึดมั่นในการกระทำทั่วไป
ชอบคำขอดึงด้วยการกระทำเดียว
ในการทำความสะอาดการกระทำที่กำลังดำเนินการอยู่คุณสามารถใช้ git rebase -i เพื่อ fixup commits
ดูเอกสาร GIT สำหรับรายละเอียดเพิ่มเติม
รหัสส่วนใหญ่อาจถูกทดสอบด้วยการทดสอบหน่วยวานิลลา GO
กรุณาเยี่ยมชมลิงค์ GitHub อย่างเป็นทางการสำหรับรายละเอียดเพิ่มเติม ด้านล่างเป็นกรณีการใช้งานสั้น ๆ
Shellspec ใช้เป็นเฟรมเวิร์กสำหรับการทดสอบหน่วย มี 2 ตัวเลือกในการติดตั้ง
Shellspec รวมอยู่ใน MakeFile แล้ว คุณสามารถติดตั้งได้ง่ายๆโดยเรียกใช้ make tools-install หรือ make generate ในไดเรกทอรี Root (/Agentbaker)
หมายเหตุ: make generate จะติดตั้งและเรียกใช้การทดสอบ ShellSpec
หากคุณต้องการติดตั้งในเครื่องท้องถิ่นของคุณโปรดเรียกใช้ curl -fsSL https://git.io/shellspec | sh .
โดยค่าเริ่มต้นควรติดตั้งใน ~/.local/lib/shellspec โปรดต่อท้ายไปยังเส้นทาง $ เพื่อความสะดวกของคุณ ตัวอย่างคำสั่ง export PATH=$PATH:~/.local/lib/shellspec
คุณจะต้องเขียนไฟล์ xxx_spec.sh สำหรับการทดสอบ
ตัวอย่างเช่น AgentBaker/spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh เป็นไฟล์ทดสอบสำหรับ AgentBaker/parts/linux/cloud-init/artifacts/cse_install.sh
ในการเรียกใช้การทดสอบทั้งหมดในโฟลเดอร์ Agentbaker เพียงเรียกใช้ bash ./hack/tools/bin/shellspec ในไดเรกทอรี Root (/Agentbaker)
bash ./hack/tools/bin/shellspec -x => ด้วย -x มันจะแสดงการติดตาม verbose สำหรับการดีบักbash ./hack/tools/bin/shellspec -E "<test name>" => คุณสามารถเรียกใช้กรณีทดสอบเดียวโดยใช้ -E และชื่อทดสอบ ตัวอย่างเช่น bash ./hack/tools/bin/shellspec -E "returns downloadURIs.ubuntu."r2004".downloadURL of package runc for UBUNTU 20.04" คุณยังสามารถทำ -xE สำหรับการติดตาม Verbose สำหรับกรณีทดสอบเดียวbash ./hack/tools/bin/shellspec "path to xxx_spec.sh" => โดยการจัดเตรียมไฟล์สเป็คแบบเต็มพา ธ คุณสามารถเรียกใช้เฉพาะไฟล์สเป็คนั้นแทนไฟล์สเปคทั้งหมดในโครงการ AgentBaker ตัวอย่างเช่น bash ./hack/tools/bin/shellspec "spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh" นอกจากนี้เรายังมีการทดสอบข้อมูลสแน็ปช็อตซึ่งเก็บเอาต์พุตของคีย์ API เป็นไฟล์บนดิสก์
เราสามารถตรวจสอบเนื้อหาสแน็ปช็อตได้ด้วยตนเองดูถูกต้อง
ตอนนี้เรามีการทดสอบหน่วยซึ่งสามารถตรวจสอบเนื้อหาโดยตรงโดยไม่ต้องออกจากไฟล์ที่สร้างขึ้นบนดิสก์
ดู ./pkg/agent/baker_test.go สำหรับตัวอย่าง (ค้นหา dynamic-config-dir เพื่อดูตัวอย่างการตรวจสอบความถูกต้อง)
เช็คเอาต์ไดเรกทอรี E2E
โครงการนี้ยินดีต้อนรับการมีส่วนร่วมและข้อเสนอแนะ การมีส่วนร่วมส่วนใหญ่กำหนดให้คุณต้องยอมรับข้อตกลงใบอนุญาตผู้มีส่วนร่วม (CLA) ประกาศว่าคุณมีสิทธิ์และทำจริงให้สิทธิ์ในการใช้การบริจาคของคุณ สำหรับรายละเอียดเยี่ยมชม https://cla.opensource.microsoft.com
เมื่อคุณส่งคำขอดึง CLA บอทจะพิจารณาโดยอัตโนมัติว่าคุณจำเป็นต้องให้ CLA และตกแต่ง PR อย่างเหมาะสม (เช่นการตรวจสอบสถานะแสดงความคิดเห็น) เพียงทำตามคำแนะนำที่จัดทำโดยบอท คุณจะต้องทำสิ่งนี้เพียงครั้งเดียวใน repos ทั้งหมดโดยใช้ CLA ของเรา
โครงการนี้ได้นำรหัสการดำเนินงานของ Microsoft โอเพ่นซอร์สมาใช้ สำหรับข้อมูลเพิ่มเติมโปรดดูจรรยาบรรณคำถามที่พบบ่อยหรือติดต่อ [email protected] พร้อมคำถามหรือความคิดเห็นเพิ่มเติมใด ๆ
ไฟล์ CGMANIFEST เป็นไฟล์ JSON ที่ใช้ในการลงทะเบียนส่วนประกอบด้วยตนเองเมื่อประเภทส่วนประกอบไม่ได้รับการสนับสนุนโดยการกำกับดูแล ชื่อไฟล์คือ "cgmanifest.json" และคุณสามารถมีได้มากเท่าที่คุณต้องการและสามารถอยู่ได้ทุกที่ในที่เก็บของคุณ
เส้นทางไฟล์: ./vhdbuilder/cgmanifest.json
การอ้างอิง: https://docs.opensource.microsoft.com/tools/cg/cgmanifest.html
บรรจุุภัณฑ์: