Project 6: GitOps with Argo CD
تشغيل مشروع Helm من Git عبر Argo CD، مع بيئات dev و staging و prod وخطة rollback.
المطلوب
Section titled “المطلوب”- Git repo يحتوي chart وvalues.
- Argo CD Application لكل بيئة أو ApplicationSet.
- تعديل من Git يظهر في cluster.
- rollback موثق.
Application مثال
Section titled “Application مثال”apiVersion: argoproj.io/v1alpha1kind: Applicationmetadata: name: fullstack-dev namespace: argocdspec: project: default source: repoURL: https://github.com/example/fullstack-gitops.git targetRevision: main path: fullstack-app helm: valueFiles: - values-dev.yaml destination: server: https://kubernetes.default.svc namespace: fullstack-dev syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=trueLab: نشر GitOps
الهدف: إنشاء Argo CD Application ومراقبة sync ثم تنفيذ rollback من Git.
kubectl apply -f application-dev.yamlargocd app get fullstack-devargocd app sync fullstack-devغيّر image tag في Git ثم:
git add .git commit -m "Update dev image"git pushargocd app sync fullstack-devRollback:
git revert HEADgit pushargocd app sync fullstack-devExpected output
Section titled “Expected output”Sync Status: SyncedHealth Status: HealthyCleanup
Section titled “Cleanup”kubectl delete -f application-dev.yamlAcceptance criteria
Section titled “Acceptance criteria”- cluster يمكن إعادة بنائه من Git.
- لا يوجد apply يدوي لتطبيق production إلا Argo CD.
- rollback موثق بـ Git commit.