OpenShift - Tekton

यह पृष्ठ एक विशेषाधिकार उन्नयन स्थिति दिखाता है जिसे माना जाता है कि क्लस्टर में टेक्टन स्थापित है और आप एक नेमस्पेस बना सकते हैं (कभी-कभी संपादन अधिकार काफी है)

इस पृष्ठ के मूल लेखक हैं Haroun

टेक्टन क्या है

दस्तावेज़ के अनुसार: टेक्टन एक शक्तिशाली और लचीला ओपन-सोर्स फ्रेमवर्क है जो सीआई/सीडी प्रणालियों को बनाने के लिए है, जो डेवलपर्स को क्लाउड प्रदाताओं और ऑन-प्रीमाइस सिस्टम पर बनाने, परीक्षण करने और डिप्लॉय करने की अनुमति देता है. जेंकिन्स और टेक्टन दोनों का उपयोग ऐप्लिकेशन का परीक्षण, निर्माण और डिप्लॉय करने के लिए किया जा सकता है, हालांकि टेक्टन क्लाउड नेटिव है।

टेक्टन के साथ सब कुछ YAML फ़ाइलों द्वारा प्रतिनिधित्व किया जाता है। डेवलपर्स Pipelines जैसे प्रकार के कस्टम संसाधन (CR) बना सकते हैं और उनमें कई Tasks निर्दिष्ट कर सकते हैं जिन्हें वे चलाना चाहते हैं। PipelineRun जैसे प्रकार के पाइपलाइन संसाधन को चलाने के लिए पाइपलाइन बनाए जाने चाहिए।

जब टेक्टन स्थापित होता है, तो हर नेमस्पेस में pipeline नामक एक सेवा खाता (sa) बनाया जाता है। जब एक पाइपलाइन चलाया जाता है, तो इस सेवा खाता का उपयोग करके एक पॉड उत्पन्न होगा जिसे pipeline कहा जाएगा ताकि यमल फ़ाइल में परिभाषित कार्यों को चलाए।

पाइपलाइन सेवा खाता क्षमताएँ

डिफ़ॉल्ट रूप से, पाइपलाइन सेवा खाता pipelines-scc क्षमता का उपयोग कर सकता है। यह टेक्टन की वैश्विक डिफ़ॉल्ट कॉन्फ़िगरेशन के कारण है। वास्तव में, टेक्टन की वैश्विक कॉन्फ़िग भी एक ओपनशिफ्ट ऑब्जेक्ट में एक यमल है जिसे TektonConfig कहा जा सकता है और यदि आपके पास क्लस्टर में कुछ पाठक भूमिकाएँ हैं तो आप इसे देख सकते हैं।

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "pipelines-scc"

गलत कॉन्फ़िगरेशन

समस्या यह है कि पाइपलाइन सेवा अकाउंट टोकन प्राप्त कर सकते हैं तो आप pipelines-scc का उपयोग कर सकते हैं।

उदाहरण के रूप में, अगर मैं निम्नलिखित yaml परिभाषा के साथ एक नेमस्पेस बना सकता हूँ:

apiVersion: v1
kind: Namespace
metadata:
name: test-namespace
annotations:
operator.tekton.dev/scc: privileged

सुधार

Tekton दस्तावेज़ बताते हैं कि TektonConfig ऑब्जेक्ट में एक लेबल जोड़कर scc के ओवरराइड को प्रतिबंधित कैसे किया जाए।

इस लेबल का नाम max-allowed है।

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "restricted-v2"
maxAllowed: "privileged"

Last updated