import "./service-details.scss"; import React from "react"; import { observer } from "mobx-react"; import { DrawerItem, DrawerTitle } from "../drawer"; import { Badge } from "../badge"; import { KubeEventDetails } from "../+events/kube-event-details"; import { KubeObjectDetailsProps } from "../kube-object"; import { Service, endpointApi } from "../../api/endpoints"; import { KubeObjectMeta } from "../kube-object/kube-object-meta"; import { ServicePortComponent } from "./service-port-component"; import { endpointStore } from "../+network-endpoints/endpoints.store"; import { ServiceDetailsEndpoint } from "./service-details-endpoint"; import { kubeObjectDetailRegistry } from "../../api/kube-object-detail-registry"; interface Props extends KubeObjectDetailsProps { } @observer export class ServiceDetails extends React.Component { componentDidMount() { if (!endpointStore.isLoaded) { endpointStore.loadAll(); } endpointApi.watch(); } render() { const { object: service } = this.props; if (!service) return; const { spec } = service; const endpoint = endpointStore.getByName(service.getName(), service.getNs()); return (
{service.getSelector().map(selector => )} {spec.type} {spec.sessionAffinity} {spec.clusterIP} {service.getExternalIps().length > 0 && ( {service.getExternalIps().map(ip =>
{ip}
)}
)}
{ service.getPorts().map((port) => ( )) }
{spec.type === "LoadBalancer" && spec.loadBalancerIP && ( {spec.loadBalancerIP} )}
); } } kubeObjectDetailRegistry.add({ kind: "Service", apiVersions: ["v1"], components: { Details: (props) => } }); kubeObjectDetailRegistry.add({ kind: "Service", apiVersions: ["v1"], priority: 5, components: { Details: (props) => } });