feat(kubernetes): add kubernetes tool (#1929)
Co-authored-by: oussama Dahmaz <dahmaz@MacBook-Pro-de-odahmaz.local>
This commit is contained in:
@@ -4,6 +4,7 @@ export * from "./section";
|
||||
export * from "./widget";
|
||||
export * from "./permissions";
|
||||
export * from "./docker";
|
||||
export * from "./kubernetes";
|
||||
export * from "./auth";
|
||||
export * from "./user";
|
||||
export * from "./group";
|
||||
|
||||
110
packages/definitions/src/kubernetes.ts
Normal file
110
packages/definitions/src/kubernetes.ts
Normal file
@@ -0,0 +1,110 @@
|
||||
export const kubernetesNodeStates = ["Ready", "NotReady"] as const;
|
||||
export const kubernetesNamespaceStates = ["Active", "Terminating"] as const;
|
||||
export const kubernetesResourceTypes = ["Reserved", "Used"] as const;
|
||||
export const kubernetesCapacityTypes = ["Pods", "CPU", "Memory"] as const;
|
||||
export const kubernetesLabelResourceTypes = [
|
||||
"configmaps",
|
||||
"pods",
|
||||
"ingresses",
|
||||
"namespaces",
|
||||
"nodes",
|
||||
"secrets",
|
||||
"services",
|
||||
"volumes",
|
||||
] as const;
|
||||
|
||||
export type KubernetesNodeState = (typeof kubernetesNodeStates)[number];
|
||||
export type KubernetesNamespaceState = (typeof kubernetesNamespaceStates)[number];
|
||||
export type KubernetesResourceType = (typeof kubernetesResourceTypes)[number];
|
||||
export type KubernetesCapacityType = (typeof kubernetesCapacityTypes)[number];
|
||||
export type KubernetesLabelResourceType = (typeof kubernetesLabelResourceTypes)[number];
|
||||
|
||||
export interface KubernetesBaseResource {
|
||||
name: string;
|
||||
namespace?: string;
|
||||
creationTimestamp?: Date;
|
||||
}
|
||||
|
||||
export interface KubernetesVolume extends KubernetesBaseResource {
|
||||
accessModes: string[];
|
||||
storage: string;
|
||||
storageClassName: string;
|
||||
volumeMode: string;
|
||||
volumeName: string;
|
||||
status: string;
|
||||
}
|
||||
|
||||
export interface KubernetesSecret extends KubernetesBaseResource {
|
||||
type: string;
|
||||
}
|
||||
|
||||
export interface KubernetesPod extends KubernetesBaseResource {
|
||||
image?: string;
|
||||
applicationType: string;
|
||||
status: string;
|
||||
}
|
||||
|
||||
export interface KubernetesService extends KubernetesBaseResource {
|
||||
type: string;
|
||||
ports?: string[];
|
||||
targetPorts?: string[];
|
||||
clusterIP: string;
|
||||
}
|
||||
|
||||
export interface KubernetesIngressPath {
|
||||
serviceName: string;
|
||||
port: number;
|
||||
}
|
||||
|
||||
export interface KubernetesIngressRuleAndPath {
|
||||
host: string;
|
||||
paths: KubernetesIngressPath[];
|
||||
}
|
||||
|
||||
export interface KubernetesIngress extends KubernetesBaseResource {
|
||||
className: string;
|
||||
rulesAndPaths: KubernetesIngressRuleAndPath[];
|
||||
}
|
||||
|
||||
export interface KubernetesNamespace extends KubernetesBaseResource {
|
||||
status: KubernetesNamespaceState;
|
||||
}
|
||||
|
||||
export interface KubernetesNode {
|
||||
name: string;
|
||||
status: KubernetesNodeState;
|
||||
allocatableCpuPercentage: number;
|
||||
allocatableRamPercentage: number;
|
||||
podsCount: number;
|
||||
operatingSystem?: string;
|
||||
architecture?: string;
|
||||
kubernetesVersion?: string;
|
||||
creationTimestamp?: Date;
|
||||
}
|
||||
|
||||
export interface KubernetesCluster {
|
||||
name: string;
|
||||
providers: string;
|
||||
kubernetesVersion: string;
|
||||
architecture: string;
|
||||
nodeCount: number;
|
||||
capacity: KubernetesCapacity[];
|
||||
}
|
||||
|
||||
export interface KubernetesCapacity {
|
||||
type: KubernetesCapacityType;
|
||||
resourcesStats: KubernetesResourceStat[];
|
||||
}
|
||||
|
||||
export interface KubernetesResourceStat {
|
||||
percentageValue: number;
|
||||
type: KubernetesResourceType;
|
||||
capacityUnit?: string;
|
||||
usedValue: number;
|
||||
maxUsedValue: number;
|
||||
}
|
||||
|
||||
export interface ClusterResourceCount {
|
||||
label: string;
|
||||
count: number;
|
||||
}
|
||||
Reference in New Issue
Block a user