ઓપનશિફ્ટ રૂટ્સમાં TLS પ્રમાણપત્રોને ગતિશીલ રીતે કેવી રીતે એકીકૃત કરવું
એપ્લિકેશનો જમાવતી વખતે, TLS પ્રમાણપત્રોનું સુરક્ષિત અને અસરકારક રીતે સંચાલન કરવું મહત્વપૂર્ણ છે. ઓપનશિફ્ટ જેવા સેટઅપ્સમાં, જ્યાં રહસ્યો કોડ રિપોઝીટરીને બદલે સુરક્ષિત વૉલ્ટમાં રહી શકે છે, પડકાર આ રહસ્યોને ડિપ્લોયમેન્ટ મેનિફેસ્ટમાં ગતિશીલ રીતે એકીકૃત કરવાનો છે.
કલ્પના કરો કે તમે સીધા હેલ્મ સાથે જમાવટ કરવાને બદલે `હેલ્મ ટેમ્પલેટ`નો ઉપયોગ કરીને તમારા કુબરનેટ્સ મેનિફેસ્ટ જનરેટ કરી રહ્યાં છો. આ અભિગમ, સમન્વયન માટે આર્ગોસીડી જેવા સાધનો સાથે જોડાયેલો, વધારાની જટિલતાનો પરિચય આપે છે: TLS પ્રમાણપત્ર રહસ્યોને ગતિશીલ રીતે મેનિફેસ્ટમાં લાવવા.
દાખલા તરીકે, સામાન્ય રૂટ રૂપરેખાંકન (`route.yaml`), તમે TLS ફીલ્ડ જેમ કે પ્રમાણપત્ર (`tls.crt`), કી (`tls.key`), અને CA પ્રમાણપત્ર ( `ca.crt`) ફ્લાય પર. આ તમારા ડિપ્લોયમેન્ટને સુરક્ષિત અને મોડ્યુલર બંને બનાવીને સંવેદનશીલ ડેટાને હાર્ડકોડ કરવાનું ટાળે છે. 🌟
પરંતુ શું મેનિફેસ્ટ-સંચાલિત વ્યૂહરચનામાં હેલ્મ ટેમ્પ્લેટ્સ અને કુબરનેટ્સ રહસ્યોનો ઉપયોગ કરીને ગતિશીલ રીતે આ પ્રાપ્ત કરી શકાય છે? ચાલો અન્વેષણ કરીએ કે કેવી રીતે હેલ્મમાં `લુકઅપ` ફંક્શન અને ગતિશીલ મૂલ્યોનો લાભ લેવાથી તમારી ડિપ્લોયમેન્ટ પાઇપલાઇનમાં સુરક્ષા અને સુગમતા જાળવી રાખવાથી આ સમસ્યાનો ઉકેલ આવી શકે છે. 🚀
આદેશ | ઉપયોગનું ઉદાહરણ |
---|---|
lookup | આ હેલ્મ ફંક્શન ટેમ્પલેટ રેન્ડરીંગ દરમિયાન ગતિશીલ રીતે કુબરનેટ્સ સંસાધનોને પૂછે છે. ઉદાહરણ તરીકે, લુકઅપ("v1", "સિક્રેટ", "ડિફોલ્ટ", "tls-સિક્રેટ-નામ") "ડિફોલ્ટ" નેમસ્પેસમાં ઉલ્લેખિત રહસ્યને પુનઃપ્રાપ્ત કરે છે. |
hasKey | નકશા અથવા ઑબ્જેક્ટમાં ચોક્કસ કી અસ્તિત્વમાં છે કે કેમ તે તપાસવા માટે હેલ્મ ટેમ્પલેટ્સમાં વપરાય છે. ઉદાહરણ તરીકે, hasKey $secretData.data "tls.crt" ખાતરી કરે છે કે ગુપ્ત પ્રમાણપત્ર ફીલ્ડ ધરાવે છે. |
b64dec | બેઝ64-એનકોડેડ સ્ટ્રિંગ્સને ડીકોડ કરવા માટે હેલ્મ ટેમ્પલેટ ફંક્શન. દાખલા તરીકે, અનુક્રમણિકા $secretData.data "tls.crt" | b64dec tls.crt ફીલ્ડમાં base64 સ્ટ્રિંગને ડીકોડ કરે છે. |
nindent | યોગ્ય YAML ઇન્ડેન્ટેશન માટે ચોક્કસ સંખ્યામાં જગ્યાઓ ઉમેરવા માટે હેલ્મ ટેમ્પલેટ્સમાં વપરાય છે. ઉદાહરણ તરીકે, Nindent 6 YAML સ્ટ્રક્ચર સાથે સંરેખિત કરવા માટે આઉટપુટને 6 જગ્યાઓ દ્વારા ઇન્ડેન્ટ કરે છે. |
read_namespaced_secret | આપેલ નેમસ્પેસમાંથી ચોક્કસ રહસ્ય મેળવવા માટે Python Kubernetes ક્લાયન્ટ પદ્ધતિ. ઉદાહરણ: v1.read_namespaced_secret("tls-secret-name", "default"). |
base64.b64decode | base64-એનકોડેડ ડેટાને ડીકોડ કરવા માટેની પાયથોન પદ્ધતિ. ઉદાહરણ: base64.b64decode(secret.data["tls.crt"]).decode("utf-8") પ્રમાણપત્ર સ્ટ્રિંગને ડીકોડ કરે છે. |
clientcmd.BuildConfigFromFlags | kubeconfig ફાઇલમાંથી Kubernetes ક્લાયન્ટ રૂપરેખાંકન બનાવવા માટેની Go પદ્ધતિ. ઉદાહરણ: clientcmd.BuildConfigFromFlags("", os.Getenv("KUBECONFIG")). |
clientset.CoreV1().Secrets().Get | કુબરનેટ્સના રહસ્યોને પ્રોગ્રામેટિક રીતે પુનઃપ્રાપ્ત કરવા માટેની ગો પદ્ધતિ. ઉદાહરણ: clientset.CoreV1().Secrets("default").Get(context.TODO(), "tls-secret-name", metav1.GetOptions{}). |
yaml.dump | ડેટાને YAML ફોર્મેટમાં સીરીયલાઇઝ કરવા માટેની પાયથોન પદ્ધતિ. ઉદાહરણ: yaml.dump(route_yaml, f) TLS કન્ફિગરેશનને route.yaml ફાઇલમાં લખે છે. |
metav1.GetOptions | Kubernetes API વિનંતીઓ માટે વિકલ્પોનો ઉલ્લેખ કરવા માટે Go માં વપરાય છે. દાખલા તરીકે, તે clientset.CoreV1().Secrets().વિનંતી પરિમાણોને વ્યાખ્યાયિત કરવા માટે એક દલીલ તરીકે પસાર થાય છે. |
કુબરનેટ્સ ડિપ્લોયમેન્ટ્સમાં TLS સિક્રેટ્સનું ડાયનેમિક મેનેજમેન્ટ
માં એ , મુખ્ય પડકાર સંવેદનશીલ ડેટાને હાર્ડકોડ કર્યા વિના તમારા કુબરનેટ્સ રૂપરેખાંકનોમાં TLS રહસ્યોને સુરક્ષિત રીતે આનયન અને એકીકૃત કરવાનો છે. પ્રથમ સ્ક્રિપ્ટ, હેલ્મ ટેમ્પ્લેટ્સ માટે લખવામાં આવે છે, જેમ કે કાર્યોનો લાભ આપે છે મેનિફેસ્ટ જનરેશન દરમિયાન ગતિશીલ રીતે રહસ્યો પુનઃપ્રાપ્ત કરવા માટે. આ અભિગમ ખાસ કરીને ઉપયોગી છે જ્યારે તમે સમગ્ર વાતાવરણમાં મેનિફેસ્ટને સમન્વયિત કરવા માટે આર્ગોસીડી જેવા સાધનો સાથે કામ કરી રહ્યાં છો. જેવા કાર્યોનું સંયોજન અને b64 dec ખાતરી કરે છે કે માત્ર માન્ય અને યોગ્ય રીતે એન્કોડેડ રહસ્યો પર પ્રક્રિયા કરવામાં આવે છે, રનટાઇમ ભૂલોને અટકાવે છે.
ઉદાહરણ તરીકે, કલ્પના કરો કે તમારે TLS ફીલ્ડને `route.yaml` માં ગતિશીલ રીતે ભરવાની જરૂર છે. મેનિફેસ્ટમાં સંવેદનશીલ TLS પ્રમાણપત્ર, કી અને CA પ્રમાણપત્રને એમ્બેડ કરવાને બદલે, હેલ્મ ટેમ્પ્લેટ રનટાઇમ સમયે કુબરનેટ્સ સિક્રેટ સ્ટોરને પૂછે છે. હેલ્મ કમાન્ડ જેમ કે `લૂકઅપ("v1", "સિક્રેટ", "નેમસ્પેસ", "સિક્રેટ-નેમ")` નો ઉપયોગ કરીને, તે ક્લસ્ટરમાંથી સુરક્ષિત રીતે ડેટા મેળવે છે. આ તમારા કોડ રિપોઝીટરીમાં રહસ્યો સંગ્રહિત કરવાની જરૂરિયાતને દૂર કરે છે, વધુ સારી સુરક્ષાની ખાતરી કરે છે. 🚀
પાયથોન-આધારિત સોલ્યુશન કુબરનેટ્સ સિક્રેટ્સને મેળવવા અને પ્રક્રિયા કરવાની પ્રોગ્રામેટિક રીત પ્રદાન કરે છે. તે રહસ્યો પુનઃપ્રાપ્ત કરવા માટે કુબરનેટ્સ પાયથોન ક્લાયંટનો ઉપયોગ કરે છે અને પછી ગતિશીલ રીતે તેને YAML ફાઇલમાં લખે છે. આ ખાસ કરીને અસરકારક છે જ્યારે હેલ્મની બહાર મેનિફેસ્ટ જનરેટ અથવા માન્ય કરવામાં આવે છે, સ્વચાલિત ડિપ્લોયમેન્ટ વર્કફ્લોમાં વધુ સુગમતા પ્રદાન કરે છે. દાખલા તરીકે, તમારે CI/CD પાઇપલાઇન્સમાં આ અભિગમનો ઉપયોગ કરવાની જરૂર પડી શકે છે જ્યાં કસ્ટમ સ્ક્રિપ્ટો મેનિફેસ્ટ સર્જનનું સંચાલન કરે છે. base64-એનકોડેડ ગુપ્ત ડેટાને ડીકોડ કરીને અને તેને `route.yaml` માં દાખલ કરીને, તમે ખાતરી કરો છો કે સંવેદનશીલ ડેટા સમગ્ર પાઇપલાઇનમાં સુરક્ષિત રીતે સંચાલિત થાય છે. 🛡️
ગો-આધારિત સોલ્યુશન એ ઉચ્ચ-પ્રદર્શન વાતાવરણ માટે અનુરૂપ અન્ય અભિગમ છે. Kubernetes Go ક્લાયંટનો ઉપયોગ કરીને, તમે સીધા રહસ્યો મેળવી શકો છો અને પ્રોગ્રામેટિકલી રૂપરેખાંકનો જનરેટ કરી શકો છો. ઉદાહરણ તરીકે, ઉચ્ચ થ્રુપુટ આવશ્યકતાઓ અથવા કડક લેટન્સી અવરોધો ધરાવતા વાતાવરણમાં, ગોની કાર્યક્ષમતા કુબરનેટ્સ API સાથે સીમલેસ ક્રિયાપ્રતિક્રિયાની ખાતરી આપે છે. સ્ક્રિપ્ટ માત્ર TLS ડેટાને મેળવે છે અને ડીકોડ કરે છે પરંતુ તેમાં મજબૂત ભૂલ હેન્ડલિંગનો સમાવેશ થાય છે, જે તેને ઉત્પાદન ઉપયોગ માટે અત્યંત વિશ્વસનીય બનાવે છે. Go માં મોડ્યુલર ફંક્શનનો ઉપયોગ એ પણ સુનિશ્ચિત કરે છે કે ભવિષ્યમાં અન્ય કુબરનેટ્સ સંસાધન સંકલન માટે કોડનો ફરીથી ઉપયોગ કરી શકાય.
કુબરનેટ્સ રૂટ મેનિફેસ્ટમાં TLS પ્રમાણપત્રોનું ગતિશીલ એકીકરણ
આ સોલ્યુશન મેનિફેસ્ટ-આધારિત ડિપ્લોયમેન્ટ વ્યૂહરચના માટે મોડ્યુલર અને સ્કેલેબલ અભિગમ પ્રદાન કરીને ગતિશીલ રીતે TLS રહસ્યો મેળવવા માટે કુબરનેટ્સ મૂળ `લુકઅપ` કાર્યક્ષમતા સાથે સંયુક્ત હેલ્મ નમૂનાઓનો ઉપયોગ કરે છે.
{{- if .Values.ingress.tlsSecretName }}
{{- $secretData := (lookup "v1" "Secret" .Release.Namespace .Values.ingress.tlsSecretName) }}
{{- if $secretData }}
{{- if hasKey $secretData.data "tls.crt" }}
certificate: |
{{- index $secretData.data "tls.crt" | b64dec | nindent 6 }}
{{- end }}
{{- if hasKey $secretData.data "tls.key" }}
key: |
{{- index $secretData.data "tls.key" | b64dec | nindent 6 }}
{{- end }}
{{- if hasKey $secretData.data "ca.crt" }}
caCertificate: |
{{- index $secretData.data "ca.crt" | b64dec | nindent 6 }}
{{- end }}
{{- end }}
{{- end }}
Python માં Kubernetes API દ્વારા TLS સિક્રેટ્સ મેળવવું
આ અભિગમ Python Kubernetes ક્લાયન્ટ (`kubernetes` પેકેજ) નો ઉપયોગ TLS રહસ્યોને પ્રોગ્રામેટિક રીતે લાવવા અને તેમને ગતિશીલ રીતે જનરેટ કરેલ YAML ફાઇલમાં ઇન્જેક્ટ કરવા માટે કરે છે.
from kubernetes import client, config
import base64
import yaml
# Load Kubernetes config
config.load_kube_config()
# Define namespace and secret name
namespace = "default"
secret_name = "tls-secret-name"
# Fetch the secret
v1 = client.CoreV1Api()
secret = v1.read_namespaced_secret(secret_name, namespace)
# Decode and process secret data
tls_cert = base64.b64decode(secret.data["tls.crt"]).decode("utf-8")
tls_key = base64.b64decode(secret.data["tls.key"]).decode("utf-8")
ca_cert = base64.b64decode(secret.data["ca.crt"]).decode("utf-8")
# Generate route.yaml
route_yaml = {
"tls": {
"certificate": tls_cert,
"key": tls_key,
"caCertificate": ca_cert
}
}
# Save to YAML file
with open("route.yaml", "w") as f:
yaml.dump(route_yaml, f)
print("Route manifest generated successfully!")
ગો ફોર કુબરનેટ્સ ડિપ્લોયમેન્ટ્સ સાથે એકીકૃત રહસ્યો
આ સોલ્યુશન TLS રહસ્યો મેળવવા માટે ગો કુબરનેટ્સ ક્લાયંટનો ઉપયોગ કરે છે અને તેમને YAML રૂટ ગોઠવણીમાં ગતિશીલ રીતે ઇન્જેક્ટ કરે છે. તે એરર હેન્ડલિંગ અને ટાઇપ સેફ્ટી દ્વારા કામગીરી અને સુરક્ષા પર ભાર મૂકે છે.
package main
import (
"context"
"encoding/base64"
"fmt"
"os"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)
func main() {
// Load kubeconfig
config, err := clientcmd.BuildConfigFromFlags("", os.Getenv("KUBECONFIG"))
if err != nil {
panic(err.Error())
}
// Create clientset
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
panic(err.Error())
}
// Get secret
secret, err := clientset.CoreV1().Secrets("default").Get(context.TODO(), "tls-secret-name", metav1.GetOptions{})
if err != nil {
panic(err.Error())
}
// Decode and print secret data
tlsCrt, _ := base64.StdEncoding.DecodeString(string(secret.Data["tls.crt"]))
tlsKey, _ := base64.StdEncoding.DecodeString(string(secret.Data["tls.key"]))
caCrt, _ := base64.StdEncoding.DecodeString(string(secret.Data["ca.crt"]))
fmt.Printf("Certificate: %s\n", tlsCrt)
fmt.Printf("Key: %s\n", tlsKey)
fmt.Printf("CA Certificate: %s\n", caCrt)
}
કુબરનેટ્સમાં TLS સિક્યોરિટીંગ: ધ ડાયનેમિક એપ્રોચ
એ સાથે કામ કરતી વખતે વ્યૂહરચના, ધ્યાનમાં લેવાના સૌથી મહત્વપૂર્ણ પાસાઓ પૈકી એક છે TLS પ્રમાણપત્રો જેવા સંવેદનશીલ ડેટાને હેન્ડલ કરવાની સુરક્ષા અને સુગમતા. તમારા રિપોઝીટરીમાં આ રહસ્યોને હાર્ડકોડ કરવું એ માત્ર અસુરક્ષિત નથી પણ તમારી એપ્લિકેશનને સમગ્ર વાતાવરણમાં ઓછી પોર્ટેબલ બનાવે છે. ગતિશીલ અભિગમ, જેમ કે હેલ્મ ટેમ્પ્લેટ્સ અથવા કુબરનેટ્સ API કૉલ્સનો ઉપયોગ કરીને રનટાઈમ પર રહસ્યો મેળવવા, સ્વયંચાલિત વર્કફ્લોને સપોર્ટ કરતી વખતે તમારી એપ્લિકેશન સુરક્ષિત રહે તેની ખાતરી કરે છે.
બીજું નિર્ણાયક પાસું એ છે કે આર્ગોસીડી જેવા સાધનો સાથે સુસંગતતાની ખાતરી કરવી. આર્ગોસીડી હેલ્મ દ્વારા સીધા જ જમાવટ કરવાને બદલે પૂર્વ-જનરેટેડ મેનિફેસ્ટને સમન્વયિત કરે છે, તેથી આ મેનિફેસ્ટ્સમાં ગતિશીલ રીતે રહસ્યો દાખલ કરવું પડકારજનક પરંતુ આવશ્યક બની જાય છે. હેલ્મનો ઉપયોગ કરીને Python અથવા Go માં કાર્યક્ષમતા અથવા પ્રોગ્રામેટિક સોલ્યુશન્સ, તમે ખાતરી કરી શકો છો કે કુબરનેટ્સના સિક્રેટ સ્ટોરમાંથી રહસ્યો સુરક્ષિત રીતે લાવવામાં આવે છે. આ રીતે, મેનિફેસ્ટ પૂર્વ-જનરેટ થાય ત્યારે પણ, તેઓ પર્યાવરણની ગુપ્ત ગોઠવણીના આધારે ગતિશીલ રીતે અનુકૂલન કરે છે. 🚀
વધુમાં, સ્કેલિંગ ડિપ્લોયમેન્ટ માટે ઓટોમેશન ચાવીરૂપ છે. TLS રહસ્યોને આનયન, ડીકોડ અને ઇન્જેક્ટ કરતી પાઇપલાઇન્સનો અમલ કરીને, તમે મેન્યુઅલ હસ્તક્ષેપ ઘટાડે છે અને ભૂલોને દૂર કરો છો. ઉદાહરણ તરીકે, TLS પ્રમાણપત્રોને માન્ય કરવા માટે Python સ્ક્રિપ્ટો અથવા Go ક્લાયંટને ઉચ્ચ-પ્રદર્શન જરૂરિયાતોને નિયંત્રિત કરવા માટે એકીકૃત કરવાથી વિશ્વસનીયતા અને કાર્યક્ષમતા બંને ઉમેરાય છે. આમાંની દરેક પદ્ધતિ તમારી પાઇપલાઇન્સ અથવા મેનિફેસ્ટમાં પ્લેનટેક્સ્ટ સેન્સિટિવ ડેટાને ટાળવા જેવી સુરક્ષાની શ્રેષ્ઠ પ્રથાઓનું પાલન પણ સુનિશ્ચિત કરે છે. 🌟
- કેવી રીતે કરે છે સુકાન માં કાર્ય?
- આ ટેમ્પલેટ રેન્ડરીંગ દરમિયાન ફંક્શન ક્વેરીઝ કુબરનેટ્સ સંસાધનો. તેને API સંસ્કરણ, સંસાધન પ્રકાર, નેમસ્પેસ અને સંસાધન નામ જેવા પરિમાણોની જરૂર છે.
- શું ArgoCD ડાયનેમિક સિક્રેટ ફેચિંગને હેન્ડલ કરી શકે છે?
- સીધા નહીં, પરંતુ તમે જેવા સાધનોનો ઉપયોગ કરી શકો છો ArgoCD સાથે સમન્વયિત કરતા પહેલા ગતિશીલ રીતે ઇન્જેક્ટેડ રહસ્યો સાથે મેનિફેસ્ટને પૂર્વ-જનરેટ કરવા માટે.
- શા માટે ઉપયોગ કરો હેલ્મ ટેમ્પલેટ્સમાં?
- આ ફંક્શન બેઝ64-એનકોડેડ સ્ટ્રિંગ્સને ડીકોડ કરે છે, જે કુબરનેટ્સમાં બેઝ64 તરીકે સંગ્રહિત રહસ્યો માટે જરૂરી છે.
- આ કાર્ય માટે પાયથોનનો ઉપયોગ કરવાનો શું ફાયદો છે?
- Python દ્વારા કુબરનેટ્સ સાથે ક્રિયાપ્રતિક્રિયા કરવાની લવચીક રીત પ્રદાન કરે છે લાઇબ્રેરી, ન્યૂનતમ કોડ સાથે YAML ની ગતિશીલ જનરેશનને મંજૂરી આપે છે.
- ગો કુબરનેટ્સ સિક્રેટ મેનેજમેન્ટને કેવી રીતે વધારી શકે?
- ગોનું ઉચ્ચ પ્રદર્શન અને ટાઇપ-સેફ ક્ષમતાઓ તેને લાઇબ્રેરીઓનો ઉપયોગ કરીને મોટા પાયે કુબરનેટ્સ જમાવટ માટે આદર્શ બનાવે છે. API ક્રિયાપ્રતિક્રિયા માટે.
કુબરનેટ્સમાં, TLS રહસ્યોનું સંચાલન ગતિશીલ રીતે સુરક્ષિત અને સ્કેલેબલ ડિપ્લોયમેન્ટ પાઇપલાઇનની ખાતરી કરે છે. સુકાનનો લાભ લેવા જેવી તકનીકો ફંક્શન અથવા પ્રોગ્રામિંગ સ્ક્રિપ્ટ્સનો ઉપયોગ કુબરનેટ્સ સિક્રેટ્સને ક્વેરી કરવા માટે સીમલેસ ઇન્ટિગ્રેશન માટે પરવાનગી આપે છે, હાર્ડકોડેડ સંવેદનશીલ ડેટા સાથે સંકળાયેલા જોખમો ઘટાડે છે.
હેલ્મ, પાયથોન અથવા ગોનો ઉપયોગ કરીને, ચાવી એ પાઇપલાઇન બનાવવાની છે કે જે સુગમતા જાળવી રાખીને સુરક્ષા ધોરણોનું પાલન સુનિશ્ચિત કરે છે. TLS રહસ્યોને ગતિશીલ રીતે ઇન્જેક્ટ કરીને, ટીમો બદલાતા વાતાવરણને અસરકારક રીતે સ્વીકારી શકે છે અને સંભવિત નબળાઈઓથી તેમની જમાવટને સુરક્ષિત કરી શકે છે. 🌟
- નો ઉપયોગ કરવા વિશે વિગતવાર માહિતી હેલ્મ ટેમ્પલેટ્સમાં કાર્ય અહીં મળી શકે છે સુકાન દસ્તાવેજીકરણ .
- Python Kubernetes ક્લાયંટના ઉપયોગ માટે, અહીં સત્તાવાર દસ્તાવેજોની મુલાકાત લો કુબરનેટ્સ પાયથોન ક્લાયંટ .
- ગો ક્લાયન્ટ-ગોના ઉદાહરણો અને કુબરનેટ્સ રહસ્યો સાથે ક્રિયાપ્રતિક્રિયા કરવા માટેની શ્રેષ્ઠ પદ્ધતિઓ આમાં પ્રદાન કરવામાં આવી છે કુબરનેટ્સ ગો ક્લાયન્ટ રિપોઝીટરી .
- Kubernetes માં TLS પ્રમાણપત્રોને ગતિશીલ રીતે મેનેજ કરવા માટેની સુરક્ષા માર્ગદર્શિકા અહીં વિગતવાર છે કુબરનેટ્સ TLS મેનેજમેન્ટ .
- મેનિફેસ્ટ-સંચાલિત જમાવટ સાથે ArgoCD નું સંચાલન કરવાની આંતરદૃષ્ટિ અહીં ઉપલબ્ધ છે ArgoCD સત્તાવાર દસ્તાવેજીકરણ .