Hi, from Project Yellow Olive¶
Project Yellow Olive is a terminal-native (TUI) game built in Python with Textual and PyGame. Players fix real Kubernetes problems in a local Minikube cluster while progressing through a Pokémon-inspired story.
This site is for contributors, maintainers, and anyone who wants to understand how the game works under the hood. For the player-facing pitch, characters, and quick start, see the GitHub README.
What you will find here¶
| Page | Purpose |
|---|---|
| Getting Started | Full install, PyPI vs source, two-terminal workflow |
| Architecture | How the app boots, loads challenges, and talks to kubectl |
| Scenarios | Oakwood Meadows and Signal Town arcs, folder layout |
| Lab Workspace | The yellow-olive-lab/ mirror and what players edit |
| Validation | resource_inspector helpers and per-challenge validators |
| Cluster Lifecycle | Minikube bootstrap, namespaces, teardown on quit |
| Contributing | How to add challenges and new scenarios |
| Troubleshooting | Common Minikube and kubectl failures |
| Roadmap | Planned features and release status |
Repository layout (high level)¶
Yellow-Olive/
├── app.py # Textual app entry point + `yellow-olive` CLI
├── scenarios/ # Story arcs, challenges, prologues, k8s manifests
├── screens/common/ # Shared UI (base challenge screen, init, resume, help)
├── services/ # kubectl apply (write) and inspect (read)
├── utils/general_utils.py # Progress, lab workspace, challenge loading
├── scripts/script.sh # Minikube start + health wait
└── challenge_files/ # Shared constants used by validators
Tech stack¶
- UI: Textual + Rich
- Cluster: Minikube profile
project-yellow-olive, single node - Manifests: Plain YAML applied with
kubectl apply -f - Validation: Python validators call
kubectl get/kubectl execviaservices/resource_inspector.py - Progress: JSON file at
yellow-olive-lab/progress.json