ArgoCD संसाधन हुक।
E2E सेटअप में मदद मिली
हुक के लिए कुछ उपयोग के मामले हैं:
ए- ऐप के नए संस्करण को तैनात करने से पहले, डेटाबेस स्कीमा माइग्रेशन करने के लिए प्रीसिंक हुक का उपयोग करें।
बी- कुबेरनेट्स रोलिंग अपडेट रणनीति की तुलना में अधिक परिष्कार की आवश्यकता वाले जटिल परिनियोजन को व्यवस्थित करने के लिए सिंक हुक का उपयोग करना ।
सी- तैनाती के बाद, एकीकरण और स्वास्थ्य जांच चलाने के लिए पोस्टसिंक हुक का उपयोग करें।
डी- यदि कोई सिंक ऑपरेशन विफल हो जाता है, तो क्लीनअप या फ़ाइनलाइज़र लॉजिक चलाने के लिए सिंकफ़ेल हुक का उपयोग करें। सिंकफ़ेल के लिए हुक केवल v1.2 में उपलब्ध हैं
मेरे उपयोग के मामले में -
मुझे एक एंड-2-एंड सेटअप बनाने की आवश्यकता है, जिसका अर्थ है कि ArgoCD के माध्यम से एक सेवा को तैनात करने और यह सुनिश्चित करने के बाद कि पॉड चालू हैं, मुझे अपनी CI/CD प्रक्रिया को पूरा करने के लिए तुरंत यूनिट परीक्षण चलाने की आवश्यकता है।
परिणामस्वरूप, PostSync हुक मेरे उपयोग के मामले में उपयुक्त है।
तो, इस ब्लॉग में, हम PostSync हुक कॉन्फ़िगरेशन पर चर्चा करेंगे।
बस नीचे दी गई फ़ाइल को एक बार पढ़ लें।
1 apiVersion: batch/v1
2 kind: Job
3 metadata:
4 name: ms-echoserver-Unit-test-trigger
5 annotations:
6 argocd.argoproj.io/hook: PostSync
7 argocd.argoproj.io/hook-delete-policy: HookSucceeded
8 spec:
9 template:
10 metadata:
11 labels:
12 name: unit-test
13 spec:
14 containers:
15 - name: unit-test
16 args:
17 - /bin/sh
18 - -ec
19 - "curl --location --request POST \"https://api.buildkite.com/v2/organizations/example/pipelines/unit-test/builds\" --header \"Authorization: Bearer ${GITHUB_TOKEN}\" --header \"Content-Type: application/json\"
20 --data-raw '{
21 \"commit\": \"HEAD\",
22 \"branch\": \"main\",
23 \"message\": \"Triggered by ArgoCD post deployment of ms-echoserver :rocket:\"
24 }'"
25 env:
26 - name: GITHUB_TOKEN
27 valueFrom:
28 secretKeyRef:
29 name: ms-echoserver-secret
30 key: token
31
32 image: curlimages/curl
33 restartPolicy: Never
34 backoffLimit: 0
पंक्ति 2 - प्रकार: नौकरी
मैं इसे एक तरह की नौकरी के रूप में चला रहा हूं क्योंकि प्रत्येक सफल सेवा परिनियोजन के बाद ही इसकी आवश्यकता होती है, और एक बार जब यह चालू हो जाता है, तो नौकरी का कार्य पूरा हो जाता है, इसलिए मेरे मामले में तरह: नौकरी सही प्रकार है।
पंक्ति 6: argocd.argoproj.io/hook: PostSync [हुक एनोटेशन]
पंक्ति 7: argocd.argoproj.io/hook-delete-policy: HookSucceeded
[एक बार हुक चालू हो गया और काम पूरा हो गया, तो इसे हटा दिया जाएगा।]
पंक्ति 19: कर्ल कमांड
अपनी आवश्यकताओं के अनुरूप कर्ल कमांड संपादित करें। मेरी स्थिति में, मैं अपना यूनिट परीक्षण शुरू करने के लिए बिल्डकाइट टूल का उपयोग करता हूं।
curl --location --request POST \"https://api.buildkite.com/v2/organizations/example/pipelines/unit-test-pipeline/builds\" --header \"Authorization: Bearer ${GITHUB_TOKEN}\" --header \"Content-Type: application/json\"
डॉकर फ़ाइल-
FROM alpine:3.15
RUN apk add --no-cache bash curl jq
ENTRYPOINT ["/bin/bash"]
युक्ति:- कोई भी सॉफ़्टवेयर या टूल इंस्टॉल करने से बचें जिसकी आपको आवश्यकता नहीं है; इससे आपको सुरक्षा बनाए रखने में मदद मिलेगी.
आप यूनिट परीक्षणों की अपनी पाइपलाइन की स्थिति इस प्रकार देख सकते हैं:
मुझे क्लिक करें-
ArgoCD उच्च उपलब्धता (HA) [उत्पादन के लिए तैयार]।
मुझे आशा है कि यह पोस्ट आपके लिए जानकारीपूर्ण और उपयोगी है :)
मेरे द्वारा एक कॉफ़ी ← — — — यदि आप ब्लॉग का आनंद लेते हैं, तो कृपया मुझे एक क्लैप दें :) और इस तरह की और सामग्री के लिए मुझे फ़ॉलो करें ।
आपकी तालियाँ मुझे ऐसे ब्लॉग लिखने के लिए प्रेरित करती हैं।

![क्या एक लिंक्ड सूची है, वैसे भी? [भाग 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































