আমি https://github.com/kubernetes/client-go ব্যবহার করছি এবং সমস্ত ভাল কাজ করে।
আমার কাছে অফিসিয়াল কুবারনেটস ড্যাশবোর্ডের জন্য একটি প্রকাশ (ওয়াইএএমএল) রয়েছে: https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/rec सुझावed.yaml
আমি kubectl apply
ক্লায়েন্ট-গো ব্যবহার করে গো কোডে এই ম্যানিফেস্টের নকল করতে চাই ।
আমি বুঝতে পেরেছি যে প্যাকেজে সংজ্ঞায়িত সঠিক এপিআই প্রকারের জন্য আমার ওয়াইএএমএল বাইটের কিছু (আন) মার্শেলিং করতে হবে: https://github.com/kubernetes/api
আমি সফলভাবে Create
আমার ক্লাস্টারে একক এপিআই টাইপগুলি সম্পাদনা করেছি, তবে আমি কীভাবে এমন ম্যানিফেস্টের জন্য এটি করতে পারি যাতে একই ধরণের তালিকা নেই ? এমন কোনও সংস্থান আছে kind: List*
যা এই বিভিন্ন ধরণের সমর্থন করে?
আমার বর্তমান কাজটি হ'ল ডায়িমেটার csplit
হিসাবে --- এর সাহায্যে YAML ফাইলটি বিভক্ত করা
csplit /path/to/recommended.yaml /---/ '{*}' --prefix='dashboard.' --suffix-format='%03d.yaml'
এরপরে, আমি নতুন (14) অংশগুলি তৈরি করেছি যাগুলি তৈরি হয়েছিল, তাদের বাইটগুলি পড়ুন, ইউনিভার্সালডিজারিলাইজারের ডিকোডার দ্বারা ফিরে আসা সামগ্রীর ধরণটি স্যুইচ করুন এবং আমার কে 8 এস ক্লায়েন্টসেট ব্যবহার করে সঠিক এপিআই পদ্ধতি কল করুন।
আমি আমার ক্লাস্টারে ড্যাশবোর্ডের যে কোনও নতুন সংস্করণে আপডেট করার জন্য প্রোগ্রামগতভাবে এটি করতে চাই। আমি মেট্রিক্স সার্ভার এবং অন্যান্য অনেক সংস্থানগুলির জন্য এটিও করতে হবে। বিকল্প (সম্ভবত সহজ) পদ্ধতিটি হ'ল আমার কোডটি কনটেইনার ইমেজে ইনস্টল করা কুবেেক্টল সহ শিপিং করা এবং সরাসরি কল করা kubectl apply -f -
; তবে এর অর্থ হ'ল আমারও কিউব কনফিগারেশনটি ডিস্কে লিখতে হবে বা সম্ভবত এটি ইনলাইন পাস করতে হবে যাতে কুবেক্টেল এটি ব্যবহার করতে পারে।
আমি এই সমস্যাটিকে সহায়ক বলে মনে করেছি: https://github.com/kubernetes/client-go/issues/193 ডিকোডারটি এখানে বেঁচে থাকে: https://github.com/kubernetes/apimach مشين/tree/master/pkg/runtime/ serializer
এটি ক্লায়েন্ট-গো-এ প্রকাশিত হয়েছে: https://github.com/kubernetes/client-go/blob/master/kubernetes/scheme/register.go#L69
আমি রানাক্রন্ট পদ্ধতিটিও দেখেছি যা কুবেটেল দ্বারা ব্যবহৃত হয়: https://github.com/kubernetes/kubernetes/blob/master/pkg/kubectl/cmd/convert/convert.go#L139 এবং ধরে নিই যে আমি আমার নিজস্ব জেনেরিক্লিপশন সরবরাহ করতে পারে? আউটপুট পেতে আইওএস স্ট্রিম ?
দেখে মনে হচ্ছে রানকনভার্ট অবমূল্যায়নের পথে রয়েছে
আমি ট্যাগ হওয়া অন্যান্য প্রশ্নগুলিও দেখেছি [ক্লায়েন্ট-গো] তবে বেশিরভাগ পুরানো উদাহরণ ব্যবহার করে বা একক kind
সংজ্ঞায়িত একটি ওয়াইএএমএল ফাইল ব্যবহার করে , এবং এপিআইপি পরিবর্তিত হয়েছে changed
সম্পাদনা: যেহেতু আমার একাধিক ক্লাস্টারের জন্য এটি করা প্রয়োজন এবং প্রোগ্রামগতভাবে ক্লাস্টারগুলি তৈরি করা হচ্ছে ( এডাব্লুএস ইকেএস এপিআই + ক্লাউডফর্মেশন / একসেক্টল ), তাই আমি অনেকগুলি এডাব্লুএসServiceAccount
অ্যাকাউন্টগুলিতে অনেকগুলি ক্লাস্টার প্রসঙ্গটি তৈরি করে ওভারহেডকে ছোট করতে চাই । আদর্শভাবে, আমার ক্লায়েন্টসেট তৈরির সাথে জড়িত একমাত্র প্রমাণীকরণের পদক্ষেপটি ক্লাস্টার ডেটা (নাম, অঞ্চল, সিএ সার্টি, ইত্যাদি) ব্যবহার করে টোকেন পেতে অ্যাউস - আইএএম -প্রমাণীকরণকারী ব্যবহার করে। কিছুক্ষণের জন্য অ্যাউস-আইএএম-প্রমাণীকরণকারীর মুক্তি প্রকাশ হয়নি, তবে master
তৃতীয় পক্ষের ভূমিকা ক্রস-অ্যাকাউন্ট ভূমিকা এবং বাহ্যিক আইডি ব্যবহারের অনুমতি দেওয়ার বিষয়বস্তুগুলি পাস করার জন্য। আইএমও, এটি ServiceAccount
(এবং আইআরএসএ) ব্যবহার করার চেয়ে পরিষ্কার) কারণ অন্যান্য এডাব্লুএস পরিষেবা রয়েছে অ্যাপ্লিকেশন (এই ক্লাস্টারে অ্যাড-অন তৈরি করে এবং প্রয়োগ করে এমন ব্যাকএন্ড এপিআই) এর সাথে ইন্টারঅ্যাক্ট করতে হবে needs
সম্পাদনা: আমি সম্প্রতি https://github.com/ericchiang/k8s পেয়েছি । উচ্চ-স্তরের ক্লায়েন্ট-গো-এর চেয়ে এটি অবশ্যই স্পষ্টভাবে সহজ, তবে এই আচরণটি সমর্থন করে না।
^---$
এবং আপনার কোডে বিভক্ত হন না?