CI/CD و Argo CD
الفرق بين CI و CD
Section titled “الفرق بين CI و CD”- CI: بناء التطبيق، تشغيل الاختبارات، وبناء Image.
- CD: نشر الإصدار الجديد إلى البيئة المناسبة.
GitOps Flow
Section titled “GitOps Flow”Code repo |CI builds image |Manifest repo updates image tag |Argo CD syncs clusterما هو Argo CD؟
Section titled “ما هو Argo CD؟”Argo CD يراقب Git repo ويقارن ما فيه بما يعمل داخل Cluster.
مصطلحات مهمة:
| المصطلح | معناه |
|---|---|
| Application | تعريف تطبيق في Argo CD |
| Sync | تطبيق ما في Git على Cluster |
| Drift | اختلاف Cluster عن Git |
| Health | حالة الموارد |
| Rollback | الرجوع إلى commit أو revision سابق |
مثال Application
Section titled “مثال Application”apiVersion: argoproj.io/v1alpha1kind: Applicationmetadata: name: web namespace: argocdspec: project: default source: repoURL: https://github.com/example/k8s-manifests targetRevision: main path: apps/web destination: server: https://kubernetes.default.svc namespace: web syncPolicy: automated: prune: true selfHeal: trueمبادئ مهمة
Section titled “مبادئ مهمة”- لا تنشر يدويا في Production إلا للضرورة.
- كل تغيير يجب أن يظهر في Git.
- استخدم مراجعة Pull Request قبل تغيير production.
- لا تضع Secrets صريحة داخل repo.
Lab: أول تطبيق GitOps
الهدف: تشغيل Argo CD Application يقرأ manifests من Git.
- ثبت Argo CD على Cluster المحلي.
- أنشئ repo أو مجلد manifests.
- أنشئ Application.
- غيّر عدد replicas في Git.
- راقب Argo CD وهو يطبق التغيير.