Skip to main content

Project Yellow Olive

Pokémon Yellow, but you tame Kubernetes clusters instead of Pokémon.

A terminal-native retro adventure designed to make infrastructure learning feel fun, nostalgic, and a little less overwhelming.

GitHub stars License: MIT Python PyPI downloads Status: Active Development Made with ❤️ in Bengaluru 🇮🇳

If Yellow Olive helps you learn or stay motivated, a star on GitHub goes a long way - it helps more people find the project.

Opening screen with Professor Bald

📖 Interested in the technicalities - architecture, contributing, troubleshooting, and local development? Find your way here → Technical Documentation


Try it

Prerequisites: Python 3.10+, Docker, Minikube, and kubectl.

pip install yellow-olive
yellow-olive start

The first time you begin a mission, the game spins up a local Minikube cluster - this can take up to a minute.

Tip: keep two terminal tabs open - one for the game, one as your Command Chamber for kubectl commands.

Running from source or need setup help? See the documentation.


Yellow Olive Academy [ Work in Progress ]

Not ready to jump into the adventure? Start at the Academy.

It's a pixel-art classroom where Kubernetes ideas are explained with simple pictures and short lessons, a little like a Game Boy textbook. No setup needed - it opens right in your browser.

Visit Yellow Olive Academy

Yellow Olive Academy lesson on Pods

You can also open it anytime from the game's main menu.

Built with Pyxel, a retro game engine.


The Motivation

Kubernetes is powerful...
Kubernetes is everywhere...
Kubernetes runs the modern world...
And yet, for many of us, learning it feels confusing, overwhelming, and sometimes just plain boring :(

Project Yellow Olive is my personal, experimental attempt at changing that.

I grew up on a GameBoy, lost in the world of Pokémon. Even today, a single chiptune note takes me straight back to those golden childhood days. I know I'm not alone in that feeling.

Nostalgia has a strange power - it lowers resistance, sparks curiosity, and makes difficult things feel lighter.

Yellow Olive is built on that belief: combine nostalgia with motivation, and even something as complex as Kubernetes can become approachable.


An Honest Take

I've attempted the CKAD and CKA certifications - and I didn't clear them.

Not because I didn't understand the concepts, but because I didn't practice enough. Platforms like Killer.sh demand consistency and repetition - and like many of us, I underestimated that discipline.

This project isn't a replacement for serious exam prep.

It's a practice ground - a way to build confidence, stay engaged, and keep the adrenaline slightly elevated while solving real problems.

Not every day is productive. Not every day is high-energy.

This is just my attempt to make the hard days a little easier to push through.


Meet the Characters

Professor Bald Uncle

Professor Bald Uncle

The classic mentor archetype. Calm, experienced, slightly intimidating at first glance.

He steps in when you're stuck, nudges you in the right direction, and reminds you that debugging is part of the journey.

Strict on the outside, generous at heart.

Electromon

Electromon

Your closest companion. Quiet by nature, but restless at heart - he doesn't like being confined for long.

When something feels off in the cluster, he's usually at the center of it. Shy, but loyal through every broken deployment.

PsyQuack

PsyQuack

He doesn't talk much. He watches.
You think you fixed the Deployment? He checks.
You're confident the Service works? He verifies.
If something's still off, PsyQuack will let you know - in his own slightly unhinged way.
He doesn't reward effort. He rewards correctness.

Cool Turtle

Cool Turtle

A wandering engineer who shows up wherever the cluster needs steady hands.

Calm under pressure, stubborn about uptime, and always trying to keep the signal alive
long enough for someone else to finish the fix.

You'll meet him again - different towns, same problem: something critical stopped reaching
where it was supposed to go.

Team Evil

Team Evil

The recurring troublemakers of the Yellow Olive world.

They rarely smash workloads directly - they break the paths between them: routing, naming,
visibility, the quiet plumbing that makes a cluster feel like one system.

Wherever infrastructure should connect, Team Evil has probably been there first.

Master Hana

Master Hana

Harbour Master of Sakura Blossom Village during hanami festival week.

She keeps the gates, piers, and customs lanes staffed when trainers arrive from every region.
Calm, kind, and tired only when the roster says one PokePod and the line says a hundred.

From Yellow Olive to Kubernetes

Every character, keyword, and challenge maps directly to a real Kubernetes concept.

Yellow Olive Concept Kubernetes Equivalent What It Means in Practice
Posemon Container A single runnable unit inside a workload
Pokepod Pod The smallest deployable unit - houses Posemons
Harbour Roster Deployment Keeps the right number of PokePods on duty at a post
Region / Town Namespace A bounded district in the cluster - separate scope for resources

(And many more - every mechanic is built to teach something real.)


Gameplay Commands

  • psyquack validate - PsyQuack checks your cluster fix for the current challenge.
  • psyquack hint - A nudge from Professor Bald (without spoiling the answer).
  • psyquack back - Return to the previous screen.

See it in Action

Full gameplay walkthrough (2 min): Watch on YouTube


Contributing

Contributions are welcome - especially new challenges and scenarios.

Open an issue with your idea, then follow the contributing guide in the documentation.


Roadmap

Save/load progress and PyPI packaging are live.

Arc Region Kubernetes focus
Oakwood Meadows Challenges 1–7 Pods
Signal Town Challenges 8–13 Services, DNS, Ingress
Gold Rush City Challenges 14–19 RBAC
Sakura Harbour Challenges 20–24 Deployments (scale, rollouts, canary)

Full roadmap → documentation


Music Credits

Music is sourced from OpenGameArt. Licenses vary by track - see the table below. Attribution is required for CC-BY tracks.

Music File Track Name Author License
screen_1_opening_song.mp3 JRPG Piano Joth CC0
screen_2_music.mp3 Town Theme RPG Joth CC0
battle_music.ogg 8 bit RPG Battle Encounter Theme Ted Kerr CC0
battle_music_2.mp3 8 bit Chiptune Encounter Theme Shiru8Bit CC0
win_music.ogg Win Jingle Fupi CC0
loose_music.ogg Lost Game Short Music Clip Robin Lamb CC0
signal_town_intro_music.mp3 Abandoned Preston Peak CC0
cool_turtle_intro_music.mp3 Fated Encounter Preston Peak CC0
team_evil_intro_music.mp3 Boneyard Preston Peak CC0
gold_rush_city_intro_music.ogg Dacoit ~ Desert Theme Spring CC-BY 3.0
walk_to_vault.ogg Lasso Lady congusbongus CC0
sakura_harbour_intro.mp3 Enchanted Festival Matthew Pablo CC-BY 3.0 (attribution)
hana_intro.wav Town Theme 3 LarsG CC-BY 3.0
sakura_harbour_prologue_end.ogg Flowerbed Fields [Loop] Zane Little Music CC-BY 3.0

License

MIT - see LICENSE for details.

Metadata

Release files for yellow-olive 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yellow-olive 0.9.0
File Size Uploaded
yellow_olive-0.9.0.tar.gz 67.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for yellow-olive 0.9.0
File Interpreter ABI Platform
yellow_olive-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 135.2 MB

Release files / yellow_olive-0.9.0.tar.gz

Download URL yellow_olive-0.9.0.tar.gz
Size 67.6 MB
Tags Source
SHA-256 checksum
How to use checksums
a468a0df8555fa665f41ee98b6726602ef55dd46252afd54d732365348828111
BLAKE2b-256 checksum
How to use checksums
8868205e83652b55db78c2d6a918551c8ee91f6e3270eb414c10849ca35817ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.7

Release files / yellow_olive-0.9.0-py3-none-any.whl

Download URL yellow_olive-0.9.0-py3-none-any.whl
Size 67.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b45536e8d3f15a42edc35765089300cea18224836c83835b5fbb73669d7d4038
BLAKE2b-256 checksum
How to use checksums
578c6fbaf1b54770e3bf7d9384d5971376e3a799a3f09924620f69150e135064
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6

2 release files

0.5.2

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page