✏️ Bài tập Ngày 3: Sync Strategies & Phục hồi sự cố¶
🎯 Mục tiêu¶
- Cấu hình Self-heal cho ứng dụng
- Cấu hình Prune cho ứng dụng
- Quan sát ArgoCD tự phục hồi sau sự cố
Bài tập 1: Bật Auto Sync + Self-heal¶
-
Áp dụng Application với auto-sync:
-
Kiểm tra cấu hình:
Kết quả mong đợi: selfHeal: true, prune: true
Bài tập 2: Test Self-heal¶
-
Xóa tất cả pods:
-
Quan sát trên ArgoCD UI: status chuyển từ Healthy → Progressing → Healthy
-
Kiểm tra pods đã được tạo lại:
-
Thử scale trực tiếp:
Bài tập 3: Test Prune¶
-
Kiểm tra ConfigMap tồn tại:
-
Trên Git repo, xóa phần ConfigMap khỏi manifest, commit & push
-
Chờ ArgoCD auto-sync (hoặc
argocd app sync nginx-demo) -
Kiểm tra ConfigMap đã bị xóa:
Bài tập 4: Chống Prune cho resource quan trọng¶
-
Thêm annotation vào Service để ngăn ArgoCD xóa:
-
Xóa Service khỏi Git, commit & push
-
Kiểm tra Service vẫn tồn tại trên cluster (vì Prune=false)
✅ Checklist hoàn thành¶
- [ ] Bật Auto Sync + Self-heal + Prune thành công
- [ ] Xóa pods → ArgoCD tự tạo lại
- [ ] Scale trực tiếp → ArgoCD rollback về giá trị Git
- [ ] Xóa resource khỏi Git → Prune xóa trên cluster
- [ ] Annotation Prune=false ngăn xóa thành công