summary history files

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{
}