Skip to content

openupthecloud/kubernetes-user-interface

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kubernetes User Interface

Learning objectives:

  1. Understand the core Kubernetes objects
  2. Create a non-trivial application with Typescript (and Go?)

Vision

As a new user to Kubernetes, the EKS dashboard was hard to navigate. I tried some existing Kubernetes dashboards, such as the Backstage plugin. They were okay, but I wanted something better, as I want a clean separation between node information and workload information. In a platform context, EKS would be hard to provide to developers "as a service". Whilst the kubctl CLI is useful, it's a lot of effort. Good for "actions", not for "overviews". I also wanted to self-host and easily hook up to a cluster, kinda like building my own "PaaS" UI over EKS. I felt that the Kubernetes resume challenge wasn't in-depth enough.

Kubernetes API

Personally, the docs on kubernetes.io I find hard to navigate, here is a rendered version of similar content. Do note that there are multiple API groups. This project currently makes use of the "core" and "apps" groups.

There is a GitHub organisation of Kubernetes Clients for accessing the Kubernetes API. This project makes use of the JavaScript (Typescript) client. You can see the JavaScript typedocs here. Additionally, the developer guide includes a lot of information about contributing to Kubernetes, including the API conventions.

Development environment setup

  1. Login to AWS ./scripts/aws-auth.sh
  2. Copy to /workspace/kubernetes-user-interface/backend/config.yml a Kubernetes configuration

Roadmap

This iteration:

  1. Update README
  2. Include POSTMAN collection for K8s APIs
  3. Fix frontend routing
  4. Ensure it can be deployed on a cluster (to read the cluster itself)

Next iteration:

  1. Integrate ECR view, to show container images
  2. Fix Kubernetes auth

Ideas for future

  1. Shoji interaction for events
  2. Fix Terraform module for cluster (RBAC roles)
  3. Include nested UX elements
  4. Support sidecars / multi-pods
  5. Show manifest in the UI
  6. ECR integration
  7. Animate the loading icon
  8. Fix Janky loading flashes
  9. Create views based on who is viewing (customizable?)
  10. Add loading spinners
  11. Add polling or websockets
  12. Move to proxy and clientside
  13. Update favicon
  14. Add integration tests to the backend
  15. Group events by resource type
  16. Convert into Backstage plugin

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published