Skip to content

Quiz: Helm

← Back to quiz index

13 questions

L1 (8 questions)

1. Helm upgrade failed and the app is broken. How do you recover?

Show answer 1. helm history to see revisions.
2. helm rollback to go back.
3. Check helm get values to see what changed.
4. helm get manifest to see rendered templates.

2. What is the difference between helm install and helm upgrade --install?

Show answer helm install fails if release exists. helm upgrade --install creates if not exists, upgrades if exists. Use upgrade --install in CI/CD for idempotency.

3. What files make up a minimal Helm chart?

Show answer Chart.yaml (metadata: name, version, appVersion), values.yaml (default config), and templates/ directory with at least one template (e.g., deployment.yaml). charts/ holds dependencies.

4. How does Helm values precedence work when multiple sources are provided?

Show answer Left to right, last wins: chart values.yaml < parent chart values < -f file1.yaml < -f file2.yaml < --set flags. --set always wins. Use helm get values to see the final merged result.

5. What does helm template do and why is it useful?

Show answer Renders templates locally without contacting the cluster. Shows the exact YAML that would be applied. Essential for debugging template logic, CI validation, and code review of chart changes.

6. How do you roll back a failed Helm release?

Show answer helm history shows revisions. helm rollback reverts to that state. Helm keeps release history as secrets in the namespace (default 10 revisions).

7. How do you pass secrets to a Helm chart without putting them in values files?

Show answer 1. Use --set from CI env vars.
2. Use external secret operators (External Secrets, Sealed Secrets).
3. Reference existing K8s secrets in templates. Never commit plaintext secrets in values files.

8. How do you manage environment-specific config in Helm?

Show answer Use multiple values files (values-dev.yaml, values-staging.yaml, values-prod.yaml) with environment-specific overrides. Deploy with: helm upgrade -f values.yaml -f values-.yaml. Keep base defaults in values.yaml.

L2 (5 questions)

1. What is the difference between helm upgrade and helm install?

Show answer install creates a new release (fails if it exists). upgrade updates an existing release (fails if it doesn't exist). upgrade --install does both — idempotent, preferred in CI/CD pipelines.

2. A helm upgrade succeeded but the pods are crashlooping. Why didn't Helm catch it?

Show answer By default Helm only waits for resources to be submitted to the API server, not for pods to become ready. Use --wait to block until pods are Ready, and --timeout to set a deadline. Without --wait, Helm marks success even if pods fail.

3. What are Helm hooks and when would you use them?

Show answer Hooks are resources annotated with helm.sh/hook that run at specific lifecycle points (pre-install, post-upgrade, pre-delete, etc.). Common uses: DB migrations before upgrade, smoke tests after install, cleanup on delete.

4. What is a Helm library chart?

Show answer A chart with type: library in Chart.yaml. It contains only named templates (helpers) and no deployable resources. Other charts declare it as a dependency and call its templates. Useful for sharing boilerplate (labels, annotations, resource templates) across charts.

5. How do you debug a Helm template rendering issue?

Show answer 1. helm template --debug to see rendered output with debug info.
2. helm lint to catch syntax errors.
3. Add {{ fail }} to test conditionals.
4. Use helm get manifest to see what was actually deployed vs what you expected.