منصوبے کے بارے میں
Kubebuilder ایک فریم ورک ہے جو کسٹم ریسورس ڈیفینیشنز (CRDs) کا استعمال کرتے ہوئے Kubernetes APIs بنانے کے لیے ہے۔ ویب ڈیولپمنٹ فریم ورکس جیسے Ruby on Rails اور SpringBoot کی طرح، یہ رفتار بڑھاتا ہے اور Go میں Kubernetes APIs تیزی سے بنانے اور شائع کرنے کے لیے ڈیولپرز کے زیر انتظام پیچیدگی کو کم کرتا ہے۔ یہ بنیادی Kubernetes APIs بنانے کے لیے استعمال ہونے والی معیاری تکنیکوں پر استوار ہے تاکہ سادہ تجرید فراہم کیے جا سکیں جو بوائلر پلیٹ اور مشقت کو کم کریں۔
Kubebuilder کاپی پیسٹ کرنے کے لیے ایک مثال کے طور پر موجود نہیں ہے، بلکہ یہ شروع سے Kubernetes APIs بنانے اور شائع کرنے کو آسان بنانے کے لیے طاقتور لائبریریاں اور ٹولز فراہم کرتا ہے۔ یہ ایک پلگ ان فن تعمیر فراہم کرتا ہے جس سے صارفین اختیاری مددگاروں اور خصوصیات سے فائدہ اٹھا سکتے ہیں۔
Kubebuilder کو کنٹرولر-رن ٹائم اور کنٹرولر-ٹولز لائبریریوں کی بنیاد پر تیار کیا گیا ہے۔ یہ توسیع پذیر بھی ہے اور اسے دوسرے پروجیکٹس میں لائبریری کے طور پر استعمال کیا جا سکتا ہے۔ Operator-SDK ایک اچھی مثال ہے جس میں Kubebuilder کو لائبریری کے طور پر استعمال کیا جاتا ہے، جس میں پلگ ان فیچر کا استعمال کرتے ہوئے غیر Go آپریٹرز جیسے Ansible اور Helm پر مبنی لینگویج آپریٹرز شامل کیے جاتے ہیں۔
یہ فریم ورک APIs بنانے کے لیے ڈیولپر ورک فلو کو سہولت فراہم کرتا ہے: نیا پروجیکٹ ڈائریکٹری بنانا، ایک یا زیادہ ریسورس APIs کو CRDs کے طور پر بنانا، کنٹرولرز میں ری کنسائل لوپس کو نافذ کرنا، کلسٹر کے خلاف چلا کر جانچ کرنا، بوٹ اسٹریپڈ انٹیگریشن ٹیسٹ کو اپ ڈیٹ کرنا، اور فراہم کردہ Dockerfile سے کنٹینر بنانا اور شائع کرنا۔
Kubebuilder کا دائرہ CRDs، کنٹرولرز، اور ایڈمیشن ویب ہکس کا استعمال کرتے ہوئے APIs بنانے پر محیط ہے۔ اس کا فلسفہ واضح اور اچھی طرح سے مثالوں والے Go دستاویزات کے ساتھ صاف لائبریری تجرید فراہم کرنے پر زور دیتا ہے، کوڈ جنریشن پر انٹرفیس اور لائبریریوں کو ترجیح دیتا ہے، ایک بار کے اسٹبس کے ابتداء پر کوڈ جنریشن کو ترجیح دیتا ہے، اور فورک اور تبدیل شدہ بوائلر پلیٹ پر ایک بار کے ابتداء کو ترجیح دیتا ہے۔
Kubebuilder کم سطح کی کلائنٹ لائبریریوں کے اوپر اعلیٰ سطح کی لائبریریاں فراہم کرتا ہے تاکہ ڈیولپرز کو تبدیلیوں سے محفوظ رکھا جا سکے، کم سے کم شروع کرتا ہے اور فعالیت کی بتدریج دریافت فراہم کرتا ہے، اور معقول ڈیفالٹس فراہم کرتا ہے جو صارفین کو موجود ہونے پر اوور رائیڈ کرنے کی اجازت دیتے ہیں۔ یہ عام بوائلر پلیٹ کو برقرار رکھنے کے لیے // + تبصروں پر مبنی کوڈ جنریٹر بھی فراہم کرتا ہے، اور نئے پیکجز شروع کرنے کے لیے بوٹ اسٹریپنگ کمانڈز فراہم کرتا ہے۔
Kubebuilder کے بنائے گئے پروجیکٹس میں ایک Makefile ہوتا ہے جو پروجیکٹ بنانے کے دوران طے شدہ ورژنز پر ٹولز انسٹال کرتا ہے، بشمول kustomize، controller-gen، اور setup-envtest۔ مطلوبہ کم از کم Go ورژن اس کے انحصار کے ذریعہ درکار سب سے زیادہ کم از کم Go ورژن سے طے ہوتا ہے۔
Kubebuilder سرکاری طور پر macOS اور Linux پلیٹ فارمز کو سپورٹ کرتا ہے۔ یہ Kubernetes SIGs کمیونٹی کے ذریعہ تیار کیا گیا ہے اور شراکت کے لیے عام GitHub پل ریکویسٹ ماڈل کی پیروی کرتا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.