Section 6: จัดโครงสร้าง Repository และการติดตามเวอร์ชัน
- แยก Repository ของโค้ดแอปกับ Repository ของค่า Config
- Monorepo เทียบกับหลาย Repository และรูปแบบ App of Apps
- targetRevision: Branch, Tag, Commit SHA และช่วงเวอร์ชันของ Helm Chart
- Promote จาก dev ไป prod ด้วย Pull Request
- Lab: วางโครงสร้าง Repository สำหรับสามสภาพแวดล้อม
Section 7: Lab: Sync Policy และ Sync Options
- Automated Sync, Prune และ Self-Heal ต่างกันอย่างไร
- Sync Options ที่ใช้บ่อย เช่น CreateNamespace, ServerSideApply และ PruneLast
- Sync Window สำหรับกำหนดช่วงเวลาที่อนุญาตให้ Deploy
- Rollback จากประวัติ และเหตุผลที่ควรย้อนผ่าน Git
- Lab: ทดลองแก้ Resource ใน Cluster ตรง ๆ แล้วดู Self-Heal ทำงาน
Section 8: Sync Wave, Hook และ Diffing Customization
- Sync Phase: PreSync, Sync, PostSync และ SyncFail
- Sync Wave สำหรับกำหนดลำดับ เช่น ฐานข้อมูลก่อนแอป
- Hook สำหรับ Migration ฐานข้อมูลและ Smoke Test
- ignoreDifferences สำหรับฟิลด์ที่ระบบอื่นแก้ เช่น replicas จาก HPA
- Lab: Job ทำ Migration ก่อน Deploy เวอร์ชันใหม่
Section 9: Lab: Project, RBAC และ SSO
- AppProject: จำกัด Source Repository, Destination และชนิด Resource
- Project Role และ Token สำหรับงานอัตโนมัติ
- RBAC ใน argocd-rbac-cm และการแยกสิทธิ์ทีมพัฒนากับทีมปฏิบัติการ
- เชื่อม SSO ผ่าน OIDC หรือ Dex กับผู้ให้บริการตัวตนขององค์กร
- Lab: สร้าง Project ให้ทีมที่ Deploy ได้เฉพาะ Namespace ของตน
Section 10: Private Repository และ Credential
- เชื่อม Private Git Repository ผ่าน HTTPS Token และ SSH Key
- Credential Template สำหรับหลาย Repository ในองค์กรเดียวกัน
- Helm Repository และ OCI Registry แบบ Private
- เก็บ Credential เป็น Kubernetes Secret แบบ Declarative
- Lab: Deploy จาก Private Repository ด้วย Deploy Key