Skip to content

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 exec via services/resource_inspector.py
  • Progress: JSON file at yellow-olive-lab/progress.json