UNPKG

1.31 kBPlain TextView Raw
1
2
3//#region ---------- kubernetes type subset ----------
4export interface PodItem {
5 kind: 'Pod',
6 metadata: {
7 name: string,
8 namespace: string,
9 labels: { [key: string]: string },
10 },
11 spec: {
12 containers?: {
13 name: string,
14 image: string,
15 }[]
16 }
17}
18/**
19 * This is minimalist typing of the native kubernetes result object on kubectl get pods.
20 * It respect the kubernetes object structure but just defined what is needed for vdev (does not intend to be exhaustive).
21 */
22export interface GetPodResponse {
23 items: PodItem[];
24}
25
26export interface PodItemFilter {
27 imageName?: string,
28 labels?: { [key: string]: string }
29}
30//#endregion ---------- /kubernetes type subset ----------
31
32
33//#region ---------- vdev kubernetes object types ----------
34/**
35 * Simplified kubernetes PodItem object.
36 */
37export interface KPod {
38 name: string;
39 namespace: string
40 containers: {
41 name: string
42 }[];
43}
44
45/** Return a KPod simplified object from a native kubernetes PodItem. */
46export function toKPod(podItem: PodItem): KPod {
47 const containers = (podItem.spec.containers) ? podItem.spec.containers.map(ctn => { return { name: ctn.name } }) : []
48 return {
49 name: podItem.metadata.name,
50 namespace: podItem.metadata.namespace,
51 containers
52 }
53}
54
55//#endregion ---------- /vdev kubernetes object types ----------