Skip to content

Strimzi Headlamp Plugin project - Linux Foundation paid mentorship project #488

@illume

Description

@illume

This issue is for a Linux Foundation mentorship project. A paid 12 week program. See https://mentorship.lfx.linuxfoundation.org/project/2f08a480-7e37-46f0-ab29-f3d18669dd17 There you can learn more and apply if interested. Please do not start this issue, as it is reserved for that project.


💥 Please do not ask if you can start this in this issue, see the link to apply. 💥

Please add example open source PRs to your cover letter (not necessarily headlamp plugin ones, but any that show your quality work and communication skills)


Strimzi Headlamp Plugin

A Kubernetes Dashboard Plugin for Apache Kafka Management

Project Summary

This project proposes the development of a Headlamp plugin for Strimzi, a leading Kubernetes operator for Apache Kafka. The plugin will provide a comprehensive UI for managing Kafka clusters, topics, users, and connectors directly within the Kubernetes dashboard, eliminating the need for separate tooling or CLI operations.

Problem Statement

Currently, Strimzi users must rely on kubectl commands and YAML manifests to manage their Kafka infrastructure. While Cruise Control UI exists for cluster rebalancing, there is no unified interface for day-to-day Kafka operations on Kubernetes. This creates several challenges:

Operational complexity

Managing topics, users, and connectors requires deep knowledge of Strimzi CRDs and kubectl commands.

Limited visibility

Understanding cluster health, consumer lag, and connector status requires multiple CLI commands or external tools.

Context switching

Platform teams must jump between Kubernetes dashboards and Kafka-specific tools.

Steep learning curve

New users struggle to understand the relationship between Strimzi resources and their Kafka clusters.

Goals and Objectives

Primary Goals

  1. Provide a visual interface for Strimzi resources within Headlamp
  2. Enable CRUD operations on Kafka topics, users, and connectors
  3. Display cluster health and status at a glance
  4. Surface operational insights without requiring CLI expertise

Stretch Goals

  1. Consumer group lag visualization (via Prometheus integration)
  2. Kafka Connect connector creation wizard
  3. MirrorMaker2 cross-cluster replication monitoring

Proposed Features

Feature Area Capabilities
Kafka Cluster Overview Broker health status, listener endpoints, Kafka version, cluster conditions, readiness state
Topic Management List/create/delete topics, partition count, replication factor, topic configs, ready status
User Management View users, authentication type (TLS/SCRAM), ACL visualization, quota configurations
Kafka Connect Connect cluster status, connector list, task states (running/paused/failed), restart actions
Kafka Bridge HTTP bridge status, endpoint availability, configuration details
Entity Operator Topic Operator and User Operator health, reconciliation status, recent events
Operational Events Rolling updates timeline, certificate renewals, scaling events, error conditions

Technical Approach

Data Sources

The plugin will retrieve data from multiple sources via the Kubernetes API:

Strimzi CRDs

Kafka, KafkaTopic, KafkaUser, KafkaConnect, KafkaConnector, KafkaBridge, KafkaMirrorMaker2, KafkaRebalance

Kubernetes Resources

Pods, StatefulSets, Services, Secrets, ConfigMaps, Events, PVCs

Prometheus Metrics (optional)

Broker metrics, consumer lag, JVM metrics if available

Architecture

The plugin will be built using Headlamp's plugin SDK with React and TypeScript. It will leverage Headlamp's existing Kubernetes API client for all data fetching, ensuring proper RBAC enforcement and authentication handling.

Key Technical Considerations

  1. No additional backend required - all data accessible via Kubernetes API
  2. RBAC-aware - respects existing Kubernetes permissions
  3. Consumer lag requires Prometheus or external tooling (documented limitation)
  4. Plugin packaged as standard Headlamp plugin for easy distribution

Proposed Timeline

Phase Deliverables
Week 1-2 Community bonding, environment setup, deep dive into Strimzi CRDs and Headlamp plugin SDK
Week 3-4 Plugin scaffold, Kafka cluster overview page with health status and broker information
Week 5-6 KafkaTopic management - list, create, delete, view configurations
Week 7-8 KafkaUser management - user list, ACL visualization, authentication details
Week 9 Midterm evaluation, code review, bug fixes, documentation
Week 10-11 KafkaConnect and KafkaConnector pages - connector status, task management, restart actions
Week 12-13 KafkaBridge, Entity Operator status, operational events timeline
Week 14-16 Testing, documentation, stretch goals (Prometheus integration), final polish
Week 17 Final evaluation, release preparation, community handoff

Expected Outcomes

  1. Fully functional Headlamp plugin published to the Headlamp plugin repository
  2. Comprehensive documentation including installation guide and user manual
  3. Unit and integration tests with CI/CD pipeline
  4. Demo video showcasing plugin capabilities
  5. Blog post announcing the plugin to both Strimzi and Headlamp communities

Required Skills for Contributor

  • Essential: TypeScript, React
  • Helpful: Kubernetes fundamentals, understanding of Custom Resource Definitions, Experience with Apache Kafka, familiarity with Strimzi, Headlamp plugin development
  • Nice to have: Prometheus/metrics experience, UI/UX design skills

Mentorship

We are seeking mentors from both the Headlamp and Strimzi communities to guide the contributor. Ideally, we would have one mentor familiar with Headlamp plugin development and another with deep Strimzi expertise.

Community Benefit

  • For Strimzi users: Simplified Kafka management without CLI expertise, better operational visibility
  • For Platform teams: Unified dashboard for Kubernetes and Kafka resources, reduced context switching
  • For Headlamp: Expanded ecosystem with a high-demand integration
  • For the contributor: Real-world open source experience with two active CNCF projects

Contact and Next Steps

We welcome feedback from the Strimzi community on this proposal. Please share your thoughts on the proposed features, suggest additional capabilities, or express interest in mentorship.

Other open Headlamp LFX mentor projects

You only get max 3 applications, but maybe consider only applying to the 1-2 you are most interested in (and state your preference of the one you are most interested in your application). There are other projects to apply to as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions