Skip to main content

Headlamp: Improving the developer experience for Headlamp plugins

We released Headlamp (a generic Kubernetes web UI) last November with one of its core features being "frontend plugins". These are extensions whose purpose is to offer extra functionality that is not available in Headlamp by default.

Plugins are written in Typescript (or Javascript), compiled into a single module using webpack, and loaded by Headlamp’s backend which makes them available for the frontend to dynamically load.

Screenshot of Headlamp with the example pod-counter plugin running which places a pod counter label on top

The process above works well and is transparent to Headlamp’s users. However, the development of those plugins meant different workflows when it came to developing them and to building/shipping them, ultimately requiring developers to move the plugins around, into the Headlamp's source tree for hot-reload and debugging, and outside into a "plugins folder" for development. It quickly became clear that this was not the best development experience we could offer, and so we've been working hard to greatly improve the workflow of developing plugins for Headlamp.

Continue reading at