frontend/src/types/kubernetes.ts
import {
V1Pod,
V1ConfigMap,
V1Deployment,
V1DeploymentSpec,
V1LabelSelector,
V1Ingress,
V1Namespace,
V1Secret,
V1PersistentVolumeClaim,
V1PersistentVolume,
} from '@kubernetes/client-node';
export interface ApiResponse<T> {
success: boolean;
msg: string;
data: T;
}
export interface KubernetesCluster {
contextName: string;
}
export interface KubernetesStatefulSet {
metadata: {
name: string;
namespace: string;
uid: string;
creationTimestamp: string;
};
spec: {
replicas: number;
strategy?: {
type: string;
};
};
status: {
availableReplicas: number;
readyReplicas: number;
replicas: number;
updatedReplicas: number;
};
}
export interface KubernetesDeployment extends Omit<V1Deployment, 'spec'> {
spec?: KubernetesDeploymentSpec;
}
interface KubernetesDeploymentSpec extends Omit<V1DeploymentSpec, 'selector'> {
selector?: V1LabelSelector;
}
export interface KubernetesPod extends V1Pod {
}
export interface KubernetesConfigMap extends Omit<V1ConfigMap, 'binaryData'> {
binaryData?: { [key: string]: number[] };
}
export interface KubernetesIngress extends V1Ingress {
}
export interface KubernetesNamespace extends V1Namespace {
}
export interface KubernetesSecret extends V1Secret {
}
export interface KubernetesPersistentVolumeClaim extends V1PersistentVolumeClaim{
}
export interface KubernetesPersistentVolume extends V1PersistentVolume{
}