การเขียน Kubernetes Controller, Part 8 — ย้าย Repo ไปอยู่ใต้ Weaveworks
หลังจากปล่อย version 0.8.0 ไปและมี Engineer จากทีมอื่นมาช่วยอีก 2 คนตอนนี้ สัปดาห์ที่แล้วเลยได้ฤกษ์ย้ายจาก Repo ส่วนตัวไปอยู่ใต้ Weaveworks Org 🏠
ตอนนี้ TF-controller ก็ได้กลายเป็น Official Repo ของ Weaveworks ไปเรียบร้อยแล้ว ⭐️ 🍰🌟 💫 🎂✨ ☄ ☀️🍰 🎂
ในเรื่องเชิงเทคนิค มีประเด็นต่าง ๆ น่าสนใจระหว่างการย้าย Repo โดยเฉพาะรอบ ๆ GitHub
- GitHub จะยังเก็บเส้นทางของ Repo เดิมไว้ ดังนั้นกลไกการ Import ใน Go เลยจะยังไม่พัง
- GitHub จะยังคงเก็บเส้นทางของ Container Package ไว้ให้ด้วย ถึงจะมองไม่เห็นแล้วก็ตาม แต่ ghcr.io/chanwit/tf-controller:v0.8.0 ก็ยังจะ Pull ได้ ทำให้ระบบที่อ้างอิงไปยัง Container Image ตัวนี้จะไม่ Break
- การย้าย Repo ไป Organization จะต้องทำโดยคนที่มีสิทธิใน Org ปลายทางเท่านั้น ตอนย้ายเลยต้องทำ 2 Step คือย้ายไปที่ Admin ก่อน ก่อนจะย้ายไปที่ Weaveworks อีกที และยังหาวิธีที่ดี (กว่านี้) ไม่เจอ
หลังจากย้าย Repo แล้วก็จะมีเรื่องที่ต้องซ่อมหลายจุด
2 จุดหลัก ๆ ก็คือ Import Path ใน Go ต้องเปลี่ยนเป็น Weaveworks ให้หมด และ Package ต้อง Publish ใหม่ตั้งแต่ v0.9.0 เป็นต้นไปก็จะอยู่ที่ Weaveworks Org
กลายเป็นว่าตอนนี้ Code เริ่มช้า จากที่เคย Release ได้สัปดาห์ละหลาย ๆ ครั้ง ตอนนี้สะดุดเพราะการย้าย Repo แต่ก็มีข้อดีคือได้ทดลองกลับไปดู TF-controller v0.8.0 ที่รันอยู่บน Cluster ทดสอบประมาณ 2 สัปดาห์แล้ว ยัง Reconcile อยู่ทุกวัน ไม่เกิดการ Leak ไม่พัง ไม่รีสตาร์ตเลยแม้แต่ครั้งเดียว ความ Stable ถือว่าอยู่ในระดับที่น่าพอใจ
สำหรับ Feature หลักเรื่อง Multi-Tenancy ที่เร่งทำ ตอนนี้ก็ทำการ Port Code ทั้งหมดเป็น gRPC เรียบร้อยแล้ว
ส่วน Engineer อีกคนนึงกำลังทำส่วนของ mTLS อยู่และคิดว่าสัปดาห์หน้าจะเอามาประกอบกัน
ได้ออกมาจะเป็น Architecture สำหรับ GitOps Controller ที่น่าสนใจมากแบบนึงเลยทีเดียว