การเขียน Kubernetes Controller, Part 10— Test Coverage, เปลี่ยนชื่อ Controller และเอาขึ้น Red Hat OperatorHub
หลายสัปดาห์ที่ผ่านมา ในงานฝั่ง Engineering เราขัด TF-controller จนได้รูปร่างที่ค่อนข้างหน้าพอใจสำหรับ Q1 ที่กำลังจะจบแล้ว
ตอนนี้เหลือ Test Coverage อยู่ 1.8% ก่อนที่จะแตะ 70% Test Coverage ตามที่ตั้งเป้าไว้ เหตุผลที่ดันค่า Test Coverage ไม่ขึ้นเพราะว่าตอนนี้เรา Test ด้วย Test Env ที่มากับ KubeBuilder (เป็นระดับ Integration Test)
พอหลังจากการสร้าง Subsystem ของ Runner Pod แล้วต้อง Schedule ตัว Pod จริง ๆ ก็เลยต้องทำ E2E Test ตอนนี้ใน E2E Test ยังไม่มีกลไกการดึงเอา Test Coverage มารวมกัน ทำให้กลไกหลาย ๆ ส่วนของ Runner Pod แม้ว่าจะถูกทดสอบแล้วแต่ก็ไม่ White Box ถึงขนาดรู้ว่าบรรทัดไหนถูกใช้บ้าง
เลยเป็นที่มาว่าค่า Test Coverage ขาดไป 1.8% ไม่ถึงเป้า
ยังพอมีเวลาอยู่อีก 10 วันแต่ก็อาจจะไม่ได้ทำเรื่องนี้แล้ว อาจจะต้องไปโฟกัสเรื่องเอกสารแทน เพราะ Test Coverage 68.2% สูงพอ และจากการรัน E2E Test ซ้ำ ๆ ก็ทำให้เชื่อได้ว่า Quality สูงมากพอสำหรับการตัด Release
ในฝั่ง Partnership จากที่ผมเป็นคน Maintain การ Publish Flux Operator ลงบน Red Hat Operator Hub อยู่แล้ว การเอา TF-controller ขึ้น OperatorHub ก็เลยไม่ได้ยากลำบากอะไร มีโครงเดิมของ Flux อยู่ก็เอามา Re-Arrange ใหม่ ปรับ RBAC ลด Permission แล้วก็ส่งขึ้นให้ทีมของ Red Hat Approve เข้าไปอยู่ใน RH OperatorHub และ RH Community Operators เรียบร้อยแล้ว หน้าตาสวยงามแบบนี้
ฝั่ง Product เสนอชื่ออย่างเป็นทางการมาว่า
Weave GitOps Terraform Controller
เลยมีวงเล็บ AKA ไว้หน่อยว่า Weave TF-controller ก็คือตัวเดียวกัน ที่เห็นตอนนี้คือ v0.9.0-rc.8 และคิดว่าจะตัด Release ได้จริง ๆ ซักทีในสัปดาห์หน้า