Packs and signing

A drill pack contains one track's drills in a single signed file. Dedicated exams are delivered as separate signed files. The CLI is the gym; packs are the equipment it loads.

Downloading a track now fetches both its drill pack and its 17-question exam form. Exam answers and reference solutions are excluded from the download. The grading checks are included, because grading runs on your machine; the CLI keeps them outside the exam shell's working directory, and the shell exposes only tasks and supplied inputs. Cached exam files and the snapshot saved for an active exam are reverified before use.

What is in a drill pack

  • Every exercise for the track: the task text, its target minutes, its exam domain, and that domain's exam percentage where the drill carries one (CKA and CKAD today).
  • The setup and reset scripts that seed each scenario, and the graders that check the live system.
  • The walkthrough that kubefit hint and kubefit solution read.
  • The shared lab helpers and add-on installers the track uses, such as an ingress controller or Cilium.
  • For each task, the documentation pages that answer it, limited to the sites the exam lets you open.

Each pack carries a version derived from its content, so the CLI can tell when the app has published a new one.

Downloading

kubefit packs            # your saved track, or all eight when none is saved
kubefit packs cka lfcs   # only the ones you name

Packs need a signed-in CLI (kubefit login). They are cached under ~/.kubefit/packs and refreshed when a new version is published. After that, drills run without a network connection. Downloads count against a daily per-account quota that is far above normal use; see quotas.

Signing

Every pack is served with a detached Ed25519 signature. The matching public key is compiled into the CLI, and the CLI refuses to cache or run a pack that does not verify. That matters because a pack contains scripts that run against your cluster and, for LFCS, as root inside the VM: the signature is how you know those scripts are the ones KubeFit published.

If verification fails:

  1. Run kubefit packs again. An interrupted download is the usual cause.
  2. Check KUBEFIT_SERVER is unset, or points where you mean it to.
  3. Update the CLI: brew upgrade kubefit, or repeat the Linux download on Install. An old build can lag the packs the app publishes.
  4. Still failing? Do not work around it. Write to hello@kubefit.com with the output and your kubefit version.

How packs are written

Scenarios are original. They are built from each exam's public curriculum: the published domains. Nothing in a pack is recalled, copied or paraphrased from a live exam. Where drills carry their domain's percentage, which is CKA and CKAD today, it drives the scheduler: a miss in a 30% domain outranks a miss in a 10% one. The other tracks rank every domain equally until their drills carry percentages.

Targets are training targets, not official exam timings. Twenty-five drills per pack is a training set, not a claim of complete coverage. See coverage against the exam.

KubeFit is closed-source, so packs and the CLI are distributed as built artifacts rather than as source. See About KubeFit.