การเขียน Kubernetes Controller, Part 10— Test Coverage, เปลี่ยนชื่อ Controller และเอาขึ้น Red Hat OperatorHub

Chanwit Kaewkasi
1 min readMar 20, 2022

หลายสัปดาห์ที่ผ่านมา ในงานฝั่ง 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 เรียบร้อยแล้ว หน้าตาสวยงามแบบนี้

https://operatorhub.io/operator/tf-controller

ฝั่ง Product เสนอชื่ออย่างเป็นทางการมาว่า

Weave GitOps Terraform Controller

เลยมีวงเล็บ AKA ไว้หน่อยว่า Weave TF-controller ก็คือตัวเดียวกัน ที่เห็นตอนนี้คือ v0.9.0-rc.8 และคิดว่าจะตัด Release ได้จริง ๆ ซักทีในสัปดาห์หน้า

--

--

Chanwit Kaewkasi

Creator Weave TF-controller, Kubernetes & GitOps for Terraform, SNR SE @weaveworks, Go nut since r57 (pre v1)