इस प्रोजेक्ट के बारे में
kestractl एक Go-आधारित कमांड-लाइन इंटरफ़ेस है जो Kestra वर्कफ़्लो और संबंधित संसाधनों के प्रबंधन के लिए है। यह Kestra 2.x को लक्षित करता है (v1 रिलीज़ के साथ पूरा Kestra 1.x फीचर सेट कवर होता है) और e2e मैट्रिक्स के माध्यम से Kestra 2.0, 1.3, 1.2, 1.1, और 1.0 के विरुद्ध परीक्षण किया जाता है; संगतता के लिए स्रोत सत्य COMPATIBLE_KESTRA_VERSION.properties है।
स्थापना एक सुविधा स्क्रिप्ट (curl | bash) के माध्यम से प्रदान की जाती है जो GitHub REST API के माध्यम से नवीनतम रिलीज़ को हल करती है, GitHub Releases से सीधे बाइनरी डाउनलोड, Docker Hub और GHCR (Alpine और distroless वेरिएंट) पर प्रकाशित मल्टी-आर्क कंटेनर छवियाँ, या Go 1.25+ के साथ स्रोत से निर्माण करके। इंस्टॉल स्क्रिप्ट VERSION और INSTALL_DIR ओवरराइड स्वीकार करती है, और अनाम दर सीमा से बचने के लिए GITHUB_TOKEN के साथ GitHub API कॉल को प्रमाणित कर सकती है।
कॉन्फ़िगरेशन ~/.kestractl/config.yaml में संग्रहीत कई नामित संदर्भों (dev, staging, prod) का समर्थन करता है, टोकन या बेसिक प्रमाणीकरण, वैकल्पिक स्थायी HTTP हेडर, और डिफ़ॉल्ट संदर्भ चयनकर्ता के साथ। कॉन्फ़िगरेशन प्राथमिकता 12-कारक मॉडल का पालन करती है: कमांड-लाइन फ़्लैग, फिर KESTRACTL_* पर्यावरण चर, फिर कॉन्फ़िगरेशन फ़ाइल, फिर डिफ़ॉल्ट। वैश्विक फ़्लैग में --host, --token, --username/--password, --tenant, --header, --output (table या json), --config, और --verbose शामिल हैं।
कमांड समूह Kestra API की व्यापकता को कवर करते हैं। फ्लो: list, list-by-namespace, list-deprecated, get, task, deploy (एकल फ़ाइल या निर्देशिका, --namespace, --override, --fail-fast के साथ), validate (स्थानीय फ़ाइल, निर्देशिका, या संग्रहीत फ्लो के विरुद्ध validate-by-query), validate-task, validate-trigger, search-by-source, bulk-update, generate-graph-from-source, graph, expressions, namespace-dependencies, dependencies, enable/disable, delete, delete-by-query, disable-by-query, enable-by-query, export (namespace, by-ids, by-query), import, namespace-sync, revisions, delete-revisions, concurrency-limits, update-concurrency। एक usage-report कमांड 1.x से 2.0 माइग्रेशन सत्यापित करने में मदद करता है, और validate-by-query उल्लंघनों पर गैर-शून्य निकास करता है ताकि यह CI गेट के रूप में काम कर सके।
निष्पादन: run (--wait के साथ), get, list, watch (वास्तविक समय में अनुसरण करता है और विफलता पर गैर-शून्य निकास), latest, kill, pause, resume, restart, force-run, replay, replay-with-inputs, unqueue, set-labels, set-labels-bulk, unqueue-bulk, change-status-by-ids, kill-by-query, pause-by-query, resume-by-query, restart-by-query, replay-by-query, force-run-by-query, delete-by-query, unqueue-by-query, set-labels-by-query, update-status-by-query, trigger-webhook (GET/POST/PUT वैकल्पिक पाथ सफ़िक्स के साथ), flow-graph, flow-info, flow-info-by-id, download-file, file-metadata, eval-expression, change-status, update-taskrun, delete। क्वेरी फ़िल्टर FIELD:OPERATION:VALUE फ़ॉर्म का उपयोग करते हैं (जैसे STATE:EQUALS:RUNNING)।
ट्रिगर: list, search-for-flow, enable, disable, unlock, restart, update, delete, साथ ही IDs (namespace/flowId/triggerId) द्वारा और क्वेरी द्वारा बल्क वेरिएंट, और बैकफ़िल प्रबंधन (create-backfill --start/--end के साथ, backfill-pause, backfill-unpause, backfill-delete, और उनके by-ids और by-query वेरिएंट)। ट्रिगर को CSV के रूप में भी निर्यात किया जा सकता है।
नेमस्पेस: list, list --query के साथ, autocomplete, get, create, update, delete, साथ ही दोहराने योग्य --variable या --variables-file के माध्यम से नेमस्पेस वेरिएबल सेट करना, और inherited-secrets और inherited-variables देखना।
की-वैल्यू स्टोर: list, set, update, get, delete, समर्थित प्रकार STRING, NUMBER, BOOLEAN, DATETIME, DATE, DURATION, JSON, और वैकल्पिक ISO 8601 --ttl के साथ।
नेमस्पेस फ़ाइलें: list (--path और --recursive के साथ), get (--revision के साथ), upload (एकल फ़ाइल या निर्देशिका, --override, --fail-fast, --allow-missing-namespace के साथ), delete (--recursive और --force के साथ)।
प्लगइन: किसी दिए गए Kestra संस्करण के लिए सभी प्लगइन JAR को लक्ष्य निर्देशिका में डाउनलोड करें, समानांतर डाउनलोड के लिए --concurrency के साथ, और --from-config के साथ एक स्टैंडअलोन या रिमोट वर्कर को बूटस्ट्रैप करने के लिए केवल Kestra application.yaml (आंतरिक स्टोरेज, सीक्रेट मैनेजर, क्यू/रिपॉज़िटरी बैकएंड) द्वारा आवश्यक कोर प्लगइन खींचकर। एक list कमांड डाउनलोड किए बिना आवश्यक कोर प्लगइन का पूर्वावलोकन करता है।
वर्कर: registration-tokens किसी Kestra इंस्टेंस के बिना वर्कर पंजीकरण टोकन उत्पन्न करने के लिए ऑफ़लाइन चलता है।
डैशबोर्ड (एंटरप्राइज़ संस्करण): list, get, YAML से create, update, और संबंधित प्रबंधन कमांड।
अतिरिक्त समूह apps, blueprints, test suites, और IAM (उपयोगकर्ता, समूह, भूमिकाएँ, सेवा खाते, बाइंडिंग, निमंत्रण) को कवर करते हैं।
परिचालन विवरण: kestractl अनाम टेलीमेट्री भेजता है जो कमांड निष्पादन को कभी अवरुद्ध नहीं करता और KESTRACTL_TELEMETRY_DISABLED=true के साथ अक्षम किया जा सकता है। अपडेट सूचनाएँ ~/.kestractl/check_for_new_available_version.json में 24 घंटे के लिए कैश की जाती हैं, कमांड के साथ एसिंक्रोनस रूप से चलती हैं, CI और डेव बिल्ड पर छोड़ी जाती हैं, और KESTRACTL_VERSION_CHECK_DISABLED=true के साथ अक्षम की जा सकती हैं। कंटेनर छवियाँ गैर-रूट उपयोगकर्ता के रूप में चलती हैं, इसलिए कॉन्फ़िगरेशन फ़ाइलें /home/kestractl/.kestractl (Alpine) या /home/nonroot/.kestractl (static) पर माउंट की जानी चाहिए। GitLab CI और GitHub Actions कंटेनर जॉब एंट्रीपॉइंट को ओवरराइड करते हैं और शेल के माध्यम से स्क्रिप्ट चलाते हैं, इसलिए वहाँ डिफ़ॉल्ट Alpine टैग अनुशंसित है; -static टैग में कोई शेल नहीं है और केवल docker run या kubectl run शैली के आह्वान के साथ काम करता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.