kubestronaut-sim runs each exam task on a host of its own - a kind (kubeadm) cluster in rootless podman, or a QEMU/KVM Ubuntu VM for the CKS tasks that need their own kernel (Falco, AppArmor) - and puts a browser desktop in front of them, the way killer.sh and sailor.sh do. - ksim, sim/: the engine (sessions, drills, study mode, grading, coverage, audit), host and VM lifecycle, the desktop - images/: exam host images (common, CKS variant with its tools, VM guest) - cka/ (131 tasks), ckad/ (105), cks/ (110): task banks, curricula with study notes, reference solutions and scripted solutions Every domain of every track has at least 17 pool tasks. `./ksim audit` proves a task three ways: it seeds cleanly on its own host, scores nothing before anyone has worked on it, and reaches full marks when its scripted solution is run on the host as `candidate`. All 346 tasks pass (CKA audited 2026-10-13, CKAD and CKS 2026-10-12). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZPd3GGWyxTgAkL6a4gAJz
17 lines
1.0 KiB
Docker
17 lines
1.0 KiB
Docker
# The machine room for exam hosts that have to be real machines.
|
|
#
|
|
# Most exam hosts are containers (images/node). A container shares this machine's kernel, and under
|
|
# rootless podman it may neither load eBPF programs nor use a kernel feature this machine lacks: no
|
|
# Falco, no AppArmor. Tasks that need them get a virtual machine instead - Ubuntu, like the real exam
|
|
# hosts - and this image is what runs it: QEMU with KVM, in a container on the simulator's network
|
|
# that carries the host's name, so `ssh cks0105` from the desktop reaches the VM exactly as it
|
|
# reaches a container host. `./ksim build cks --vm` builds the image and the VM's disk.
|
|
FROM docker.io/library/debian:trixie-slim
|
|
RUN apt-get update \
|
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
|
qemu-system-x86 qemu-utils cloud-image-utils genisoimage openssh-client ca-certificates procps \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
COPY rootfs/ /
|
|
RUN chmod 755 /usr/local/bin/ksim-vm && chmod 700 /root/.ssh && chmod 600 /root/.ssh/config
|
|
ENTRYPOINT ["/usr/local/bin/ksim-vm"]
|