প্রকল্প সম্পর্কে
Kubebuilder হলো Custom Resource Definitions (CRDs) ব্যবহার করে Kubernetes API তৈরির জন্য একটি ফ্রেমওয়ার্ক। Ruby on Rails এবং SpringBoot-এর মতো ওয়েব ডেভেলপমেন্ট ফ্রেমওয়ার্কের অনুরূপ, এটি Go-তে দ্রুত Kubernetes API তৈরি এবং প্রকাশের জন্য ডেভেলপারদের দ্বারা পরিচালিত জটিলতা হ্রাস করে এবং গতি বাড়ায়। এটি বয়লারপ্লেট এবং পরিশ্রম কমাতে সরল অ্যাবস্ট্রাকশন প্রদানের জন্য মূল Kubernetes API তৈরিতে ব্যবহৃত ক্যানোনিকাল কৌশলগুলির উপর নির্মিত।
Kubebuilder কপি-পেস্ট করার উদাহরণ হিসেবে বিদ্যমান নয়, বরং স্ক্র্যাচ থেকে Kubernetes API তৈরি এবং প্রকাশ সহজ করতে শক্তিশালী লাইব্রেরি এবং সরঞ্জাম প্রদান করে। এটি একটি প্লাগইন আর্কিটেকচার প্রদান করে যা ব্যবহারকারীদের ঐচ্ছিক হেল্পার এবং বৈশিষ্ট্যগুলি ব্যবহার করার সুযোগ দেয়।
Kubebuilder controller-runtime এবং controller-tools লাইব্রেরির উপর নির্মিত। এটি এক্সটেনসিবল এবং অন্যান্য প্রকল্পে লাইব্রেরি হিসেবে ব্যবহার করা যেতে পারে। Operator-SDK হলো এমন একটি প্রকল্পের ভালো উদাহরণ যা Kubebuilder-কে লাইব্রেরি হিসেবে ব্যবহার করে, প্লাগইন বৈশিষ্ট্য ব্যবহার করে Ansible এবং Helm-ভিত্তিক ভাষা অপারেটরগুলির মতো নন-Go অপারেটর অন্তর্ভুক্ত করে।
ফ্রেমওয়ার্কটি API তৈরির জন্য ডেভেলপার ওয়ার্কফ্লো সহজ করে: একটি নতুন প্রকল্প ডিরেক্টরি তৈরি করা, CRD হিসেবে এক বা একাধিক রিসোর্স API তৈরি করা, কন্ট্রোলারে reconcile লুপ বাস্তবায়ন করা, ক্লাস্টারের বিরুদ্ধে চালিয়ে পরীক্ষা করা, বুটস্ট্র্যাপড ইন্টিগ্রেশন টেস্ট আপডেট করা, এবং প্রদত্ত Dockerfile থেকে একটি কন্টেইনার তৈরি ও প্রকাশ করা।
Kubebuilder-এর পরিধি CRD, Controller এবং Admission Webhook ব্যবহার করে API তৈরি করা অন্তর্ভুক্ত। এর দর্শন হলো পরিষ্কার এবং সু-উদাহরণসহ 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.