Local files and environment
~/.kubefit
Everything the CLI keeps on your machine lives in one directory.
| Path | Contents |
|---|---|
config.json | Server origin, your CLI token, and the saved track with whether it is pinned. Treat it like a password file |
packs/<track>.json | Cached packs, one per track |
packs/<track>.json.sig | The Ed25519 signature each pack was verified against |
exams/<track>.json | The signed 17-question mock exam form for a track, fetched by kubefit packs |
reps.jsonl | Every rep recorded on this machine, one JSON object per line |
notes.jsonl | Notes written in the terminal |
remote-reps.jsonl, remote-notes.jsonl | Copies pulled from your account by kubefit sync, such as notes written in the app |
mock-sessions/, remote-mock-sessions.json | Mock exam session records made here, and the copies pulled from your account |
exam-sessions/<track>-*/ | One directory per mock exam attempt: its pack snapshot, work files, private kubeconfig and report.json. kubefit end removes these workspaces; durable results remain in mock-sessions/ |
synced, synced-notes, synced-mocks | Sync bookkeeping: which local reps, notes and mock sessions have already uploaded |
active-session.json, active-exam.json, session.lock | Present only while a drill or a mock exam is running |
work/ | Seeded exercise files for the current drill |
bin/ | Helper shims the graders expect on macOS |
Some paths appear only after the command that needs them has run.
What kubefit end removes
kubefit end deletes the muscle and muscle-ckne clusters, every kubefit-exam-<track> mock exam cluster, the kubefit-lfcs and kubefit-exam-lfcs VMs with their disks, the kubefit-upgrade cluster, the owned kubefit-etcd-recovery container and volume, and the temporary files under work/ and exam-sessions/. It keeps your token, packs, exam forms, reps, notes and mock exam reports.
It refuses to run inside a drill shell, while a drill is paused or active, and during a mock exam. Finish, kubefit escape or kubefit submit first.
To remove everything, run kubefit end and then delete ~/.kubefit. Reps and notes that already synced stay on your account.
Outside ~/.kubefit
| What | Where | Removed by |
|---|---|---|
kind clusters muscle and muscle-ckne | Docker containers, plus contexts in your kubeconfig | kubefit end |
Mock exam clusters kubefit-exam-<track> | Docker containers. Their kubeconfig is private to the exam session, not in ~/.kube/config | kubefit end |
kubefit-upgrade cluster from the CKA cluster upgrade drill, and the kubefit-etcd-recovery container and volume from the CKA etcd recovery drill | Docker | kubefit end (the recovery container and volume must carry the drill ownership label) |
LFCS VMs kubefit-lfcs and kubefit-exam-lfcs, with their practice disks | Lima's own directory | kubefit end |
| kind node and add-on images | Docker's image cache | Docker (docker image prune), if you want the space back |
Environment
| Variable | Default | Meaning |
|---|---|---|
KUBEFIT_SERVER | https://app.kubefit.com | API origin for login, packs and sync |
Leave KUBEFIT_SERVER unset for normal use. The CLI refuses a server that is not HTTPS, except localhost and loopback addresses for development, with refusing insecure KUBEFIT_SERVER. It also refuses a URL that carries credentials and a redirect to a different origin. The environment overrides the server for that process only; it does not replace the saved server. A saved token is withheld when the selected server differs from the server that issued it. If an older CLI already saved an unintended override, correct the server in config.json and sign in again. A token is only valid for the server that issued it, and the CLI verifies packs against its built-in public key no matter which origin served them.