Open gberche-orange opened 1 year ago
Kubesphere -> Don't provide only a webui
https://github.com/kubesphere/kubesphere?tab=readme-ov-file
kube-web-view -> Seems dead
https://codeberg.org/hjacobs/kube-web-view
As a marketplace user of our platform, we needed a web UI in order to consume Kubernetes API offering provisioning capabilities such as databases, compute (Kubernetes clusters, namespaces, etc.). This web UI needed to support various operations, including authentication, namespace selection, CRD (Custom Resource Definition) discovery, creation, modification, and deletion. Additionally, we needed other Features such as a clear list of existing CRs (Custom Resources), grouping of linked CRs, visualization of their status, and the ability to view secrets. We also wanted to mask non-CR related Features for demo purposes.
The main objective of this report is to share our results with the community and to provide feedback on our experiences with those services.
Rancher: Kubernetes management platform for multi-cluster orchestration.
Git Repo: https://github.com/rancher/ui
Number of contributors: 141
Last commit: 3 weeks ago
Business model: Sell an Entreprise Kubernetes Management Platform
GetPort: Cloud-native platform for developing, deploying, and managing applications.
Git Repo: https://github.com/port-labs
Number of contributors: /
Last commit: /
Business model: Sell an open internal developer portal
kubernetes/dashboard: Official web-based user interface for Kubernetes clusters.
Git Repo: https://github.com/kubernetes/dashboard
Number of contributors: 370
Last commit: 28 march 2024
Business model: Unknown
Lens: Kubernetes IDE for managing and monitoring clusters and workloads.
Git Repo: https://github.com/lensapp/lens
Number of contributors: 112
Last commit: 3 months ago
Business model: Sell of Lens
Openshift console: Web console for managing OpenShift clusters and applications.
Git Repo: https://github.com/openshift/console
Number of contributors: 196
Last commit: This week
Business model: Sell of Openshift
Theia: Extensible platform for building cloud and desktop IDEs.
Git Repo: https://github.com/vscode-kubernetes-tools
Number of contributors: 84
Last commit: last week
Business model: /
Vscode: Lightweight and extensible code editor with rich ecosystem support.
Same as theia since the kubernetes plugin is the same
**Kui:** Command-line interface (CLI) with enhanced visualization for Kubernetes.ernetes-sigs/kui
Number of contributors: 25
Last commit: Last year
Business model: /
Portainer: Docker container management tool with a simple web-based interface.
Git Repo: https://github.com/portainer/portainer/
Number of contributors: 228
Last commit: Today
Business model: Sell https://www.portainer.io/
Headlamp: Kubernetes dashboard and management tool focused on simplicity and ease of use.
Git Repo: https://github.com/headlamp-k8s/headlamp
Number of contributors: 40
Last commit: yesterday
Business model: /
Devtron: Continuous delivery platform for Kubernetes applications.
Git Repo: https://github.com/devtron-labs/devtron
Number of contributors: 104
Last commit: yesterday
Business model: Sell Enterprise version
Backstage: Developer portal and infrastructure platform for large-scale software development.
Git Repo: https://github.com/backstage/backstage
Number of contributors: 1429
Last commit: Today
Business model: Offered to CNCF by Spotify
Our selection criteria were the following :
Screenshots of ArtifactHub.io security scans have been made the 10/04/2024 and may have evolved since.
After evaluating the WebUI options, Headlamp emerged as the most suitable choice for us, particularly due to its extensive customization capabilities.
We encountered issues running Rancher on our minikube instance, and its broad functionality didn't align with our specific needs for CR and CRD management. We needed the ability to restrict certain functionalities for users, which was not feasible with Rancher.
Openshift console's poor documentation made it challenging to understand how to develop a plugin for our use case or contribute effectively.
In contrast, Headlamp offers an intuitive interface and streamlined functionality that align perfectly with our requirements. Therefore, we've decided to contribute to Headlamp to add missing features and utilize it as our WebUI for consuming Crossplane CRs.
Here a model of a json schema using an enum that give the wanted behaviour :
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: examples.mygroup.io
spec:
group: mygroup.io
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
plan:
type: string
description: "The plan for the example resource. Allowed values are small, medium, large."
enum:
- small
- medium
- large
required:
- plan
scope: Namespaced
names:
plural: examples
singular: example
kind: Example
shortNames:
- ex
Expected behavior
Observed behavior
No yet webui is currently offered in paas-templates
Possible alternatives
Backstage
https://backstage.io/
4 main fuctionnalities:
an exemple of what it would look like for k8s env : https://backstage.io/blog/2021/01/12/new-backstage-feature-kubernetes-for-service-owners/ https://youtu.be/VivuOxn3VQ8?si=FQchS0nChfQ_C49A
https://github.com/backstage/backstage/issues/5511 https://github.com/backstage/backstage/issues/12455
https://artifacthub.io/packages/helm/backstage/backstage
Headlamp
https://www.headlamp.dev
https://github.com/headlamp-k8s/headlamp/ https://www.headlamp.dev/docs/latest/development/frontend/
Example of head lamp custom UI for displaying custom CRDs https://github.com/epam/edp-headlamp
Pending feature suggestion to improve CRD support https://github.com/headlamp-k8s/headlamp/issues/955
https://artifacthub.io/packages/helm/headlamp/headlamp
devtron
https://github.com/devtron-labs/devtron https://docs.devtron.ai/usage/resource-browser https://preview.devtron.ai/dashboard/resource-browser/1/all/prometheusrule/monitoring.coreos.com image
portainer
https://docs.portainer.io/user/kubernetes/dashboard
https://github.com/kubernetes-sigs/kui
vscode
"vs-kubernetes.enable-snap-flag": true,
to get the list of clusters if using snap packages : https://github.com/vscode-kubernetes-tools/vscode-kubernetes-tools/issues/522Theia
https://theia-ide.org/
https://github.com/eclipse-theia/theia
[ ] K8S installation
[ ] K8S resources support through a plugin https://theia-ide.org/docs/extensions/
Openshift console
Yaml completion
Web Form generation
[ ] Study doc: OLM vs built-in CRD support in console
[ ] deploy as helm chart
[ ] further configure openshift console
Lens
kubernetes/dashboard
karpor
https://www.kusionstack.io/karpor/ https://www.kusionstack.io/karpor/user-guide/insight/topology https://karpor-demo.kusionstack.io/
does not display CR as of Sep 2024. Mostly ready-only visualization
Rancher dashboard
Others
Wrapping through app installer (helm chart, carvel package, OLM package)
See sample helm chart for wrapping CRDs https://artifacthub.io/packages/search?ts_query_web=crd&sort=stars
Affected releases