Releases: justtrackio/flink-admin
Releases · justtrackio/flink-admin
Release list
v5
Highlights
- Deployment streams now stay accurate after deletions by clearing removed Flink deployments from the watcher cache.
Improvements
- Prevented deleted deployments from reappearing for clients after reconnects or cached watcher state replay.
API cleanup
- No API changes in this release.
Internal changes
- Tightened Kubernetes delete-event handling in the deployment watcher cache.
v4
Changes in this release
Deployment Recovery
- Added support for recovering deployments from stored state.
- Extended deployment state handling in the backend and frontend so recovery actions are available from the deployment UI.
Storage Checkpoints and Savepoints
- Added storage checkpoint metadata inspection, including a dedicated detail view for stored checkpoint/savepoint entries.
- Unified storage checkpoint and savepoint listing so both entry types are presented through a consistent backend API and frontend table.
- Improved S3-backed checkpoint/savepoint discovery and metadata loading.
Frontend Streaming
- Extracted the shared SSE streaming logic into the reusable useSseStream hook.
- Simplified deployment stream handling on top of the shared hook.
Backend Maintenance
- Applied backend lint cleanup following the iferrinline pattern.
- Added custom golangci-lint configuration and updated CI to run the custom lint wrapper.
Full Changelog: v3...v4
v3
Highlights
- Add suspend and resume controls for Flink deployments in both the deployments table and deployment detail pages.
- Introduce admin mode gating so deployment actions stay hidden until temporary admin access is enabled from the UI.
- Add tabbed deployment views for
AllandNot runningdeployments to speed up triage.
Improvements
- Preserve the selected deployment view when navigating between the list and deployment details.
- Let the
Not runningview surface issues across namespaces for faster operational investigation. - Highlight suspended deployments more clearly and normalize deployment detail timestamps to UTC for easier reading.
API cleanup
- Add backend suspend and resume endpoints for Flink deployments.
- Reuse shared deployment selector handling across related backend endpoints for more consistent behavior.
- No breaking API removals are included in this release.
Internal changes
- Refactor frontend context, hooks, and formatting utilities to support admin mode and deployment lifecycle actions.
- Remove outdated workflow notes while aligning the UI and backend plumbing around the new release features.
v2 - Flink Admin
A maintenance-focused release that modernizes the runtime setup and makes local development workflows easier to run and repeat.
Highlights
- Upgraded the backend to
gosoline v0.57.2and refreshed the Go dependency set to stay aligned with the current framework stack. - Migrated backend configuration to the newer
appstructure used by recent gosoline versions. - Added
misetasks for frontend and backend build, lint, test, and local CI workflows. - Refined the dashboard issue filter so finished jobs no longer show up as active problems in the "Not Running" view.
Upgrade Note
- Custom backend config files should move from the legacy top-level
envandapp_*keys to the new nestedappblock. - Embedded frontend asset handling was also cleaned up, so generated files are no longer tracked in git.
Included In This Release
- Dependency and configuration modernization
- Repeatable local build and CI commands
- A small dashboard quality-of-life fix for operations views
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)