Overview
This document explains the complete process to:
- Migrate Kubernetes namespace resources
- Configure Azure DevOps pipeline for DR (UK)
- Deploy application in new AKS cluster
- Validate and troubleshoot issues
Step 1: Navigate to Project Directory
Code:
cd /home/aks-live/24x7/AKS-Prod/sadad-POS-Queue-Consumer
ls -ltr
Identify the folder:
pos-queue-consumer-fileshare/Step 2: Go to Fileshare Directory
Code:
cd pos-queue-consumer-fileshare/
ls -ltr
Important files:
[list]
[*]pos-queue-consumer-storage-secret.yaml
[*]azure-file-pvc.yaml
[*]azure-file-sc.yaml
[/list]Step 3: Update Storage Secret
Code:
vi pos-queue-consumer-storage-secret.yaml
Update:
data:
azurestorageaccountkey: <BASE64_KEY>
azurestorageaccountname: <BASE64_NAME>Step 4: Verify Base64 Values
Code:
echo "<value>" | base64 -dStep 5: Create Namespace
Code:
kubectl create ns sadad-online-pos-queue-consumerStep 6: Apply Resources (Order Important)
Code:
1. Apply Secret
kubectl apply -f pos-queue-consumer-storage-secret.yaml
2. Apply Storage Class & PVC
kubectl apply -f azure-file-sc.yaml -f azure-file-pvc.yamlStep 7: Apply Remaining Secrets
Code:
cd ..
kubectl apply -f az-repo-dev-secret.yaml
kubectl apply -f pos-queue-consumer-env-azure-secrets.yaml \
-f pos-queue-consumer-env-config-secrets.yaml \
-f pos-queue-consumer-env-email-secrets.yaml \
-f sadad-online-pos-queue-consumer-secrets.yamlStep 8: Azure DevOps – Download Deployment File
Go to:
Repos → Sadad-POS-Queue-Consumer → manifests
Download:
deploy-live.yaml
Step 9: Create UK Deployment File
Rename:
deploy-live.yaml → deploy-live-uk.yaml
Update DB:
- name: DB_HOST
value: <UK_DB_IP>
Step 10: Upload File to Repo
Upload to:
manifests/
Commit message:
Added deploy-live-uk for DR UK
Step 11: Clone Release Pipeline
Go to:
Pipelines → Releases → sadad-pos-queue-consumer
- Click Edit
- Clone Live Stage
Step 12: Rename Stage
Sadad-Live-Pos-Queue-Consumer-UK
Step 13: Configure Kubernetes Connection
Update:
- Subscription: Sadad - Azure
- Cluster: Sadad-Online-UK-AKS
- Namespace: sadad-online-pos-queue-consumer
- Service Connection: sadad-online-pos-queue-consumer-uk
Step 14: Update Deployment File Path
$(System.DefaultWorkingDirectory)/Sadad-POS-Queue-Consumer/drop/deploy-live-uk.yaml
Step 15: Update Print Tag Script
Replace:
deploy-live.yaml → deploy-live-uk.yaml
Step 16: Run Pipeline
After commit → pipeline triggers automatically
Step 17: Deploy Release
Go to Releases → Select new release
Click:
- Deploy
- Approve
Step 18: Verify Deployment
kubectl get pods -n sadad-online-pos-queue-consumer
kubectl logs <pod>
Common Issue: Volume Mount Error
Error:
MountVolume failed: No such file or directory
Fix:
az storage share create \
--name pos-queue-logs \
--account-name <storage_account> \
--account-key <key>
Then restart pod:
kubectl delete pod <pod-name>
Final Validation
kubectl get pods
Expected:
Running
Summary
- Setup namespace
- Apply secrets + PVC
- Modify deployment YAML
- Update Azure DevOps pipeline
- Deploy via release
- Approve and validate
Best Practices
- Always clone existing pipeline
- Verify secrets before deployment
- Keep naming consistent across environments
- Validate storage before pod start
Migration Completed Successfully

