Cloud / HELM Interview Questions
What are Helm release lifecycle policies and how do you manage release history?
Helm v3 stores release history as Secrets, each revision containing complete state. Managing this history is important for etcd performance and compliance.
Viewing release history: helm history my-release helm history my-release --max 20 helm list --all-namespaces --date # Show all releases sorted by date helm list --deployed # Currently deployed releases only helm list --failed # Failed releases helm list --pending # Pending releases
Limiting history with --history-max: # During install helm install my-release ./chart --history-max 10 # During upgrade helm upgrade my-release ./chart --history-max 10 # Configure default in helm CLI export HELM_HISTORY_MAX=10 helm upgrade my-release ./chart
Cleaning up old revisions manually: # Find old revisions kubectl get secrets -n my-namespace | grep "sh.helm.release.v1.my-release" | grep -v "v[0-9]\\+$" # Delete old secrets (keep last 10) kubectl get secrets -n my-namespace -o name | grep "sh.helm.release.v1.my-release" | \\ head -n -10 | xargs kubectl delete -n my-namespace
Setting global history limit in Helm: # Environment variable export HELM_HISTORY_MAX=10 # In values (for CI/CD) helm upgrade --install myapp ./chart --set global.historyMax=10 # Chart default in values.yaml historyMax: 10
Release cleanup automation with CronJob: apiVersion: batch/v1 kind: CronJob metadata: name: helm-cleanup spec: schedule: "0 0 * * 0" # Weekly jobTemplate: spec: template: spec: containers: - name: cleanup image: alpine/helm:3.12.0 command: - sh - -c - | for ns in $(kubectl get ns -o name | cut -d/ -f2); do for release in $(helm list -n $ns -q); do helm history $release -n $ns --max $HELM_HISTORY_MAX done done
Compliance and auditing: - Keep minimum 5 revisions for rollback capability - Retain failed release history for debugging - Implement retention policies based on environment: - Dev: 10 revisions - Staging: 20 revisions - Production: 30 revisions - Export release state to external audit system periodically
Disabling history (not recommended): --history-max=0 disables history entirely - prevents rollback.
More Related questions...