Skip to content

v1 - Flink Admin

Choose a tag to compare

@j4k4 j4k4 released this 25 Feb 09:35
· 11 commits to main since this release

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 FlinkDeployment resources 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 _metadata file in each chk-* 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/v1 events 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.io for linux/amd64 and linux/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 /api requests 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)