/kubeground

Opensource Kubernetes learning platform

Primary LanguageGoMIT LicenseMIT

License: MIT

kubeground

๐Ÿšง This project is heavily under construction! ๐Ÿšง

Discover kubeground, an open-source app that provides Kubernetes training in a unique and engaging way. With hand-picked challenges, you can learn Kubernetes by troubleshooting different components of the system. As you progress through the levels, you'll gain valuable experience and deepen your understanding of this powerful technology.

  • ๐ŸŽฎ Gamify kubernetes learning Experience a fun and engaging way to improve your Kubernetes knowledge with our hand-picked, unique challenges. Solve each level by troubleshooting your local cluster, and enjoy the process of leveling up your skills.
  • ๐Ÿ”‹ Batteries included Have no lagging experience while using the product (thanks Echo!).
  • ๐Ÿ“– Comprehensive level documentation included All levels should have clear description & documentation.

Technologies used

kubeground uses many popular open source tools, including:

  1. Go Echo: High performance, extensible, minimalist Go web framework.

  2. GORM: The fantastic ORM library for Golang, aims to be developer friendly.

  3. kubernetes/client-go: Go clients for talking to a kubernetes cluster.

  4. Kind: kind is a tool for running local Kubernetes clusters using Docker container โ€œnodesโ€. kind was primarily designed for testing Kubernetes itself, but may be used for local development or CI.

  5. Tilt: A toolkit for fixing the pains of microservice development.

  6. Vite: a bundler that takes the boilerplate out of your set up. It'll compile JS component frameworks, handle CSS preprocessors with little-to-no config (say, SCSS and PostCSS), and show dev changes on-the-fly using hot module replacement (HMR).

  7. React: React is a JavaScript library for building user interfaces.

  8. MUI: MUI Core contains foundational React UI component libraries for shipping new features faster.

Getting started

cd backend
go run .

Navigate to the local dashboard to start init some levels

Feature set

This project is still in early alpha, so we have many features soon to come!
For reference, here's our complete roadmap of current and upcoming features:

Feature Status
Create and delete kubernetes resources dynamically from YAML files: โœ…
Build a fast API server with Go Echo to handle business logic โœ…
Utilize GORM to save and query level state โœ…
Develop a user-friendly frontend dashboard โณ
Connect the frontend with the backend via API โณ
Display table of all levels ๐Ÿ“ฌ
Add a button to quickly initialize and clean a level ๐Ÿ“ฌ
Add dynamic configuration for each level, including objectives, tips, and solutions, displayed in the dashboard ๐Ÿ“ฌ
Create unit tests for frontend ๐Ÿ“ฌ
Create unit tests for backend ๐Ÿ“ฌ
Validate the product with other local Kubernetes CLIs, such as k3d, .. ๐Ÿ“ฌ
  • โœ… = Ready to use
  • โณ = In progress
  • ๐Ÿ“ฌ = Not yet started

Have an idea? Notice a bug?

We'd love to hear your feedback! Feel free to log an issue on our GitHub issues page.