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
25 lines
1.3 KiB
Docker
25 lines
1.3 KiB
Docker
# The exam's remote desktop: XFCE with a terminal and Firefox, served to the browser over noVNC.
|
|
# It is the "base" machine of a session - no kubeconfig here; every task says which host to ssh to.
|
|
FROM docker.io/library/debian:trixie-slim
|
|
ENV DEBIAN_FRONTEND=noninteractive LANG=C.UTF-8
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
xfce4 xfce4-terminal dbus-x11 elementary-xfce-icon-theme greybird-gtk-theme \
|
|
fonts-dejavu fonts-liberation \
|
|
tigervnc-standalone-server novnc websockify \
|
|
firefox-esr mousepad xclip \
|
|
openssh-client sudo vim nano less jq tmux curl wget bash-completion ca-certificates \
|
|
procps iputils-ping dnsutils \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
COPY rootfs/ /
|
|
RUN useradd -m -s /bin/bash -u 1000 candidate \
|
|
&& echo 'candidate ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/candidate && chmod 440 /etc/sudoers.d/candidate \
|
|
&& install -d -o candidate -g candidate /home/candidate/.config/xfce4/xfconf/xfce-perchannel-xml \
|
|
&& install -m644 -o candidate -g candidate /etc/xdg/xfce4/panel/default.xml \
|
|
/home/candidate/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml \
|
|
&& chmod +x /usr/local/bin/start-desktop
|
|
USER candidate
|
|
WORKDIR /home/candidate
|
|
EXPOSE 6080
|
|
ENTRYPOINT ["/usr/local/bin/start-desktop"]
|