import startCase from "lodash/startCase"; import "./volume-details.scss"; import React from "react"; import { Link } from "react-router-dom"; import { observer } from "mobx-react"; import { DrawerItem, DrawerTitle } from "../drawer"; import { Badge } from "../badge"; import { KubeEventDetails } from "../+events/kube-event-details"; import { PersistentVolume, pvcApi } from "../../api/endpoints"; import { getDetailsUrl, KubeObjectDetailsProps } from "../kube-object"; import { KubeObjectMeta } from "../kube-object/kube-object-meta"; import { kubeObjectDetailRegistry } from "../../api/kube-object-detail-registry"; interface Props extends KubeObjectDetailsProps { } @observer export class PersistentVolumeDetails extends React.Component { render() { const { object: volume } = this.props; if (!volume) { return null; } const { accessModes, capacity, persistentVolumeReclaimPolicy, storageClassName, claimRef, flexVolume, mountOptions, nfs } = volume.spec; return (
{capacity.storage} {mountOptions && ( {mountOptions.join(", ")} )} {accessModes.join(", ")} {persistentVolumeReclaimPolicy} {storageClassName} {nfs && ( <> { Object.entries(nfs).map(([name, value]) => ( {value} )) } )} {flexVolume && ( <> {flexVolume.driver} { Object.entries(flexVolume.options).map(([name, value]) => ( {value} )) } )} {claimRef && ( <> {claimRef.kind} {claimRef.name} {claimRef.namespace} )}
); } } kubeObjectDetailRegistry.add({ kind: "PersistentVolume", apiVersions: ["v1"], components: { Details: (props) => } }); kubeObjectDetailRegistry.add({ kind: "PersistentVolume", apiVersions: ["v1"], priority: 5, components: { Details: (props) => } });