CuriousLearner / CuriousLearner/cka-lab-runner

up fails with an opaque exec error when required tools are missing

Open
#2 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.