diff --git a/packages/renderer/src/lib/kube/details/KubePodStatusArtifact.spec.ts b/packages/renderer/src/lib/kube/details/KubePodStatusArtifact.spec.ts index 91a7d3d656d..670b3ae74f1 100644 --- a/packages/renderer/src/lib/kube/details/KubePodStatusArtifact.spec.ts +++ b/packages/renderer/src/lib/kube/details/KubePodStatusArtifact.spec.ts @@ -44,3 +44,27 @@ test('Renders pod status correctly with hardcoded values', () => { expect(screen.getByText('Host IP')).toBeInTheDocument(); expect(screen.getByText('192.168.1.2')).toBeInTheDocument(); }); + +test('show container statuses when present', () => { + const fakePodStatusWithContainers: V1PodStatus = { + phase: 'Running', + containerStatuses: [ + { + name: 'container1', + state: { + waiting: { + reason: 'CrashLoopBackOff', + message: 'Back-off restarting failed container', + }, + }, + }, + ], + } as V1PodStatus; + + render(KubePodStatusArtifact, { artifact: fakePodStatusWithContainers }); + + expect(screen.getByText('Container Status')).toBeInTheDocument(); + expect(screen.getByText('container1')).toBeInTheDocument(); + expect(screen.getByText('CrashLoopBackOff')).toBeInTheDocument(); + expect(screen.getByText('Back-off restarting failed container')).toBeInTheDocument(); +}); diff --git a/packages/renderer/src/lib/kube/details/KubePodStatusArtifact.svelte b/packages/renderer/src/lib/kube/details/KubePodStatusArtifact.svelte index 592ed873cea..6b21655b86a 100644 --- a/packages/renderer/src/lib/kube/details/KubePodStatusArtifact.svelte +++ b/packages/renderer/src/lib/kube/details/KubePodStatusArtifact.svelte @@ -2,6 +2,7 @@ import type { V1PodStatus } from '@kubernetes/client-node'; import Cell from './ui/Cell.svelte'; +import Subtitle from './ui/Subtitle.svelte'; import Title from './ui/Title.svelte'; export let artifact: V1PodStatus | undefined; @@ -31,4 +32,39 @@ if (artifact?.startTime) { Start Time {artifact?.startTime} + + + {#if artifact.containerStatuses?.some(containerStatus => containerStatus.state)} + + Container Status + + {#each artifact.containerStatuses as containerStatus} + {#if containerStatus.state} + + {containerStatus.name} + + {#if containerStatus.state.waiting} + + Waiting + {containerStatus.state.waiting.reason} + + + Message + {containerStatus.state.waiting.message} + + {/if} + {#if containerStatus.state.terminated} + + Terminated + {containerStatus.state.terminated.reason} + + + Exit Code + {containerStatus.state.terminated.exitCode} + + {/if} + {/if} + {/each} + {/if} {/if}