इस प्रोजेक्ट के बारे में
Kubebuilder एक फ्रेमवर्क है जो Custom Resource Definitions (CRDs) का उपयोग करके Kubernetes APIs बनाने के लिए है। Ruby on Rails और SpringBoot जैसे वेब डेवलपमेंट फ्रेमवर्क की तरह, यह Go में Kubernetes APIs को तेज़ी से बनाने और प्रकाशित करने के लिए डेवलपर्स द्वारा प्रबंधित जटिलता को कम करता है और गति बढ़ाता है। यह मुख्य Kubernetes APIs बनाने के लिए उपयोग की जाने वाली मानक तकनीकों पर आधारित है ताकि सरल अमूर्तताएँ प्रदान की जा सकें जो बॉयलरप्लेट और श्रम को कम करें।
Kubebuilder कॉपी-पेस्ट करने के उदाहरण के रूप में मौजूद नहीं है, बल्कि शुरू से Kubernetes APIs बनाने और प्रकाशित करने को सरल बनाने के लिए शक्तिशाली लाइब्रेरीज़ और टूल्स प्रदान करता है। यह एक प्लगइन आर्किटेक्चर प्रदान करता है जिससे उपयोगकर्ता वैकल्पिक हेल्पर्स और सुविधाओं का लाभ उठा सकते हैं।
Kubebuilder controller-runtime और controller-tools लाइब्रेरीज़ के ऊपर विकसित किया गया है। यह वि्तारणीय भी है और इसे अन्य प्रोजेक्ट्स में लाइब्रेरी के रूप में उपयोग किया जा सकता है। Operator-SDK एक अच्छा उदाहरण है जो Kubebuilder को लाइब्रेरी के रूप में उपयोग करता है, प्लगइन सुविधा का उपयोग करके Ansible और Helm-आधारित भाषा Operators जैसे गैर-Go परेटरों को शामिल करता है।
यह फ्रेमवर्क APIs बनाने के लिए डेवलपर वर्कफ़्लो को सुविधाजनक बनाता है: एक नया प्रोजेक्ट डायरेक्टरी बनाना, CRDs के रूप में एक या अधिक रिसोर्स APIs बनाना, कंट्रोलर्स में reconcile लूप्स को लागू करना, क्लस्टर के विरुद्ध चलाकर परीक्षण करना, बूटस्ट्रैप्ड इंटीग्रेशन टेस्ट को अपडेट करना, और प्रदान किए गए Dockerfile से कंटेनर बनाना और प्रकाशित करना।
Kubebuilder का दायरा CRDs, Controllers, और Admission Webhooks का उपयोग करके APIs बनाने को कवर करता है। इसका दर्शन स्पष्ट और अच्छी तरह से उदाहरण सहित Go डॉक्स के सा स्वच्छ लाइब्रेरी अमूर्तताएँ प्रदान करने पर जोर देता है, कोड जनरेशन की तुलना में इंटरफेस और लाइब्रेरीज़ को प्राथमिकता देता है, स्टब्स के एक-बार init की तुलना में कोड जनरेशन को, और फोर्क किए गए और संशोधित बॉयलरप्लेट की तुलना में एक-बार init को।
Kubebuilder निम्न-स्तरीय क्लाइंट लाइब्रेरीज़ के ऊपर उच्च-स्तरीय लाइब्रेरीज़ प्रदान करता है ताकि डेवलपर्स को ब्रेकिंग चेंजेज़ से बचाया जा सके, न्यूनतम से शुरू होता है और कार्यक्षमता की प्रगतिशील खोज प्रदान करता है, और उचित डिफ़ॉल्ट प्रदान करता है जिन्हें उपयोगकर्ता ओवरराइड कर सकते हैं जब वे मौजूद हों। यह // + कमेंट्स पर आधारित कोड जनरेटर भी प्रदान करता है ताकि सामान्य बॉयलरप्लेट बनाए रखी जा सके, और नए पैकेजों को आरंभ करने के लिए बूटस्ट्रैपिंग कमांड्स।
Kubebuilder द्वारा बनाए गए प्रोजेक्ट्स में एक Makefile होता है जो प्रोजेक्ट निर्माण के दौरान परिभाषित संस्करणों पर टूल्स इंस्टॉल करता है, जिनमें kustomize, controller-gen, और setup-envtest शामिल हैं। आवश्यक न्यूनतम Go संस्करण इसकी निर्भरताओं द्वारा आवश्यक उच्चतम न्यूनतम Go संस्करण द्वारा निर्धारित किया जाता है।
Kubebuilder आधिकारिक तौर पर macOS और Linux प्लेटफॉर्म्स का समर्थन करता है। इसे Kubernetes SIGs समुदाय द्वारा विकसित किया गया है और योगदान के लिए सामान्य GitHub pull request मॉडल का पालन करता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.