Courseiva

CKAD Application Design and Build Practice Question

Which TWO of the following are valid fields in a CronJob spec? (Select 2)

⚠ Common exam trap

CNCF often tests the distinction between CronJob spec fields and Job spec fields, trapping candidates who confuse `completions` and `parallelism` (Job-level) with CronJob-level fields like `schedule` and `concurrencyPolicy`.

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

✓

concurrencyPolicy

B is correct because `concurrencyPolicy` is a valid field in a CronJob spec that controls how concurrent executions of the job are handled. It can be set to `Allow`, `Forbid`, or `Replace`, which determines whether a new job can start while a previous one is still running.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    restartPolicy

    Why it's wrong here

    restartPolicy is a valid field in the Pod template inside the jobTemplate, not in CronJob.spec. In fact, the Job pod template requires restartPolicy to be either Never or OnFailure, but a CronJob itself does not define container restart behavior. Placing restartPolicy at the CronJob level would be rejected by the API server as an unknown field.

  • ✓

    concurrencyPolicy

    Why this is correct

    concurrencyPolicy is a legitimate CronJob.spec field that controls how the controller handles Jobs that should be created while another Job from the same CronJob is still active. It accepts Allow, Forbid, or Replace; Allow starts a new Job immediately, Forbid skips the new run until the next schedule, and Replace cancels the active Job before starting a new one. This is a top-level scheduling-policy field, not something inherited from the Pod or Job template.

  • ✗

    completions

    Why it's wrong here

    completions is a field of the Job specification, specifically .spec.jobTemplate.spec.completions, defining how many successful pods must finish before the Job is complete. A CronJob only embeds a Job template under its own .spec.jobTemplate; it never accepts completions directly at the CronJob.spec level. Trying to set completions as a direct CronJob field would be invalid because the CronJob spec has a fixed schema that does not include it.

  • ✓

    schedule

    Why this is correct

    schedule is a required top-level field in CronJob.spec that takes a cron expression (such as '*/5 * * * *' or '@hourly'), telling the CronJob controller exactly when to create the Job object. This field directly corresponds to the 'cron' in CronJob and is analogous to the schedule line in a crontab file. The controller compares the schedule to the current time to decide whether to launch a Job.

  • ✗

    parallelism

    Why it's wrong here

    parallelism is a Job-level field, found at .spec.jobTemplate.spec.parallelism, that sets the maximum number of Pods that may run concurrently for that single Job. A CronJob schedules new Job objects, so any pod-level concurrency belongs inside the Job template, not the CronJob spec. Using parallelism directly in the CronJob spec is invalid and will be rejected by kubectl validation.

About these practice questions

One of 826 original CKAD practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

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.