From b6e54db6ecd8008d481c25f892cbae2c5aa72487 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Thu, 23 Apr 2026 10:00:44 +0200 Subject: [PATCH] ui(deploy): strategy hint on Resources tab + indicator on StatusCard Resources tab: add a hint under the Deploy Strategy dropdown that explains the blue-green vs rolling trade-off (resource peak, failure semantics), switching text based on the current selection. StatusCard: show the active deployment's strategy inline in the info grid so users can tell at a glance which path was taken for a given deployment. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../ConfigTabs/ResourcesTab.tsx | 25 ++++++++++++------- .../DeploymentTab/StatusCard.tsx | 1 + 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/ui/src/pages/AppsTab/AppDeploymentPage/ConfigTabs/ResourcesTab.tsx b/ui/src/pages/AppsTab/AppDeploymentPage/ConfigTabs/ResourcesTab.tsx index 10ed0d4c..458ddc6f 100644 --- a/ui/src/pages/AppsTab/AppDeploymentPage/ConfigTabs/ResourcesTab.tsx +++ b/ui/src/pages/AppsTab/AppDeploymentPage/ConfigTabs/ResourcesTab.tsx @@ -172,15 +172,22 @@ export function ResourcesTab({ value, onChange, disabled, isProd = false }: Prop /> Deploy Strategy - update('deployStrategy', e.target.value)} + options={[ + { value: 'blue-green', label: 'Blue/Green' }, + { value: 'rolling', label: 'Rolling' }, + ]} + /> + + {value.deployStrategy === 'rolling' + ? 'Replace one replica at a time; peak = replicas + 1. Partial failure leaves remaining old replicas serving.' + : 'Start all new replicas, swap once all are healthy; peak = 2 × replicas. Partial failure preserves the previous deployment.'} + + Strip Path Prefix
diff --git a/ui/src/pages/AppsTab/AppDeploymentPage/DeploymentTab/StatusCard.tsx b/ui/src/pages/AppsTab/AppDeploymentPage/DeploymentTab/StatusCard.tsx index a8a6294c..cad41d1f 100644 --- a/ui/src/pages/AppsTab/AppDeploymentPage/DeploymentTab/StatusCard.tsx +++ b/ui/src/pages/AppsTab/AppDeploymentPage/DeploymentTab/StatusCard.tsx @@ -35,6 +35,7 @@ export function StatusCard({ deployment, version, externalUrl }: Props) { {version && <>JAR{version.jarFilename}} {version && <>Checksum{version.jarChecksum.substring(0, 12)}} Replicas{running}/{total} + Strategy{deployment.deploymentStrategy ?? '—'} URL {deployment.status === 'RUNNING' ? {externalUrl}