محتويات الدورة

Argo CD / الأتمتة والدورة والثقة / الدرس 9

مراحل المزامنة وموجاتها وآثار hooks

رتب الاعتماد دون اعتبار التسلسل معاملة موزعة.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • شرح المرحلة والموجة وفق المرجع.
  • مراجعة التكرار والانتقاء والتنظيف ودليل الفشل.

الترتيب أداة اعتماد لها حدود

تنظم المراحل والموجات العمليات داخل sync. تميز PreSync وSync وPostSync ومعالجة الفشل أدواراً، وترتب الموجة داخل المرحلة، ويشارك النوع والاسم في الترتيب الموثق. قد يحتاج Parcel متطلباً قبل عبء، لكن ترتيب التطبيق لا يثبت جاهزية كل خارج. اقرأ الصحة والاستمرار ولا تجعل أرقام الموجات لغة اعتماد غامضة. ينبغي أن يشرح اختيار الرقم العلاقة المقصودة، لا أن يكون تأخيراً سحرياً يزداد كلما ظهر تسابق لم يراجع سببه.

Hook سلوك إصدار تنفيذي

قد تشغّل hooks موارد كـ Jobs في نقاط دورة. تدخل شيفرتها وصورها وأسرارها وشبكتها وإعادتها وآثارها في الثقة. قد تفشل PreSync قبل التبني وتفشل PostSync بعد تغير الموارد؛ لا تصبح العملية ذرية. لا تضع تغيير بيانات غير قابل للعكس دون توافق وتكرار. لا تنشئ الدورة Job أو تنفذ hook أو ترحيلاً. يجب أن يعرف صاحب القرار ما إذا كان الفشل يمنع خطوة قادمة أو يبلغ عن حالة تغيرت بالفعل، وأن يحتفظ بأدلة تسمح بالتعافي دون تكرار أثر مكتمل.

اقرأ البيانات كمقطع فقط

يعين المثال PreSync وموجة سالب واحد وتنظيف النجاح ولا يحوي مواصفة كاملة أو صورة أو أمر أو سر. قرر إن كان حذف الكائن الناجح يحفظ دليلاً كافياً. يؤثر الاسم الثابت والمولد في إعادة الإنشاء وفق الدورة. تحتاج BeforeHookCreation وغيرها اختياراً مقصوداً لا وصفة شاملة. لا يعني خروج الكائن من العنقود أن أثراً خارجياً اختفى أو أن سجله بقي متاحاً، لذلك يجب أن تراجع سياسة التنظيف مع احتفاظ الأدلة ومعنى إعادة العملية نفسها.

yaml مقطع بيانات دورة hook
metadata:
  annotations:
    argocd.argoproj.io/hook: PreSync
    argocd.argoproj.io/sync-wave: "-1"
    argocd.argoproj.io/hook-delete-policy: HookSucceeded

ليس كائناً كاملاً ولا يطبق. لا يُدعى نجاح أو توقيت أو تنظيف أو سلوك قاعدة. يوضح حد مراجعة فقط.

نمذج مفتاحي المرحلة والموجة فقط

يرتب البرنامج الكامل ثلاث عمليات افتراضية برتبة مرحلة وموجة عددية. يحذف تعادل النوع والاسم وترتيب الحذف وانتظار الصحة وسلوك المتحكم عمداً. يوضح فكرة ترتيب لا اختبار محرك. راعِ الفشل وAPI الغائبة ومورداً لا يصبح سليماً. لا يصلح مزيد ترتيب صحة خاطئة أو يجعل أثر عمل آمناً للعكس. نتيجة القائمة متوقعة من البيانات المعلنة فقط، ولا تثبت أن أياً من مواردها موجود أو أن اعتماداً حقيقياً سيجهز قبل استدعاء المورد التالي.

python ترتيب افتراضي محدود
phase_rank = {"PreSync": 0, "Sync": 1, "PostSync": 2}
items = [("validation", "PostSync", 0), ("workload", "Sync", 1), ("prerequisite", "PreSync", -1)]
ordered = sorted(items, key=lambda x: (phase_rank[x[1]], x[2]))
print([x[0] for x in ordered])
الناتج المتوقع
['prerequisite', 'workload', 'validation']

تُرتب صفوف محلية فقط، ولا تنفذ الخوارزمية الكاملة أو موارد Kubernetes أو تتحقق منها.

قد يغير الانتقاء العقد

تنص وثائق المرجع على عدم تشغيل hooks في selective sync. يجب معرفة هل تشمل العملية التحقق والانتقال المتوقعين. لا تفترض أن اختيار مورد يحفظ دورة كاملة. احفظ المخرجات والتاريخ وحقق الجزئي قبل الإعادة. قد يحتاج فشل PostSync تحقيق أثر مستخدم وقد تغير التطبيق، لا افتراض غياب النشر. إذا كانت خطوة تحقق لازمة لقرار الإصدار، فلا تجعل اختيار واجهة أسرع يتجاوزها دون قرار صريح؛ يجب أن يعرف المراجع نطاق العملية التي وافق عليها فعلاً.

الأخطاء الشائعة وإصلاحها

تُعد الموجة إثبات جاهزية كاملة.

لماذا يحدث؟
اختلط الترتيب بالصحة وتوفر الخارج.
كيف تصلحه؟
حدد جاهزية وفشلاً محدودين للاعتماد.
كيف تتجنب تكراره؟
راجع الترتيب والصحة معاً.

يُتوقع كل hook في الانتقائي.

لماذا يحدث؟
اختلف نطاق العملية عن الدورة الكاملة.
كيف تصلحه؟
راجع القيد قبل اختيار النطاق.
كيف تتجنب تكراره؟
سجل نطاق العملية ودليل hook المطلوب.

يكرر hook فعلاً تجارياً خارجياً.

لماذا يحدث؟
لم يصمم التكرار والجزئي.
كيف تصلحه؟
استخدم عقد تكرار أو تعويض مراجعاً.
كيف تتجنب تكراره؟
احفظ الهوية والنتيجة والتعافي مسبقاً.

اختبر فهمك

1. فشل PostSync بعد التطبيق. هل بقي الهدف بلا تغيير؟

اعرض الحل المشروح

لا. قد اختلفت الموارد بالفعل. احفظ العملية والملاحظات وحقق أثر المستخدم واختر إكمالاً أو تعافياً متوافقاً. لا يعكس الفحص النهائي الفاشل التغيير تلقائياً.

2. لماذا لا يثبت ترتيب Python نجاح hook؟

اعرض الحل المشروح

يمثل مفتاحين فقط ولا يولد مورداً أو يستدعي Kubernetes أو يطبق كل الترتيب والصحة أو ينفذ الشيفرة. يحتاج الفعلي تمريناً مناسباً منفصلاً مصرحاً به.

أهم ما تعلمته

  • رتب عمداً وعرّف الجاهزية مستقلة.
  • لـ hooks آثار ونطاق واحتفاظ وإعادة.

المراجع الرسمية