Skip to main content

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:

ChangeUpdate
Values file changesinfra/.context/ENVIRONMENTS.md
New chart or templateinfra/.context/CLOUD.md
Resource limit changesinfra/.context/ENVIRONMENTS.md

What's next