frontend/src/lib/resources.ts
export type KubernetesResourceKind =
'Pod' |
'Deployment' |
'StatefulSet' |
'ConfigMap' |
'Ingress' |
'Namespace' |
'Secret' |
'PersistentVolumeClaim' |
'PersistentVolume' |
'Unknown';
export function getResourceKind(resource: any): KubernetesResourceKind {
if (resource.kind) {
switch (resource.kind) {
case 'Pod':
return 'Pod';
case 'Deployment':
return 'Deployment';
case 'StatefulSet':
return 'StatefulSet';
case 'ConfigMap':
return 'ConfigMap';
case 'Ingress':
return 'Ingress';
case 'Namespace':
return 'Namespace';
case 'Secret':
return 'Secret';
case 'PersistentVolumeClaim':
return 'PersistentVolumeClaim';
case 'PersistentVolume':
return 'PersistentVolume';
default:
return 'Unknown'
}
}
return 'Unknown';
}
/**
* Check if resource is a pod
*/
export function isPod(resource: any): boolean {
return resource.kind === 'Pod' ||
(resource.spec && Array.isArray(resource.spec.containers));
}
/**
* Check if resource is a deployment
*/
export function isDeployment(resource: any): boolean {
return resource.kind === 'Deployment' ||
(resource.spec && typeof resource.spec.replicas !== 'undefined');
}
export function isStatefulSet(resource: any): boolean {
return resource.kind === 'StatefulSet';
}
export function isConfigMap(resource: any): boolean {
return resource.kind === 'ConfigMap';
}