How to make Helm changes
Modify Kubernetes deployment configuration via Helm values files.
Chart structure
infra/k8s/charts/aucert-backend/
values/
dev.yaml # Dev environment overrides
staging.yaml # Staging overrides (placeholder)
production.yaml # Production overrides (placeholder)
Current dev values (values/dev.yaml):
global: { environment: dev, imageRegistry: "" }
backend:
replicaCount: 1
image: { repository: aucert-platform, tag: latest }
resources:
requests: { cpu: 250m, memory: 512Mi }
limits: { cpu: 1000m, memory: 1Gi }
frontend:
replicaCount: 1
image: { repository: aucert-dashboard, tag: latest }
resources:
requests: { cpu: 100m, memory: 256Mi }
limits: { cpu: 500m, memory: 512Mi }
Steps
Step 1: Edit the values file
Modify the environment-specific values file. Common changes:
# Scale up replicas
backend:
replicaCount: 2
# Update resource limits
backend:
resources:
requests: { cpu: 500m, memory: 1Gi }
limits: { cpu: 2000m, memory: 2Gi }
# Pin a specific image tag
backend:
image:
tag: abc1234 # commit SHA
Step 2: Dry-run to preview changes
# See what would change without applying
helm upgrade --install aucert-dev infra/k8s/charts/aucert-backend \
-n aucert-dev \
-f infra/k8s/charts/aucert-backend/values/dev.yaml \
--dry-run --debug
Review the rendered manifests carefully before applying.
Step 3: Apply changes
helm upgrade --install aucert-dev infra/k8s/charts/aucert-backend \
-n aucert-dev \
-f infra/k8s/charts/aucert-backend/values/dev.yaml
Step 4: Verify
# Check rollout status
kubectl rollout status deployment/aucert-backend -n aucert-dev --timeout=120s
# Verify pods are running
kubectl get pods -n aucert-dev
# Check logs for errors
kubectl logs -n aucert-dev -l app=backend --tail=50
Rollback
# View release history
helm history aucert-dev -n aucert-dev
# Rollback to previous revision
helm rollback aucert-dev -n aucert-dev
# Rollback to specific revision
helm rollback aucert-dev 3 -n aucert-dev
# Verify rollback
kubectl rollout status deployment/aucert-backend -n aucert-dev
Internal platform (Astra)
Astra does not use Helm — it uses raw Kubernetes manifests applied directly:
# Astra manifests location
ls infra/k8s/internal-platform/astra/
# Applied via deploy-astra.yml workflow or manually:
kubectl apply -f infra/k8s/internal-platform/astra/
See the deploy-astra.yml workflow for the full deployment process.
Context file updates
caution
When changing Helm values, update the corresponding context file:
| Change | Update |
|---|---|
| Values file changes | infra/.context/ENVIRONMENTS.md |
| New chart or template | infra/.context/CLOUD.md |
| Resource limit changes | infra/.context/ENVIRONMENTS.md |
What's next
- How to deploy to dev — Full deployment guide
- How to debug AKS pods — Troubleshoot running pods
- How to make Terraform changes — Infrastructure changes