diff --git a/USERS.md b/USERS.md index 14c36f7605..fc8217db6a 100644 --- a/USERS.md +++ b/USERS.md @@ -16,6 +16,7 @@ Organizations below are **officially** using Argo Rollouts. Please send a PR wit 1. [DaoCloud](https://daocloud.io) 1. [Databricks](https://github.com/databricks) 1. [Devtron Labs](https://github.com/devtron-labs/devtron) +1. [Factorial](https://factorialhr.com) 1. [Farfetch](https://www.farfetch.com/) 1. [Flipkart](https://flipkart.com) 1. [GetYourGuide](https://www.getyourguide.com) diff --git a/ui/src/app/components/pods/pods.tsx b/ui/src/app/components/pods/pods.tsx index ec0d65eead..5e7005fcbd 100644 --- a/ui/src/app/components/pods/pods.tsx +++ b/ui/src/app/components/pods/pods.tsx @@ -20,7 +20,17 @@ export enum PodStatus { Unknown = 'unknown', } -export const ParsePodStatus = (status: string): PodStatus => { +const isPodReady = (ready: string) => { + // Ready is a string in the format "0/1", "1/1", etc. + const [current, total] = ready.split('/'); + return current === total; +}; + +export const ParsePodStatus = (status: string, ready: string): PodStatus => { + if (status === 'Running' && !isPodReady(ready)) { + return PodStatus.Pending; + } + switch (status) { case 'Pending': case 'Terminating': @@ -101,10 +111,12 @@ export const ReplicaSet = (props: {rs: RolloutReplicaSetInfo; showRevision?: boo key={pod.objectMeta?.uid} name={pod.objectMeta?.name} status={pod.status} + ready={pod.ready} tooltip={
-
Status: {pod.status}
{pod.objectMeta?.name}
+
Status: {pod.status}
+
Ready: {pod.ready}
} /> @@ -115,7 +127,7 @@ export const ReplicaSet = (props: {rs: RolloutReplicaSetInfo; showRevision?: boo ); }; -export const PodWidget = ({name, status, tooltip, customIcon}: {name: string; status: string; tooltip: React.ReactNode; customIcon?: IconDefinition}) => { +export const PodWidget = ({name, status, ready, tooltip, customIcon}: {name: string; status: string; ready: string; tooltip: React.ReactNode; customIcon?: IconDefinition}) => { let icon: IconDefinition; let spin = false; if (status.startsWith('Init:')) { @@ -129,7 +141,7 @@ export const PodWidget = ({name, status, tooltip, customIcon}: {name: string; st icon = faExclamationTriangle; } - const className = ParsePodStatus(status); + const className = ParsePodStatus(status, ready); if (customIcon) { icon = customIcon; diff --git a/ui/src/app/components/rollout-grid-widget/rollout-grid-widget.tsx b/ui/src/app/components/rollout-grid-widget/rollout-grid-widget.tsx index 89497124ff..503a0415ed 100644 --- a/ui/src/app/components/rollout-grid-widget/rollout-grid-widget.tsx +++ b/ui/src/app/components/rollout-grid-widget/rollout-grid-widget.tsx @@ -21,7 +21,7 @@ import './rollout-grid-widget.scss'; export const isInProgress = (rollout: RolloutInfo): boolean => { for (const rs of rollout.replicaSets || []) { for (const p of rs.pods || []) { - const status = ParsePodStatus(p.status); + const status = ParsePodStatus(p.status, p.ready); if (status === PodStatus.Pending) { return true; }