Adding Custom Map Nodes
In Tutorial 9 we customised how Headlamp looks. In this tutorial we will extend what Headlamp shows — specifically, we will add the MyPod resources from our plugin to Headlamp's Map view.
Table of Contents
- Introduction to the Map View
- Concepts: Nodes, Edges, and Sources
- Creating a Map Source for MyPod
- Registering the Source
- Adding a Custom Node Icon
- Adding Edges Between Nodes
- What's Next
- Quick Reference
Introduction to the Map View
Headlamp's Map view (accessible via the Map button in the sidebar when a cluster is connected) renders your cluster as an interactive graph. Every built-in resource — Deployments, ReplicaSets, Pods, Services, and more — is displayed as a node, and the ownership relationships between them are shown as edges.

The map is not limited to built-in resources. Plugins can register their own sources — collections of nodes and edges that teach the map about resources that Headlamp does not know about by default. This is especially useful for:
- Custom Resource Definitions (CRDs) — controllers like KEDA, Argo CD, or Flux introduce CRDs that the built-in map has no knowledge of. A plugin can add those resources as first-class nodes.
- Plugin-managed resources — if your plugin works with a specific subset of standard resources (like our
MyPodclass), you can surface them as a dedicated, filterable source.
In this tutorial we will register our MyPod resource class as a map source so that all pods appear in the map under a "My Pods" entry in the source picker.