Argo CD / أسس القصد والأدلة / الدرس 2
هوية Application ومواصفة المرغوب
اقرأ المورد عقداً للمصدر والتوليد والمشروع والوجهة والسياسة.
في هذه الصفحة
أهداف الدرس
- فصل هوية التحكم وهوية العبء المدار.
- مراجعة المصدر والوجهة دون إنشاء Application.
Application كائن تحكم
يصف المورد المخصص طريقة الحصول على المرغوب ومكان مقارنته ومزامنته. تحدد metadata هوية التحكم ولا تساوي بالضرورة أسماء الموارد المدارة ونطاقاتها. قد يعيش تعريف Parcel في نطاق تحكم Argo CD ويدير موارد parcel-lab. يعتمد موضع Application ودعم نطاقات أخرى على إعداد التركيب. لا تعمم المثال إلى بنية مستأجرين كاملة ولا تفترض أن الاسم يمنح وصولاً. يجب معرفة من يكتب كائن التحكم ومن يستطيع تغيير مشروعه أو وجهته، لأن تلك التغييرات تغير ما قد يفعله المتحكم لا مجرد طريقة عرضه.
اقرأ تصريحاً ملموساً غير منفذ
يحدد YAML مصدراً ومساراً ومشروعاً ووجهة افتراضية. example.invalid نطاق تعليمي محجوز لا يعمل، وlab-reviewed-ref اسم معلن لا التزام متحقق. لا يُنشأ مستودع أو مشروع أو نطاق أو عنقود. عنوان الخدمة داخل العنقود صياغة توضيحية لا يُتصل بها. يحتاج الواقع هوية مصدر مراجعة ووصولاً مضبوطاً وCRD مدعومة وسياسة مشروع تسمح. لذلك لا يثبت اكتمال الشكل صحة المدخلات أو الأذونات أو توليد مورد. إنما يتيح للمراجع قراءة العلاقات المطلوبة قبل أي تطبيق مصرح منفصل.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: parcel-lab
namespace: argocd
spec:
project: parcel-lab
source:
repoURL: https://example.invalid/parcel-config.git
targetRevision: lab-reviewed-ref
path: apps/parcel
destination:
server: https://kubernetes.default.svc
namespace: parcel-lab
لا يتضمن التصريح سياسة آلية ولا يُطبق. تعتمد الحقول المحذوفة على النسخة والتركيب؛ لا يثبت المثال الوصول أو التوليد أو الجاهزية.
حل هوية المدخل الفعلية
يحدد repoURL موقعاً وpath إعداد Git وtargetRevision المراجعة بحسب نوع المصدر. قد يتحرك فرع أو وسم. احفظ المراجعة الثابتة المحلولة ومدخلات التوليد المؤثرة لأدلة الإصدار. تختلف حقول مصدر chart ودلالة نسخه عن مجلد Git. لذلك قد يثبت اسم Application وتتغير بايتاته المرغوبة. راجع تعديل المواصفة كقرار تسليم تنفيذي لا تسمية بريئة. لا يكفي حفظ رابط المستودع إذا تغير ملف قيم أو إصدار أداة يؤثر في المخرجات؛ هوية المصدر جزء من عقد أشمل للتوليد.
ليس حقل النطاق حداً كاملاً
تختار الوجهة عنقوداً مضبوطاً بـ server أو name وفق الدعم وسياق نطاق. لا تلغي كل نطاق صريح في الناتج ولا تجعل المورد العام محصوراً بنطاق. تبقى سياسة المشروع وأذونات اعتماد Kubernetes مهمة. قد تحمل إدارة نطاق تحكم Argo CD سلطة مرتفعة. قيّم المصدر والهدف والنوع والعملية معاً. قد يكون المستند صحيحاً تقنياً لكنه غير مقبول لمشروع أو مستأجر. يجب ألا يتحول طلب نطاق محدود إلى افتراض أن المولد لا يستطيع إنتاج نوع عام أو مورداً في نطاق آخر.
افصل هويتي التحكم والمدار
يقارن البرنامج الكامل هوية Application بمورد مدار ويظهر أن اختلاف النوع والنطاق ليس خطأ تلقائياً. لا يحلل الاكتشاف أو الافتراضات أو CRD أو ملكية Argo CD. تشمل الهوية الفعلية المجموعة والنوع والنطاق عند انطباقه والاسم. احفظ هذه المجموعة في الفرق والحذف؛ قد يطابق الاسم وحده كائنات غير مرتبطة. يوضح النموذج فصل الهوية ولا يثبت أن العلاقة بين الموردين مخولة أو أن المتحكم يتتبعهما بالفعل، فهذه حقائق تحتاج أدلة وسياسة خارج القيم التعليمية.
application = ("argoproj.io", "Application", "argocd", "parcel-lab")
managed = ("apps", "Deployment", "parcel-lab", "parcel")
print(application == managed)
print(application[2])
print(managed[2])
False
argocd
parcel-lab
تُقارن صفوف فقط. لا تُقرأ CRD أو استكشاف أو ملكية أو كائن حي.
الأخطاء الشائعة وإصلاحها
يُفترض نطاق Application لكل عبء.
- لماذا يحدث؟
- اختلط موضع التحكم بهوية الناتج.
- كيف تصلحه؟
- افحص الوجهة ونطاق كل مورد مولد.
- كيف تتجنب تكراره؟
- سجل الهويتين منفصلتين.
يوصف اسم فرع كهوية إصدار ثابتة.
- لماذا يحدث؟
- حل محدد متحرك محل محتوى محلول.
- كيف تصلحه؟
- احفظ المراجعة الفعلية ومدخلات التوليد.
- كيف تتجنب تكراره؟
- راجع المحددات المتغيرة وتغييرات المصدر.
يُعد نطاق الوجهة إذناً لكل الأنواع.
- لماذا يحدث؟
- اختلط السياق بتفويض المشروع وKubernetes.
- كيف تصلحه؟
- راجع الأنواع والوجهات ونطاق الاعتماد.
- كيف تتجنب تكراره؟
- قيّم المصدر والنطاق والعملية معاً.
اختبر فهمك
1. هل يدير Application اسمه parcel-lab نشراً اسمه parcel؟
اعرض الحل المشروح
نعم ضمن إعداد صالح مناسب. للهويتين استقلال. تحقق من الناتج والملكية والسياسة والوجهة بدلاً من اشتراط تطابق الاسم.
2. لماذا ليس YAML إعداداً كاملاً قابلاً للتشغيل؟
اعرض الحل المشروح
المصدر والمرجع والمشروع والنطاقات وCRD والوصول افتراضات لا موارد مجهزة. هو تمرين قراءة. يتطلب التطبيق تفويضاً وإعداداً وتحققاً منفصلين لا تنفذها الدورة.
أهم ما تعلمته
- اقرأ الحقول كعقد صريح.
- افصل التحكم والناتج والمصدر والسلطة.