CuriousLearner / CuriousLearner/cka-lab-runner
up fails with an opaque exec error when required tools are missing
- Dominant language
- Go
- Stars
- 10
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
## Problem
When a required external tool is not installed / not in `PATH`, `cka-lab-runner up` (and `lab run`) fail with a raw Go exec error instead of telling the user which tool is missing and how to install it.
For example, with `kind` not installed:
```
Error: creating provider: ... exec: "kind": executable file not found in $PATH
```
This is confusing during first-time setup — the user has no clear signal about *which* tool is missing (provider binary, `kubectl`, or `docker`) or where to get it.
## Expected
A clear, actionable preflight check that lists each required tool, marks what's missing, and points at install instructions — ideally run automatically before `up` and also available as a standalone command.
## Dependencies that should be checked
- a cluster provider: `kind` / `k3d` / `minikube` (any one in `auto` mode)
- `kubectl` (used by every lab)
- `docker` (default container runtime for all three providers)
## Proposal
Add a `cka-lab-runner check` command and run the same check at the start of `up`, failing fast with a readable list + install hints instead of an opaque exec error.
Contributor guide
Research direction
Start by tracing the `cka-lab-runner up` and `lab run` entry points to find where external tools are invoked and where a shared preflight check can run. Review how provider auto mode selects `kind`, `k3d`, or `minikube`. Done means `check` is available, `up` runs the same check, and missing tools produce a readable list with installation hints.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, go, kubernetes
- Domain
- cli, devops
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100