Repository navigation
v1 - Flink Admin
A web-based administration interface for Apache Flink clusters running on Kubernetes. Monitor deployments in real time, inspect checkpoints and savepoints, browse Kubernetes events, and diagnose job failures — all from a single UI backed by a single self-contained binary.
Deployment Dashboard
- Live table of all
FlinkDeploymentresources across all namespaces, updated in real time via Server-Sent Events - Filter by namespace and lifecycle state; filters persist in the URL (bookmarkable/shareable)
- "Not Running" quick-filter highlights deployments with a non-running job state
- Flink UI deep-link icon on each deployment row when a Flink web UI is reachable
- Connection status indicator with automatic reconnection and manual retry
- Columns: Name, Namespace, Lifecycle State, Job State, Flink Version, Image tag, Parallelism, JM/TM resource allocations, Age
Deployment Detail View
- Status summary header: Lifecycle State, Job State, JobManager Deployment Status, Age, Job Start/Update times
- Five tabs for each deployment — Details, Checkpoints & Savepoints, Storage, Events, Exceptions
- Badge counts on the Exceptions and Events tabs so issues are visible at a glance without opening the tab
- Back button returns to the dashboard with your previous filters intact
Deployment Details Tab
- Spec overview: image, Flink version, parallelism, entry class, JAR URI, upgrade mode
- Job arguments rendered as a readable key/value table
- JobManager and TaskManager resource allocations (CPU, memory, replicas)
Checkpoints & Savepoints Tab
- Fetches live data from the Flink REST API (requires an ingress on the deployment)
- Summary counts: Total, Completed, Failed, In Progress, Restored
- Checkpoint history table: ID, status (color-coded), type, trigger time, duration, state size, subtask acknowledgement progress, storage path
Storage Tab
- Lists checkpoints and savepoints directly from AWS S3 — no Flink REST API required
- Validates checkpoint directories by checking for a
_metadatafile in eachchk-*folder - Shows checkpoint name, Job ID, last modified time, size, and full S3 path
- Savepoints are scoped to the currently active Job ID
- Configuration card shows the checkpoint and savepoint directories from the deployment's Flink configuration
Kubernetes Events Tab
- Lists
events.k8s.io/v1events for the deployment, sorted newest-first - Columns: Age, Type (Warning / Normal, color-coded), Reason, Message, Source, Action
Exceptions Tab
- Fetches the exception history from the Flink REST API (requires an ingress on the deployment)
- Table: timestamp, exception name, task name, location, failure labels
- Expandable rows with full stack traces and nested concurrent exception details
- Truncation notice when more than 50 exceptions exist
Configuration & Deployment
- Ships as a single static binary with the React frontend embedded — no separate web server needed
- Docker image published to
ghcr.ioforlinux/amd64andlinux/arm64 - Kubernetes authentication via in-cluster service account (default) or kubeconfig for local development
- S3 region defaults to
eu-central-1; fully configurable via environment/YAML config - HTTP server runs on port
8082; the frontend dev server proxies/apirequests automatically
Requirements
- Kubernetes cluster running the Flink Kubernetes Operator (
flink.apache.org/v1beta1) - AWS S3 access with read permissions on the configured checkpoint/savepoint buckets (Storage tab)
- Ingress configured on FlinkDeployments for Flink REST API features (Checkpoints & Savepoints tab, Exceptions tab)