मुख्य सामग्री पर जाएं
यह गाइड Terragrunt का उपयोग करके AWS पर EKB EKS अवसंरचना की पूर्ण तैनाती की व्याख्या करता है। इसमें उपकरण स्थापना, वातावरण सेटअप, और सभी अवसंरचना घटकों में उचित निर्भरता क्रम सुनिश्चित करने के लिए डिज़ाइन किए गए चरणबद्ध तैनाती क्रम शामिल हैं। तैनातियाँ नौ चरणों में व्यवस्थित हैं:
  1. स्टेट प्रबंधन — Terraform स्टेट संग्रहीत करने के लिए उपयोग किए जाने वाले S3 bucket को बूटस्ट्रैप करता है।
  2. EKS अवसंरचना — VPC, सबनेट्स, NAT gateways, IAM भूमिकाएँ, और EKS क्लस्टर और managed node groups प्रोविज़न करता है।
  3. स्टोरेज और लोड बैलेंसिंग — स्थायी volumes के लिए EBS CSI driver और ALB ingress के लिए AWS Load Balancer Controller तैनात करता है।
  4. Karpenter Autoscaling — Spot instance समर्थन और SQS और EventBridge के माध्यम से interruption handling के साथ गतिशील node प्रोविज़निंग स्थापित करता है।
  5. KEDA Autoscaling — CPU और मेमोरी सीमाओं के आधार पर pod-स्तरीय autoscaling के लिए KEDA तैनात करता है।
  6. डेटा सेवाएँ — Supabase (सेल्फ़-होस्टेड या Cloud), ElastiCache Redis, और Amazon MQ RabbitMQ प्रोविज़न करता है।
  7. Odin सेवाएँ — Helm के माध्यम से EKB एप्लिकेशन स्टैक (Web, FastAPI, Celery, Automator) तैनात करता है।
  8. SigNoz अवलोकन — SigNoz और k8s-infra agent के माध्यम से वितरित tracing, मेट्रिक्स और लॉग एकत्रीकरण तैनात करता है।
  9. अंतिम तैनाती — किसी भी शेष संसाधनों को समायोजित करने के लिए पूर्ण terragrunt apply चलाता है।
शुरू करने से पहले, ग्राहक के साथ पूर्व आवश्यकताएँ चेकलिस्ट पूरी करें और सुनिश्चित करें कि वातावरण टेम्पलेट में सभी <YOUR_*> placeholders भरे गए हैं। कई मान — जिनमें VPC ID, EKS क्लस्टर endpoint, और Redis और RabbitMQ endpoints शामिल हैं — केवल विशिष्ट चरण पूरे होने के बाद उपलब्ध हैं, इसलिए गाइड में ठीक बताया गया है कि उन्हें कब कैप्चर और लागू करना है।

पूर्व आवश्यकताएँ

  • उपयुक्त अनुमतियों के साथ कॉन्फ़िगर किया गया AWS CLI
  • Terraform (>= 1.0)
  • Terragrunt (नवीनतम संस्करण)
  • Kubernetes प्रबंधन के लिए kubectl
  • Helm chart प्रबंधन के लिए helm

स्थापना गाइड

Terragrunt स्थापित करें

macOS (Homebrew)
Linux (apt)
Windows (Chocolatey)

kubectl स्थापित करें

macOS (Homebrew)
Linux
Windows (Chocolatey)

Helm स्थापित करें

macOS (Homebrew)
Linux
Windows (Chocolatey)

इंस्टॉलेशन सत्यापित करें

AWS CLI कॉन्फ़िगरेशन


एक नया वातावरण बनाएँ

चरण 1: वातावरण टेम्पलेट कॉपी करें

env-template-folder में <YOUR_*> placeholders के साथ पूर्व-संरचित फ़ाइलें हैं जो भरने के लिए तैयार हैं। अपना नया वातावरण फ़ोल्डर बनाने के लिए इसे पूरी तरह से कॉपी करें।

चरण 2: सत्यापित करें कि सभी Placeholders मौजूद हैं

सभी placeholders <YOUR_*> परंपरा का पालन करते हैं। नीचे दिए गए चरण फ़ाइल-दर-फ़ाइल इन्हें भरने की व्याख्या करते हैं।

चरण 3: SSL प्रमाणपत्र प्रोविज़न करें (AWS ACM)

वातावरण चर सेट करने से पहले आपको प्रमाणपत्र ARNs चाहिए। अपने वातावरण द्वारा सेव किए जाने वाले सभी डोमेन के लिए AWS Certificate Manager (ACM) में SSL प्रमाणपत्र अनुरोध करने के लिए AWS Console का उपयोग करें। विकल्प A: एकल वाइल्डकार्ड प्रमाणपत्र (अनुशंसित) एकल वाइल्डकार्ड प्रमाणपत्र एक ARN से सभी subdomains को कवर करता है। उदाहरण के लिए, यदि आपका आधार डोमेन app.example.com है, तो एकल *.app.example.com प्रमाणपत्र कवर करता है: विकल्प B: प्रति-सेवा प्रमाणपत्र यदि आप वाइल्डकार्ड का उपयोग नहीं कर सकते तो प्रति डोमेन एक प्रमाणपत्र अनुरोध करें। प्रत्येक डोमेन के लिए नीचे दिए गए चरण दोहराएँ: <YOUR_WEB_DOMAIN>, <YOUR_API_DOMAIN>, <YOUR_AUTOMATOR_DOMAIN>, <YOUR_SUPABASE_DOMAIN> (केवल यदि ENABLE_SUPABASE=true), <YOUR_SIGNOZ_DOMAIN> (केवल यदि ENABLE_SIGNOZ=true)। AWS Console में प्रमाणपत्र अनुरोध करना
  1. AWS Certificate Manager console खोलें
  2. सही क्षेत्र पर स्विच करें (ऊपरी-दाएँ) — <YOUR_AWS_REGION> से मेल खाना चाहिए
  3. Request a certificate क्लिक करें → Request a public certificateNext
  4. Fully qualified domain name के अंतर्गत, वाइल्डकार्ड दर्ज करें (जैसे *.app.example.com) या एक विशिष्ट डोमेन
  5. Validation method को DNS validation सेट करें
  6. Request क्लिक करें — प्रमाणपत्र Pending validation स्थिति में बनाया जाता है
DNS CNAME सत्यापन रिकॉर्ड जोड़ना ACM एक CNAME रिकॉर्ड बनाता है जिसे आपको डोमेन स्वामित्व साबित करने के लिए अपने DNS provider में जोड़ना होता है। ACM Console से मान प्राप्त करने के लिए प्रमाणपत्र खोलें और Domains के अंतर्गत डोमेन का विस्तार करें।
यदि आपका DNS provider आवश्यकता रखता है तो CNAME मानों के अंत में trailing dot (.) शामिल करें।
Cloudflare
  1. Cloudflare में लॉग इन करें → अपना डोमेन चुनें → DNS पर जाएँ → RecordsAdd record
  2. Type को CNAME सेट करें
  3. ACM CNAME नाम को Name में और ACM CNAME मान को Target में पेस्ट करें
  4. Proxy status को DNS only (ग्रे क्लाउड आइकन) सेट करें — प्रमाणपत्र Cloudflare प्रॉक्सी के माध्यम से सत्यापित नहीं होगा
  5. Save क्लिक करें
Route 53
  1. Route 53 console खोलें → Hosted zones → अपना ज़ोन चुनें → Create record
  2. Record type को CNAME सेट करें
  3. ACM CNAME नाम को Record name (केवल subdomain भाग) में और मान को Value में पेस्ट करें
  4. TTL को 300 सेट करें और Create records क्लिक करें
ACM में आप Create records in Route 53 भी क्लिक कर सकते हैं ताकि यदि hosted zone उसी खाते में है तो ACM स्वचालित रूप से रिकॉर्ड जोड़ दे।
जब DNS propagation हो जाता है (आमतौर पर 1–5 मिनट), तो प्रमाणपत्र स्थिति Issued में बदल जाती है। प्रमाणपत्र के शीर्ष से ARN कॉपी करें — यह arn:aws:acm:<region>:<account-id>:certificate/<uuid> जैसा दिखता है। अगले चरण के लिए ARN(s) सुरक्षित रखें।

चरण 4: वातावरण चर सेट करें

कोई भी Terragrunt कमांड चलाने से पहले ये shell वातावरण चर सेट करें। इन्हें terragrunt.hcl में get_env() कॉल्स द्वारा सीधे पढ़ा जाता है।

Spot Instances और स्टेटफुल वर्कलोड

Spot instances को पर्यावरण चरों के माध्यम से नहीं, बल्कि values/karpenter.yaml में प्रति NodePool कॉन्फ़िगर किया जाता है। प्रत्येक NodePool अपनी क्षमता रणनीति घोषित करता है: application NodePool m/c instance families (पीढ़ी 5+) का उपयोग केवल On-Demand के साथ करता है। Supabase सेवा pods nodeSelector: workload-type: "application" के माध्यम से यहाँ पिन किए जाते हैं ताकि यह गारंटी दी जा सके कि उन्हें कभी Spot पुनःप्राप्ति घटना से बाधित नहीं किया जाएगा। database-dedicated NodePool कभी Spot का उपयोग नहीं करता। यह consolidationPolicy: WhenEmpty का उपयोग करता है ताकि Karpenter उस node को निकाले नहीं जिस पर अभी भी एक चलता हुआ pod है, जिससे PostgreSQL और CloudNativePG replicas जैसे स्टेटफुल वर्कलोड के लिए सुरक्षित हो। Spot पर स्टेटफुल एप्लिकेशन के लिए दिशानिर्देश:
  • Spot NodePools पर databases, स्थायी queues, या PersistentVolumeClaim वाले किसी भी pod को शेड्यूल न करें।
  • node-type: database-dedicated को लक्षित करने वाले nodeSelector और मिलान database-workload: "true" toleration का उपयोग database pods के लिए करें।
  • उन उपयोगकर्ता-सामने की रहित सेवाओं के लिए nodeSelector: workload-type: "application" का उपयोग करें जिन्हें बिना बाधा के उपलब्ध रहना चाहिए।
  • पृष्ठभूमि वर्कलोड (Web, API, Celery, Automator) के लिए, general Spot NodePool उपयुक्त है — Karpenter का SQS interruption handler AWS द्वारा पुनःप्राप्ति से पहले Spot nodes को सुरक्षित रूप से drain करता है, और KEDA की न्यूनतम रेप्लिका गणना (≥ 2) node प्रतिस्थापन के दौरान उपलब्धता सुनिश्चित करती है।
  • Spot को वैश्विक रूप से अक्षम करने के लिए, values/karpenter.yaml में प्रत्येक NodePool के values list से "spot" हटा दें।
Karpenter Spot interruption चेतावनियों को कैसे संभालता है: AWS Spot instance को समाप्त करने से पहले 2-मिनट का interruption notice देता है। Karpenter इस पर स्वचालित रूप से कार्य करने के लिए EventBridge और SQS का उपयोग करता है:
यह terragrunt.hcl में karpenter ब्लॉक में कॉन्फ़िगर किया गया है:

चरण 5: वातावरण-विशिष्ट फ़ाइल मान अपडेट करें

नए env फ़ोल्डर में सभी फ़ाइलों में निम्नलिखित placeholders के लिए ढूँढें और बदलें:

5.1 terragrunt.hcl — मुख्य क्लस्टर कॉन्फ़िगरेशन

5.2 state/terragrunt.hcl — S3 स्टेट bucket

5.3 values/infrastructure.yaml — AWS Load Balancer Controller

AWS Load Balancer Controller तैनात करने से पहले EKS क्लस्टर बनाने के बाद VPC ID प्राप्त करें।

5.4 values/karpenter-values.yaml — Karpenter controller

Karpenter तैनात करने से पहले EKS क्लस्टर बनाने के बाद और Karpenter तैनात करने से पहले EKS क्लस्टर endpoint प्राप्त करें।

5.5 values/karpenter-nodeclasses.yaml — Karpenter node classes

5.6 values/aws-ebs-csi-driver.yaml — EBS CSI Driver

5.7 values/karpenter.yaml — Karpenter NodePools

Node class names (general, compute-intensive, memory-intensive, gpu, database) karpenter-nodeclasses.yaml में entries से मेल खाने चाहिए।

5.8 values/keda.yaml — KEDA Autoscaler

कोई वातावरण-विशिष्ट placeholders आवश्यक नहीं। संसाधन सीमाएँ और रेप्लिका गणनाएँ उचित डिफ़ॉल्ट्स के साथ पूर्व-कॉन्फ़िगर की गई हैं। समीक्षा करें और आवश्यकतानुसार समायोजित करें।

5.9 values/supabase.yaml — Supabase एप्लिकेशन (केवल यदि ENABLE_SUPABASE=true)

नीचे दी गई सभी कुंजियाँ लगातार उत्पन्न होनी चाहिए और ha-supabase-db.yaml के साथ साझा की जानी चाहिए। इन्हें एक बार उत्पन्न करें और दोनों फ़ाइलों में एक ही मानों का उपयोग करें।

5.10 values/ha-supabase-db.yaml — Supabase HA Database (केवल यदि ENABLE_HA_SUPABASE_DB=true)

यहाँ के secrets को supabase.yaml से मेल खाना चाहिए। postgresPassword, jwtSecret, anonKey, और serviceRoleKey के लिए एक ही उत्पन्न मानों का उपयोग करें।
Storage class (ebs-csi-gp2), instance गणनाएँ, और संसाधन सीमाएँ पूर्व-कॉन्फ़िगर हैं। अपनी अपेक्षित डेटा मात्रा के अनुसार postgres.storage.size और postgres.walStorage.size समायोजित करें।

5.11 values/cloudnative-pg.yaml — CloudNativePG Operator (केवल यदि ENABLE_CNPG=true)

कोई वातावरण-विशिष्ट placeholders आवश्यक नहीं। यह केवल CNPG operator controller तैनात करता है। डिफ़ॉल्ट सेटिंग्स (3 रेप्लिकास, संसाधन सीमाएँ) अधिकांश वातावरण के लिए उपयुक्त हैं।

5.12 values/odin-services.yaml — Odin एप्लिकेशन सेवाएँ

Redis और RabbitMQ endpoints केवल Terraform द्वारा उन AWS संसाधनों को बनाने के बाद उपलब्ध हैं। प्रमाणपत्र ARNs तैनाती से पहले ACM में प्रोविज़न किए जाने चाहिए।
सामान्य सेटिंग्स: Supabase (dataServiceConfig) — सेल्फ़-होस्टेड (ENABLE_SUPABASE=true): Supabase (dataServiceConfig) — Supabase Cloud (ENABLE_SUPABASE=false): Redis:
RabbitMQ:
SSL / प्रमाणपत्र ARNs:
वेब फ़्रंटएंड Supabase keys — सेल्फ़-होस्टेड (ENABLE_SUPABASE=true): वेब फ़्रंटएंड Supabase keys — Supabase Cloud (ENABLE_SUPABASE=false):

5.13 values/signoz.yaml — SigNoz अवलोकन (केवल यदि ENABLE_SIGNOZ=true)

5.14 values/signoz-k8s-infra.yaml — SigNoz K8s मेट्रिक्स (केवल यदि ENABLE_SIGNOZ=true)

OTel collector endpoint (signoz-otel-collector.monitoring.svc.cluster.local:4317) यह मानकर पूर्व-कॉन्फ़िगर किया गया है कि SigNoz और k8s-infra दोनों monitoring namespace में तैनात हैं। जब तक आप कस्टम release name का उपयोग नहीं करते, कोई बदलाव आवश्यक नहीं।

तैनाती क्रम अनुस्मारक

कुछ मान केवल कुछ अवसंरचना के तैनात होने के बाद उपलब्ध हैं। इस क्रम का पालन करें:
  1. किसी भी तैनाती से पहले — सेट करें: <YOUR_ENV_NAME>, <YOUR_AWS_REGION>, <YOUR_AWS_ACCOUNT_ID>, <YOUR_ENVIRONMENT>, <YOUR_PROJECT>, <YOUR_VPC_CIDR>, सभी डोमेन नाम, सभी प्रमाणपत्र ARNs, सभी Supabase मान, <YOUR_TOOLKIT_ENCRYPTION_KEY>, RabbitMQ username/password
  2. EKS क्लस्टर बनाने के बाद — सेट करें: <YOUR_VPC_ID> (infrastructure.yaml), <YOUR_EKS_CLUSTER_ENDPOINT> (karpenter-values.yaml)
  3. AWS सेवाओं के लिए terraform apply के बाद — सेट करें: <YOUR_REDIS_HOST>, <YOUR_RABBITMQ_HOST> (odin-services.yaml)

चरण 6: सत्यापित करें कि कोई Placeholders शेष नहीं हैं

अपेक्षित आउटपुट खाली होना चाहिए, या केवल उन संसाधनों के संदर्भ शामिल होने चाहिए जो बनाए जाने वाले हैं (VPC, Redis, MQ, EKS)। यदि कोई placeholders शेष हैं, तो ऊपर दिए गए चरण 5 उप-अनुभागों का संदर्भ लें। फ़ाइलें चेकलिस्ट:

चरण 1: स्टेट प्रबंधन सेटअप

उद्देश्य: Terraform स्टेट के लिए S3 bucket निर्माण। प्रत्येक वातावरण का स्टेट प्रबंधन मॉड्यूल odin-terraform-state-{environment-name} पैटर्न के साथ S3 bucket बनाता है, एन्क्रिप्शन, वर्शनिंग और पब्लिक एक्सेस ब्लॉकिंग कॉन्फ़िगर करता है, और स्टेट मॉड्यूल के लिए स्थानीय स्टेट का उपयोग करता है (बूटस्ट्रैप पैटर्न)।

चरण 2: EKS अवसंरचना तैनाती

उद्देश्य: मुख्य नेटवर्किंग (VPC, सबनेट्स, NAT gateway), IAM भूमिकाएँ और नीतियाँ, EKS क्लस्टर और managed node groups।

2.1 ड्राई रन — EKS अवसंरचना

मुख्य अवसंरचना
IAM भूमिकाएँ और नीतियाँ
EKS क्लस्टर और Node Groups

कस्टम / निजी Docker Registry का उपयोग करना

डिफ़ॉल्ट रूप से, EKB images regcred नामक secret का उपयोग करके Docker Hub से पुल किए जाते हैं। यदि ग्राहक अलग registry में images होस्ट करता है, तो odin-services तैनात करने से पहले इन चरणों का पालन करें। चरण 1 — लक्षित namespace में imagePullSecret बनाएँ
चरण 2 — values/odin-services.yaml में secret नाम सेट करें
चरण 3 — image संदर्भ अपडेट करें
चरण 4 — पूर्ण तैनाती से पहले पुल पहुँच सत्यापित करें

2.2 EKS अवसंरचना तैनात करें

चरण 1: मुख्य अवसंरचना
इस चरण के बाद, AWS Load Balancer Controller तैनात करने से पहले values/infrastructure.yaml में vpcId अपडेट करें।
चरण 2: EKS क्लस्टर और IAM भूमिकाएँ और नीतियाँ
चरण 3: Node Groups और Addons
इस चरण के बाद, Karpenter तैनात करने से पहले values/karpenter-values.yaml में CLUSTER_ENDPOINT अपडेट करें।
EKS क्लस्टर कनेक्टिविटी जाँचें

चरण 3: स्टोरेज और लोड बैलेंसिंग

उद्देश्य: स्थायी volumes के लिए EBS CSI driver, managed node group पर चलने वाला AWS Load Balancer Controller।

3.1 ड्राई रन — स्टोरेज और लोड बैलेंसिंग

EBS CSI Driver
AWS Load Balancer Controller

3.2 स्टोरेज और लोड बैलेंसिंग तैनात करें

चरण 1: EBS CSI Driver
सत्यापन
चरण 2: AWS Load Balancer Controller
सत्यापन

चरण 4: Karpenter Autoscaling

उद्देश्य: Karpenter के लिए IAM भूमिकाएँ, Spot interruption handling, Karpenter controller और node pools।

4.1 ड्राई रन — Karpenter

Karpenter IAM संसाधन
EC2 Spot Service-Linked Role (यदि spot instances सक्षम हैं)
Karpenter Spot Interruption (यदि terragrunt.hcl में सक्षम)
Karpenter Helm Charts
Karpenter NodePools और EC2NodeClasses
Plan के दौरान एक अपेक्षित त्रुटि दिखाई दे सकती है: API did not recognize GroupVersionKind from manifest (CRD may not be installed). इसे अनदेखा करना सुरक्षित है — Kubernetes CRDs स्थापित होने से पहले plan समय पर लाइव API के विरुद्ध संसाधनों को सत्यापित करता है।

4.2 Karpenter तैनात करें

चरण 1: Karpenter IAM संसाधन
सत्यापन
चरण 2: EC2 Spot Service-Linked Role (यदि spot instances सक्षम हैं)
EC2 Spot service-linked role खाता-व्यापी (प्रत्येक AWS खाते में केवल एक) है और Karpenter द्वारा Spot instances लॉन्च करने से पहले मौजूद होना चाहिए।
विकल्प A: Terraform को इसे बनाने दें (नई तैनातियों के लिए अनुशंसित)
विकल्प B: यदि भूमिका पहले से मौजूद है तो आयात करें
चरण 3: Karpenter Spot Interruption (यदि terragrunt.hcl में सक्षम)
सत्यापन
चरण 4: Karpenter Helm Chart
सत्यापन
चरण 5: Karpenter Kubernetes Manifests
सत्यापन

चरण 5: KEDA Autoscaling

उद्देश्य: एप्लिकेशन-स्तरीय autoscaling के लिए KEDA।

5.1 ड्राई रन — KEDA

5.2 KEDA तैनात करें

सत्यापन

चरण 6: डेटा सेवाएँ

उद्देश्य: Supabase (डेटाबेस), ElastiCache (Redis), RabbitMQ (मैसेज क्यू)।
पहले CloudNativePG operator तैनात करें, फिर HA Supabase DB क्लस्टर, फिर Supabase एप्लिकेशन। DB क्लस्टर Supabase शुरू होने से पहले तैयार होना चाहिए।

6.1 ड्राई रन — डेटा सेवाएँ

चरण 1: CloudNativePG operator (यदि सक्षम)
चरण 2: HA Supabase DB (यदि सक्षम)
चरण 3: Supabase एप्लिकेशन (यदि सक्षम)
चरण 4: AWS सेवाएँ — ElastiCache और RabbitMQ (यदि सक्षम)

6.2 डेटा सेवाएँ तैनात करें

चरण 1: CloudNativePG operator (यदि सक्षम)
चरण 2: HA Supabase DB (यदि सक्षम)
तैनाती के बाद PgBouncer pooler और credentials की सत्यापन:
values/odin-services.yaml में SUPABASE_POSTGRES_HOST मान और values/supabase.yaml में secret.db.postgresHost के रूप में pooler ClusterIP (या यदि LoadBalancer हो तो EXTERNAL-IP) का उपयोग करें। चरण 3: Supabase एप्लिकेशन (यदि सक्षम) सभी Supabase सेवा pods Spot interruptions को रोकने के लिए केवल Karpenter application NodePool (केवल On-Demand) पर चलते हैं।
चरण 4: AWS सेवाएँ — ElastiCache और RabbitMQ (यदि सक्षम)
सत्यापन
Odin सेवाएँ तैनात करने से पहले, इस चरण में प्राप्त Redis endpoint, RabbitMQ endpoint और सभी प्रमाणपत्र ARNs के साथ values/odin-services.yaml अपडेट करें।

चरण 7: Odin सेवाएँ

उद्देश्य: Helm के माध्यम से एप्लिकेशन तैनाती।
तैनात करने से पहले, प्रारंभिक डेटाबेस माइग्रेशन रन के लिए fastapiBackend को अस्थायी रूप से एकल रेप्लिका तक स्केल-डाउन करें — replicaCount: 1, workers: 1, और keda.minReplicas: 1 सेट करें। एक बार माइग्रेशन सफलतापूर्वक पूरा हो जाने पर, पुनः-तैनाती से पहले इन मानों को उनके उत्पादन डिफ़ॉल्ट्स में वापस करें।

7.1 ड्राई रन — Odin सेवाएँ

7.2 Odin सेवाएँ तैनात करें

सत्यापन

चरण 8: SigNoz अवलोकन

उद्देश्य: लॉग्स और मेट्रिक्स निगरानी।

8.1 ड्राई रन — SigNoz Charts

8.2 SigNoz Charts तैनात करें

सत्यापन

चरण 9: अंतिम तैनाती

9.1 पूर्ण तैनाती

यह अंतिम apply पिछले चरणों में स्पष्ट रूप से लक्षित नहीं किए गए किसी भी शेष संसाधनों को संभालता है।

9.2 तैनाती सत्यापित करें


समस्या निवारण

स्टेट लॉक समस्याएँ
Karpenter काम नहीं कर रहा
लोड बैलेंसर समस्याएँ
Helm chart समस्याएँ

सफ़ाई


निगरानी और लॉगिंग


क्विक रेफ़रेंस — सभी तैनाती कमांड्स

अपने वास्तविक वातावरण नाम से your-env-name को पूरी तरह से बदलें। हमेशा बदलाव लागू करने से पहले अपनी कॉन्फ़िगरेशन सत्यापित करने के लिए ड्राई रन्स (terragrunt plan) पहले चलाएँ।