feat(kubernetes-plugin): add pv and pvc rendering (#31355)

* feat: add persistent volumes rendering

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* feat: add pv status

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* feat: add volume status and volume type

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* feat: add test for pv

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* feat: add persistent volume claims

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* feat: add persistent volume status pending

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* feat: add persistent volume metadata

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* feat: add persistent volume claims metadata

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* feat: add persistent volume claims test code

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* chore: changeset

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* chore: remove gcp and gke.io

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* chore: yarn build:api-reports

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* feat: update pv to table drawer like pod

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* feat: update pvc to table drawer like pod

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* chore: remove user event at test code

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* chore: exclude pv,pvc from default objects

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* chore: remove duplication import for pv

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* chore: yarn build:api-reports

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* chore: retrigger required checks

Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* chore: retrigger required checks

Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* chore: retrigger required checks

Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

* chore: retrigger required checks

Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>

---------

Signed-off-by: 김병준 <kingbj0429@gmail.com>
Signed-off-by: KoB <63000843+kingbj940429@users.noreply.github.com>
This commit is contained in:
KoB
2026-01-29 04:31:01 +09:00
committed by GitHub
parent 5af9e14bb0
commit ce3639c588
29 changed files with 1773 additions and 4 deletions
+25 -1
View File
@@ -17,6 +17,8 @@ import type { V1Deployment } from '@kubernetes/client-node';
import type { V1Ingress } from '@kubernetes/client-node';
import type { V1Job } from '@kubernetes/client-node';
import type { V1LimitRange } from '@kubernetes/client-node';
import type { V1PersistentVolume } from '@kubernetes/client-node';
import type { V1PersistentVolumeClaim } from '@kubernetes/client-node';
import type { V1Pod } from '@kubernetes/client-node';
import type { V1ReplicaSet } from '@kubernetes/client-node';
import type { V1ResourceQuota } from '@kubernetes/client-node';
@@ -267,7 +269,9 @@ export type FetchResponse =
| StatefulSetsFetchResponse
| DaemonSetsFetchResponse
| PodStatusFetchResponse
| SecretsFetchResponse;
| SecretsFetchResponse
| PersistentVolumeFetchResponse
| PersistentVolumeClaimsFetchResponse;
// @public (undocumented)
export interface GroupedResponses extends DeploymentResources {
@@ -284,6 +288,10 @@ export interface GroupedResponses extends DeploymentResources {
// (undocumented)
jobs: V1Job[];
// (undocumented)
persistentVolumeClaims: V1PersistentVolumeClaim[];
// (undocumented)
persistentVolumes: V1PersistentVolume[];
// (undocumented)
secrets: V1Secret[];
// (undocumented)
services: V1Service[];
@@ -385,6 +393,22 @@ export interface ObjectsByEntityResponse {
items: ClusterObjects[];
}
// @public (undocumented)
export interface PersistentVolumeClaimsFetchResponse {
// (undocumented)
resources: Array<V1PersistentVolumeClaim>;
// (undocumented)
type: 'persistentvolumeclaims';
}
// @public (undocumented)
export interface PersistentVolumeFetchResponse {
// (undocumented)
resources: Array<V1PersistentVolume>;
// (undocumented)
type: 'persistentvolumes';
}
// @public (undocumented)
export interface PodFetchResponse {
// (undocumented)
+19 -1
View File
@@ -31,6 +31,8 @@ import type {
V1Service,
V1StatefulSet,
V1Secret,
V1PersistentVolume,
V1PersistentVolumeClaim,
} from '@kubernetes/client-node';
import { Entity } from '@backstage/catalog-model';
@@ -142,7 +144,9 @@ export type FetchResponse =
| StatefulSetsFetchResponse
| DaemonSetsFetchResponse
| PodStatusFetchResponse
| SecretsFetchResponse;
| SecretsFetchResponse
| PersistentVolumeFetchResponse
| PersistentVolumeClaimsFetchResponse;
/** @public */
export interface PodFetchResponse {
@@ -246,6 +250,18 @@ export interface SecretsFetchResponse {
resources: Array<V1Secret>;
}
/** @public */
export interface PersistentVolumeFetchResponse {
type: 'persistentvolumes';
resources: Array<V1PersistentVolume>;
}
/** @public */
export interface PersistentVolumeClaimsFetchResponse {
type: 'persistentvolumeclaims';
resources: Array<V1PersistentVolumeClaim>;
}
/** @public */
export type KubernetesFetchError = StatusError | RawFetchError;
@@ -311,4 +327,6 @@ export interface GroupedResponses extends DeploymentResources {
customResources: any[];
statefulsets: V1StatefulSet[];
daemonSets: V1DaemonSet[];
persistentVolumes: V1PersistentVolume[];
persistentVolumeClaims: V1PersistentVolumeClaim[];
}
@@ -64,6 +64,12 @@ export const groupResponses = (
case 'daemonsets':
prev.daemonSets.push(...next.resources);
break;
case 'persistentvolumes':
prev.persistentVolumes.push(...next.resources);
break;
case 'persistentvolumeclaims':
prev.persistentVolumeClaims.push(...next.resources);
break;
default:
}
return prev;
@@ -82,6 +88,8 @@ export const groupResponses = (
customResources: [],
statefulsets: [],
daemonSets: [],
persistentVolumes: [],
persistentVolumeClaims: [],
} as GroupedResponses,
);
};