كيفية نشر الطائرة بدون طيار CI إلى Kubernetes

استكمال: بعد كتابة هذا المنشور ، تم إنشاء مخطط دفة لتسهيل تثبيت Drone ، يمكنك التحقق من ذلك هنا.

الطائرة بدون طيار هو CI مفتوح المصدر رهيبة مكتوب في Golang.

يمكنك تثبيته باستخدام عامل إنشاء يؤلف بعد مستندات الرسمية. لكن بما أنني في حالة حب مع Kubernetes ، فقد أردت نشرها للاستفادة أيضًا من الشفاء الذاتي وذهول k8s.

إنشاء تطبيق Github OAuth

سأفترض أنك سترغب في استخدام Github للمصادقة على مثيل الطائرة بدون طيار. لذلك دعونا نمضي قدما وتكوينه:

  • انتقل إلى حساب جيثب الخاص بك
  • انقر على أيقونة ملفك الشخصي واختر الإعدادات
  • حدد تطبيقات OAuth في قائمة اليسار (نفس الشيء بالنسبة للمؤسسات ، ولكن داخل ملف تعريف المؤسسة)
  • انقر فوق الزر لتطبيق جديد
  • املأ الحقول بعنوان url الذي تريده
  • بالنسبة للحقل الأخير ، أضف / أذن في نهاية عنوان url
  • الحصول على العميل والسر ولدت

الخادم

يجب أن يكون لديك نظام kubernetes قيد التشغيل ، إذا لم يكن لديك حتى الآن أوصي باستخدام Google Cloud Platform (GCP) لأنه سيدير ​​نظام kubernetes لك.

لنشر الخادم ، سنستخدم خدمة نشر Kubernetes والخدمة على النحو التالي:

تحتاج إلى تحديث محتوى بعض vv env بناءً على السياق الخاص بك ، لذا تابع وتغيير كل سياق CHANGE_ME. يمكنك أيضًا إضافة متغير DRONE_ORGS لإعلام أنه لا يمكن الوصول إليه إلا للأشخاص من مؤسسة Github معينة.

لنشرها فقط قم بتشغيل:

تطبيق kubectl -f server-publish.yml

لاكتشاف تشغيل العنوان:

kubectl الحصول على الخدمات -W

إذا كنت تشاهد رسالة <معلق> ، فسيظهر عنوان IP الخارجي.

الوصول إليها وخادم voila بدون طيار هو ما يصل! ولكن حتى هنا نشير إلى أننا لا نستطيع بناء أي شيء حتى الآن.

العميل

من أجل تشغيل البنيات الخاصة بك ، نحتاج إلى نشر الوكيل بدون طيار أيضًا ، لتحقيق ذلك ، سنستخدم أيضًا نشر Kubernetes:

حدّث DRONE_SECRET ليكون هو نفسه الذي استخدمته على الخادم ونشره:

 kubectl تطبيق -f agent-publish.yml

إعداد DNS

لإجراء اتصال بين Github و Drone نحتاج إلى تكوين DNS ، سيعتمد ذلك على النظام الأساسي الذي تستخدمه.

في GCP ، انتقل إلى المشروع الخاص بك ، ثم خدمات الشبكة> Cloud DNS. قم بتكوين سجل A لتوجيه عنوان IP إلى خادم Drone.

تأكد من إضافة سجلات NS لتوجيه سجلات DNS إلى برنامج "شركاء Google المعتمدون".

اخرج من المبنى!

قم بالوصول إلى خادم CI الجديد الخاص بك ، والاشتراك باستخدام حساب Github الخاص بك ، وقم بتنشيط المستودع الذي تريد دمجه باستمرار.

كل ما عليك فعله الآن هو إضافة ملف .drone.yml إلى مشروعك. يستخدم هذا الملف طريقة نظيفة ومباشرة لتكوين خط أنابيب الإنشاء ، لأن مشروع Ruby البسيط سيكون مشابهًا لما يلي:

انظر إلى هذا الجمال

ادفع الالتزام الجديد إلى الريبو واستمتع بمشاهدة التصميم الخاص بك في Drone CI.

استمتع بدون طيار!