CKAD Application Deployment Practice Question
A Helm chart is installed with the command 'helm install myapp ./mychart'. You need to upgrade the release with new values from a file 'prod-values.yaml'. Which command is correct?
⚠ Common exam trap
The CKAD exam often tests the exact positional syntax of Helm commands, and the trap here is that candidates may forget that `helm upgrade` requires both the release name and the chart path as positional arguments, leading them to pick options that omit the chart path (like D) or misplace arguments (like B).
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
helm upgrade myapp ./mychart --values prod-values.yaml
`helm upgrade myapp ./mychart --values prod-values.yaml` explicitly specifies the release name (`myapp`), the chart path (`./mychart`), and the values file (`--values prod-values.yaml`). This is the standard syntax for upgrading a Helm release with custom values, where `--values` (or `-f`) merges the provided YAML file over the default chart values.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
helm upgrade myapp ./mychart --values prod-values.yaml
Why this is correct
Helm's upgrade subcommand follows the positional contract `helm upgrade [RELEASE] [CHART]`, so `myapp` is the release being upgraded and `./mychart` is the chart to deploy. The `--values prod-values.yaml` flag (or `-f`) passes the production overrides file, which is merged into the release's configuration. This is the exact, minimal, and idempotent command for upgrading an existing release named `myapp` from the local chart directory using the specified values file.
- ✗
helm upgrade ./mychart prod-values.yaml --release myapp
Why it's wrong here
This inverts the required positional order: Helm interprets `./mychart` as the release name and `prod-values.yaml` as the chart argument, since a chart path must immediately follow the release name. There is no `--release` flag on `helm upgrade`, so the trailing `--release myapp` is not a recognized way to set the release; Helm will attempt to treat `prod-values.yaml` as a chart reference and fail. The correct pattern is always `helm upgrade <release> <chart> [flags]`.
- ✗
helm upgrade --install myapp ./mychart -f prod-values.yaml
Why it's wrong here
The `--install` flag changes the command from a pure upgrade to an install-or-upgrade operation: if `myapp` does not exist, Helm will create it rather than erroring. In this scenario the release already exists, so the flag is unnecessary and masks the failure mode that would normally warn you when a release is missing. The `-f` shorthand is valid, but the extra flag is the reason this isn't the clean, direct upgrade command.
- ✗
helm upgrade myapp -f prod-values.yaml
Why it's wrong here
This command provides the release name and a values override but omits the chart argument, which Helm requires as the second positional to know what package to deploy. Helm will fail with a missing chart error before it even reads the `-f` file, because the upgrade target chart is a mandatory positional. Always supply `<release> <chart>` before any overrides; values files only customize, they never replace the chart reference.
Go deeper
Related to this question
About these practice questions
Courseiva writes every CKAD question from scratch — 826 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This CKAD practice question is part of Courseiva's free CNCF certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the CKAD exam.