Skip to content

TimotheeRen/KubePods

Repository files navigation

KubePods

KubePods is a Kubernetes based desktops hosting plateform. It allows users to easily provision linux desktops in containers throught a modern interface.

Architectural Overview

alt

KubePods relies on a microservices architecture in which each service has a specific role.

  • The Traefik reverse proxy handles incoming HTTP requests and redirects them to the corresponding service. It also provides caching, performance optimizations, and SEO-related features.
  • The frontend uses NGINX to serve statically compiled React web pages in production. It also uses React Router as a routing library rather than a framework-based routing solution.
  • The API relies on Axum to handle incoming HTTP requests and on Tonic for gRPC communication with services. It also handles JWT authentication.
  • The Users service uses Tonic to handle gRPC requests. It manages user-related operations, including authentication.
  • The Desktops service also uses Tonic to handle gRPC requests and manages desktop-related operations, including provisioning.
  • The Kubernetes Operator is a custom operator that relies on the Rust Kube library to communicate with the cluster API and provision desktop infrastructure. It continuously watches Desktop custom resources and provisions their infrastructure through a reconciliation loop, preventing configuration drift.

About

A Kubernetes based desktops hosting plateform

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors