-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.ts
More file actions
79 lines (69 loc) · 1.61 KB
/
types.ts
File metadata and controls
79 lines (69 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import type { Pod, PodList, PodCondition } from 'kubernetesjs';
export type { Pod, PodList, PodCondition };
export interface WaitForPodsOptions {
namespace?: string;
labelSelector?: string;
fieldSelector?: string;
timeoutMs?: number;
pollIntervalMs?: number;
minReady?: number;
allReady?: boolean;
onProgress?: (status: WaitForPodsProgress) => void;
}
export interface WaitForPodsProgress {
total: number;
ready: number;
pending: number;
failed: number;
pods: PodStatusInfo[];
elapsedMs: number;
}
export interface PodStatusInfo {
name: string;
namespace: string;
phase: string;
ready: boolean;
conditions: PodConditionInfo[];
containerStatuses: ContainerStatusInfo[];
}
export interface PodConditionInfo {
type: string;
status: string;
reason?: string;
message?: string;
}
export interface ContainerStatusInfo {
name: string;
ready: boolean;
restartCount: number;
state: 'running' | 'waiting' | 'terminated' | 'unknown';
stateReason?: string;
}
export interface WaitForPodsResult {
success: boolean;
pods: PodStatusInfo[];
message: string;
elapsedMs: number;
}
export interface KubernetesTestClientOptions {
restEndpoint?: string;
namespace?: string;
}
export class WaitForPodsTimeoutError extends Error {
constructor(
message: string,
public readonly progress: WaitForPodsProgress
) {
super(message);
this.name = 'WaitForPodsTimeoutError';
}
}
export class WaitForPodsError extends Error {
constructor(
message: string,
public readonly progress?: WaitForPodsProgress
) {
super(message);
this.name = 'WaitForPodsError';
}
}