AgentBaker هي مجموعة من المكونات المستخدمة لتوفير العقد Kubernetes في Azure.
لدى Agentbaker بضع قطع
المستهلك الأساسي لـ AgentBaker هو خدمة Azure Kubernetes (AKs).
يستخدم AKS AgentBaker لتوفير عقد Linux و Windows Kubernetes.
يتطلب تطوير AgentBaker بعض المتطلبات الأساسية:
قم بتشغيل make -C hack/tools install لتثبيت جميع أدوات التطوير.
إذا قمت بتغيير التعليمات البرمجية أو القطع الأثرية المستخدمة لإنشاء بيانات مخصصة أو حمولات ملحق نص مخصصة ، فيجب عليك تشغيل make .
يعيد رمز إعادة التشغيل هذا لتضمين الملفات الثابتة في رمز GO ، وهو ما سيتم استخدامه بالفعل في وقت التشغيل.
يعمل هذا بالإضافة إلى ذلك على اختبارات الوحدة (أي ما يعادل go test ./... ) وتجديد لقطة TestData.
نستخدم Golangci-lint لفرض الأناقة.
قم بتشغيل make -C hack/tools install لتثبيت Linter.
Run ./hack/tools/bin/golangci-lint run لتشغيل Linter.
لدينا حاليًا العديد من الإخفاقات التي نأمل في القضاء عليها.
لدينا وظيفة لتشغيل Golangci-lint على طلبات السحب.
تستخدم هذه المهمة ميزة "المبيدات الجديدة".
طالما أن PRS لا تقدم مشكلات جديدة صافية ، يجب أن تمر.
لدينا أيضًا وظيفة لتصوير أسلوب الالتزام.
نلتزم بالالتزامات التقليدية.
تفضل طلبات السحب مع الالتزامات الفردية.
لتنظيف الالتزامات داخل progress ، يمكنك استخدام git rebase -i to fixup ارتباط.
انظر وثائق GIT لمزيد من التفاصيل.
قد يتم اختبار معظم التعليمات البرمجية مع اختبارات وحدة الفانيليا GO.
يرجى زيارة رابط جيثب الرسمي لمزيد من التفاصيل. فيما يلي حالة استخدام موجزة.
يتم استخدام Shellspec كإطار لاختبار الوحدة. هناك خياران لتثبيته.
تم تضمين Shellspec بالفعل في Makefile. يمكنك تثبيته ببساطة عن طريق تشغيل make tools-install أو make generate في دليل الجذر (/AgentBaker).
ملاحظة: make generate وتشغيل اختبارات shellspec.
إذا كنت ترغب في تثبيته في جهازك المحلي ، فيرجى تشغيل curl -fsSL https://git.io/shellspec | sh .
بشكل افتراضي ، يجب تثبيته في ~/.local/lib/shellspec . يرجى إلحاقها بمسار $ لراحتك. مثال مسار export PATH=$PATH:~/.local/lib/shellspec .
ستحتاج إلى كتابة ملف xxx_spec.sh للاختبار.
على سبيل المثال ، AgentBaker/spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh هو ملف اختبار لـ AgentBaker/parts/linux/cloud-init/artifacts/cse_install.sh
لتشغيل جميع الاختبارات ، في مجلد AgentBaker ، ما عليك سوى تشغيل bash ./hack/tools/bin/shellspec في دليل الجذر (/AgentBaker).
bash ./hack/tools/bin/shellspec -x => مع -x ، وسيظهر تتبعًا مطوّلاً للتصحيح.bash ./hack/tools/bin/shellspec -E "<test name>" => يمكنك تشغيل حالة اختبار واحدة باستخدام -E واسم الاختبار. على سبيل المثال ، bash ./hack/tools/bin/shellspec -E "returns downloadURIs.ubuntu."r2004".downloadURL of package runc for UBUNTU 20.04" يمكنك أيضًا القيام -xE لتتبع المطوّل لحالة اختبار واحدة.bash ./hack/tools/bin/shellspec "path to xxx_spec.sh" => من خلال توفير مسار كامل ملف مواصفات معين ، يمكنك تشغيل ملف المواصفات هذا بدلاً من جميع ملفات المواصفات في مشروع AgentBaker. على سبيل المثال ، bash ./hack/tools/bin/shellspec "spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh" لدينا أيضًا اختبارات بيانات لقطة ، والتي تخزن إخراج واجهات برمجة التطبيقات الرئيسية كملفات على القرص.
يمكننا التحقق يدويًا من محتوى اللقطة يبدو صحيحًا.
لدينا الآن اختبارات وحدة يمكنها التحقق من صحة المحتوى مباشرة دون ترك ملفات تم إنشاؤها على القرص.
انظر ./pkg/agent/baker_test.go للحصول على أمثلة (ابحث عن dynamic-config-dir لرؤية عينة التحقق من الصحة.).
الخروج إلى دليل E2E.
يرحب هذا المشروع بالمساهمات والاقتراحات. تطلب منك معظم المساهمات الموافقة على اتفاقية ترخيص المساهم (CLA) مع إعلان أن لديك الحق في ذلك في الواقع ، ويفعلنا في الواقع حقوق استخدام مساهمتك. لمزيد من التفاصيل ، تفضل بزيارة https://cla.opensource.microsoft.com.
عند إرسال طلب سحب ، سيحدد CLA Bot تلقائيًا ما إذا كنت بحاجة إلى توفير CLA وتزيين العلاقات العامة بشكل مناسب (على سبيل المثال ، فحص الحالة ، التعليق). ببساطة اتبع الإرشادات التي يقدمها الروبوت. ستحتاج فقط إلى القيام بذلك مرة واحدة عبر جميع عمليات إعادة الشراء باستخدام CLA لدينا.
اعتمد هذا المشروع رمز سلوك المصدر المفتوح Microsoft. لمزيد من المعلومات ، راجع مدونة الشهادة الأسئلة الشائعة أو الاتصال بـ [email protected] مع أي أسئلة أو تعليقات إضافية.
ملف CGManifest هو ملف JSON يستخدم لتسجيل المكونات يدويًا عندما لا يتم دعم نوع المكون بواسطة الحوكمة. اسم الملف هو "cgmanifest.json" ويمكنك الحصول على أكبر عدد ممكن من الحاجة ويمكن أن تكون في أي مكان في مستودعك.
مسار الملف: ./vhdbuilder/cgmanifest.json
المرجع: https://docs.opensource.microsoft.com/tools/cg/cgmanifest.html
طَرد: