Skip to content

[Sandbox] Headlamp #25

Closed
Closed
@blixtra

Description

@blixtra

Application contact emails

chriskuehl@microsoft.com, joaquim.rocha@microsoft.com

Project Summary

A fully-featured and extensible Kubernetes Dashboard

Project Description

Headlamp is a Kubernetes UI focused on extensibility so that one can quickly and easily build custom Kubernetes UI. It provides a fully functional and feature-rich out-of-the-box experience with components that can be easily added to and/or replaced. It can be run as either a web app (served/hosted) or a desktop app (for Mac, Linux, and Windows).

Org repo URL

https://github.com/headlamp-k8s/

Project repo URL

https://github.com/headlamp-k8s/headlamp

Additional repos

No response

Website URL

https://www.headlamp.dev

Roadmap

https://github.com/kinvolk/headlamp/projects/2

Roadmap context

  • Focus is on building out and improving the plugin system and improving tools to easily get started with creating plugins.
  • Investigating ways to incorporate more tools to proactively resolve common cluster issues and provide further insight into the underlaying system.

Contributing Guide

https://headlamp.dev/docs/latest/contributing/

Code of Conduct (CoC)

https://github.com/kinvolk/contribution/blob/master/CODE_OF_CONDUCT.md

Adopters

No response

Contributing or Sponsoring Org

https://www.microsoft.com/

Maintainers file

https://github.com/headlamp-k8s/headlamp/blob/main/MAINTAINERS

IP Policy

  • If the project is accepted, I agree the project will follow the CNCF IP Policy

Trademark and accounts

  • If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

Why CNCF?

We want to encourage further community adoption and contributions to Headlamp and feel that having the project in a neutral organization reinforces the open governance we wish to establish for the project. We also value this step as we feel it brings the project even closer to the cloud native community for which it is designed.

Benefit to the Landscape

We built Headlamp because we recognized a need for a Kubernetes UI that has a great out-of-the-box experience but is also a toolkit that allows people to quickly build their own UI with the bespoke functionality they need for their own apps and environments. With the popularity of Kubernetes on the rise we think others will find this useful as a starting point for their own Kubernetes-based UIs.

Cloud Native 'Fit'

Headlamp is a Kubernetes UI focused on providing a great user experience and being extensible via a plugin system. There is currently no CNCF project that allows user to quickly create their own custom Kubernetes Dashboard.

Cloud Native 'Integration'

Kubernetes

Cloud Native Overlap

  • Skooner – They are both Kubernetes UI but have different focuses. While Skooner focuses on monitoring, Headlamp is focused on extensibility.

  • Kubernetes Dashboard – Like the Kubernetes Dashboard, Headlamp can be used to also show an overview of a cluster, but the latter can be extended by plugins and can run both as a desktop app or deployed in a server.

Similar projects

Lens, Skooner, Octant, k9s, Kubernetes Dashboard

Product or Service to Project separation

While Headlamp is used inside Azure, it is consumed using the same interfaces available to everyone else (mainly the plugin system). Thus, there is no "mixing" of internal products and the open-source project.

Project presentations

No

Project champions

No response

Additional information

No response

Activity

amye

amye commented on May 9, 2023

@amye

/vote-sandbox

git-vote

git-vote commented on May 9, 2023

@git-vote

Vote created

@amye has called for a vote on [Sandbox] Headlamp (#25).

The members of the following teams have binding votes:

Team
@cncf/cncf-toc

Non-binding votes are also appreciated as a sign of support!

How to vote

You can cast your vote by reacting to this comment. The following reactions are supported:

In favor Against Abstain
👍 👎 👀

Please note that voting for multiple options is not allowed and those votes won't be counted.

The vote will be open for 7days. It will pass if at least 66% of the users with binding votes vote In favor 👍. Once it's closed, results will be published here as a new comment.

blixtra

blixtra commented on May 10, 2023

@blixtra
ContributorAuthor

Thanks for reviewing the project. I hadn't seen that was coming up as I was on a post-Kubecon vacation. :)

I wanted to provide you with an update on the Headlamp project since our initial submission to your foundation a few months ago. This submission focused mainly on Headlamp as a base for building your own Kubernetes UI using its plugin system. Since then, we have expanded on this vision:

  • Headlamp now consists of Headlamp Base + plugins, allowing the project to build out a more feature-rich experience for users.
  • The first plugin is an App Catalogue based on Helm.
  • Headlamp Base will remain as the starting point for builders to create their own bespoke Kubernetes UI.
  • Headlamp, as we release it, is a bespoke Kubernetes UI built on Headlamp Base.

This is outlined in our recent blog post: https://headlamp.dev/blog/2023/04/expanding-the-headlamp-project-embracing-plugins-for-a-richer-kubernetes-web-ui-experience/

We are currently working on several new features/plugins to be delivered in Headlamp:

These mainly focus on operational recommendations

  • Prompt the user to generate a network policy if they don't have one applied. The plugin would then observe traffic and generate a policy for the user to evaluate and apply.
  • Another plugin similar to the last one for seccomp.
  • A plugin that uses Inspektor Gadget's traceloop gadget to do a high-performance "strace" across applications in the cluster and fetch that trace if an application crashes.
  • A plugin to allow the user to get a block IO histogram on demand.
  • Multi-cluster overview with cluster grouping

These are just the first plugins we'll be adding to the default Headlamp release. Our goal is to make Headlamp the most operationally advanced and helpful Kubernetes UI available. Furthermore, builders will be able to build on all of this, and not just Headlamp Base, to create their own Kubernetes experience.

Please note that many of the initial plugins will leverage Inspektor Gadget, as we work closely with that team.

Regarding the question about how this is different than the Kubernetes Dashboard, we actually gave a talk about our thought process around this a couple of years ago at Kubecon. You can find that video here: https://www.youtube.com/watch?v=lsrB21rjSok
This talk was the culmination of our initial research which we did with Henning Jacobs from Zalando who had written a dashboard for use internally in Zalando based on his research which you can find here: https://srcco.de/posts/kubernetes-web-uis-in-2019.html

We believe the Kubernetes Dashboard project is an excellent addition to the Kubernetes ecosystem. However, as you should be able to see from the video, it simply does not provide a good starting point for creating a custom Kubernetes experience, which is what we aimed to achieve with Headlamp. Some of the differentiators we found with the Kubernetes Dashboard include:

  • Headlamp is both in-cluster and a desktop app, allowing for easier access and delivery of features in different environments, while the Kubernetes Dashboard is not.
  • The Kubernetes Dashboard is single-cluster, while Headlamp is multi-cluster, with ongoing work on a multi-cluster overview and cluster grouping.
    *The Kubernetes Dashboard had no plugin system when we started Headlamp, and even now, their plugin system seems to be an afterthought with limited documentation and functionality compared to Headlamp's fundamental plugin-centric architecture.

The updated project planning link is: Release Plan / Roadmap

We hope this update provides you with a clear understanding of the current state and future direction of the Headlamp project and is helpful for your evaluation. Please let me know if you have any further questions.

amye

amye commented on May 11, 2023

@amye

/check-vote

git-vote

git-vote commented on May 11, 2023

@git-vote

Vote status

So far 9.09% of the users with binding vote are in favor (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
1 1 0 9

Binding votes (2)

User Vote Timestamp
cathyhongzhang Against 2023-05-09 22:34:21.0 +00:00:00
TheFoxAtWork In favor 2023-05-09 20:14:38.0 +00:00:00

Non-binding votes (6)

User Vote Timestamp
knrt10 In favor 2023-05-10 0:37:21.0 +00:00:00
yolossn In favor 2023-05-10 6:28:48.0 +00:00:00
joaquimrocha In favor 2023-05-10 7:41:58.0 +00:00:00
blixtra In favor 2023-05-10 8:01:21.0 +00:00:00
tsompura In favor 2023-05-10 9:45:49.0 +00:00:00
illume In favor 2023-05-10 9:48:36.0 +00:00:00
amye

amye commented on May 16, 2023

@amye

/check-vote

git-vote

git-vote commented on May 16, 2023

@git-vote

Vote status

So far 45.45% of the users with binding vote are in favor (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
5 1 0 5

Binding votes (6)

User Vote Timestamp
rochaporto In favor 2023-05-15 18:21:52.0 +00:00:00
kgamanji In favor 2023-05-15 16:07:29.0 +00:00:00
mattfarina In favor 2023-05-15 14:00:50.0 +00:00:00
TheFoxAtWork In favor 2023-05-09 20:14:38.0 +00:00:00
nikhita In favor 2023-05-12 4:14:37.0 +00:00:00
cathyhongzhang Against 2023-05-09 22:34:21.0 +00:00:00

Non-binding votes (7)

User Vote Timestamp
knrt10 In favor 2023-05-10 0:37:21.0 +00:00:00
yolossn In favor 2023-05-10 6:28:48.0 +00:00:00
joaquimrocha In favor 2023-05-10 7:41:58.0 +00:00:00
blixtra In favor 2023-05-10 8:01:21.0 +00:00:00
tsompura In favor 2023-05-10 9:45:49.0 +00:00:00
illume In favor 2023-05-10 9:48:36.0 +00:00:00
mauriciovasquezbernal In favor 2023-05-12 15:11:33.0 +00:00:00
erinaboyd

erinaboyd commented on May 16, 2023

@erinaboyd

👍

amye

amye commented on May 17, 2023

@amye

/check-vote

git-vote

git-vote commented on May 17, 2023

@git-vote

Vote status

So far 72.73% of the users with binding vote are in favor (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
8 1 0 2

Binding votes (9)

User Vote Timestamp
cathyhongzhang Against 2023-05-09 22:34:21.0 +00:00:00
erinaboyd In favor 2023-05-16 11:30:41.0 +00:00:00
mattfarina In favor 2023-05-15 14:00:50.0 +00:00:00
kgamanji In favor 2023-05-15 16:07:29.0 +00:00:00
rochaporto In favor 2023-05-15 18:21:52.0 +00:00:00
TheFoxAtWork In favor 2023-05-09 20:14:38.0 +00:00:00
nikhita In favor 2023-05-12 4:14:37.0 +00:00:00
mauilion In favor 2023-05-16 15:03:05.0 +00:00:00
dzolotusky In favor 2023-05-16 22:05:32.0 +00:00:00

Non-binding votes (7)

User Vote Timestamp
knrt10 In favor 2023-05-10 0:37:21.0 +00:00:00
yolossn In favor 2023-05-10 6:28:48.0 +00:00:00
joaquimrocha In favor 2023-05-10 7:41:58.0 +00:00:00
blixtra In favor 2023-05-10 8:01:21.0 +00:00:00
tsompura In favor 2023-05-10 9:45:49.0 +00:00:00
illume In favor 2023-05-10 9:48:36.0 +00:00:00
mauriciovasquezbernal In favor 2023-05-12 15:11:33.0 +00:00:00
git-vote

git-vote commented on May 17, 2023

@git-vote

Vote closed

The vote passed! 🎉

81.82% of the users with binding vote were in favor (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
9 1 0 1

Binding votes (10)

User Vote Timestamp
@rochaporto In favor 2023-05-15 18:21:52.0 +00:00:00
@dzolotusky In favor 2023-05-16 22:05:32.0 +00:00:00
@TheFoxAtWork In favor 2023-05-09 20:14:38.0 +00:00:00
@mauilion In favor 2023-05-16 15:03:05.0 +00:00:00
@erinaboyd In favor 2023-05-16 11:30:41.0 +00:00:00
@nikhita In favor 2023-05-12 4:14:37.0 +00:00:00
@cathyhongzhang Against 2023-05-09 22:34:21.0 +00:00:00
@RichiH In favor 2023-05-17 8:50:14.0 +00:00:00
@mattfarina In favor 2023-05-15 14:00:50.0 +00:00:00
@kgamanji In favor 2023-05-15 16:07:29.0 +00:00:00

Non-binding votes (7)

User Vote Timestamp
@knrt10 In favor 2023-05-10 0:37:21.0 +00:00:00
@yolossn In favor 2023-05-10 6:28:48.0 +00:00:00
@joaquimrocha In favor 2023-05-10 7:41:58.0 +00:00:00
@blixtra In favor 2023-05-10 8:01:21.0 +00:00:00
@tsompura In favor 2023-05-10 9:45:49.0 +00:00:00
@illume In favor 2023-05-10 9:48:36.0 +00:00:00
@mauriciovasquezbernal In favor 2023-05-12 15:11:33.0 +00:00:00
added
ApprovedThis is an approved sandbox project.
on May 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @amye@blixtra@TheFoxAtWork@erinaboyd

        Issue actions

          [Sandbox] Headlamp · Issue #25 · cncf/sandbox