import "./service-details.scss" import React from "react"; import { observer } from "mobx-react"; import { t, Trans } from "@lingui/macro"; 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 { _i18n } from "../../i18n"; 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 (
Selector} labelsOnly> {service.getSelector().map(selector => )} Type}> {spec.type} Session Affinity}> {spec.sessionAffinity} Cluster IP}> {spec.clusterIP} {service.getExternalIps().length > 0 && ( External IPs}> {service.getExternalIps().map(ip =>
{ip}
)}
)} Ports}>
{ service.getPorts().map((port) => ( )) }
{spec.type === "LoadBalancer" && spec.loadBalancerIP && ( Load Balancer IP}> {spec.loadBalancerIP} )}
); } } kubeObjectDetailRegistry.add({ kind: "Service", apiVersions: ["v1"], components: { Details: (props) => } }) kubeObjectDetailRegistry.add({ kind: "Service", apiVersions: ["v1"], priority: 0, components: { Details: (props) => } })