تخطَّ إلى المحتوى

CI/CD و Argo CD

  • CI: بناء التطبيق، تشغيل الاختبارات، وبناء Image.
  • CD: نشر الإصدار الجديد إلى البيئة المناسبة.
Code repo
|
CI builds image
|
Manifest repo updates image tag
|
Argo CD syncs cluster

Argo CD يراقب Git repo ويقارن ما فيه بما يعمل داخل Cluster.

مصطلحات مهمة:

المصطلحمعناه
Applicationتعريف تطبيق في Argo CD
Syncتطبيق ما في Git على Cluster
Driftاختلاف Cluster عن Git
Healthحالة الموارد
Rollbackالرجوع إلى commit أو revision سابق
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: web
namespace: argocd
spec:
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
  • لا تنشر يدويا في Production إلا للضرورة.
  • كل تغيير يجب أن يظهر في Git.
  • استخدم مراجعة Pull Request قبل تغيير production.
  • لا تضع Secrets صريحة داخل repo.

Lab: أول تطبيق GitOps

المستوى: مبتدئ الوقت: 60 دقيقة الأدوات: kubectl, Argo CD

الهدف: تشغيل Argo CD Application يقرأ manifests من Git.

  1. ثبت Argo CD على Cluster المحلي.
  2. أنشئ repo أو مجلد manifests.
  3. أنشئ Application.
  4. غيّر عدد replicas في Git.
  5. راقب Argo CD وهو يطبق التغيير.