diff --git a/src/renderer/api/endpoints/ingress.api.ts b/src/renderer/api/endpoints/ingress.api.ts index f361c24fd7..68911fb882 100644 --- a/src/renderer/api/endpoints/ingress.api.ts +++ b/src/renderer/api/endpoints/ingress.api.ts @@ -2,6 +2,7 @@ import { KubeObject } from "../kube-object"; import { autobind } from "../../utils"; import { IMetrics, metricsApi } from "./metrics.api"; import { KubeApi } from "../kube-api"; +import { hostname } from "os"; export class IngressApi extends KubeApi { getMetrics(ingress: string, namespace: string): Promise { @@ -107,6 +108,20 @@ export class Ingress extends KubeObject { } return ports.join(", ") } + + getLoadBalancers() { + const ingressAddresses: string[] = []; + const { status: { loadBalancer } } = this; + + if (!loadBalancer) return []; + + loadBalancer.ingress.forEach(address => { + const entry = address.hostname ? address.hostname : address.ip; + ingressAddresses.push(entry); + }) + + return ingressAddresses; + } } export const ingressApi = new IngressApi({ diff --git a/src/renderer/components/+network-ingresses/ingresses.tsx b/src/renderer/components/+network-ingresses/ingresses.tsx index 1370a62277..f0332e4c0d 100644 --- a/src/renderer/components/+network-ingresses/ingresses.tsx +++ b/src/renderer/components/+network-ingresses/ingresses.tsx @@ -39,12 +39,14 @@ export class Ingresses extends React.Component { renderTableHeader={[ { title: Name, className: "name", sortBy: sortBy.name }, { title: Namespace, className: "namespace", sortBy: sortBy.namespace }, + { title: LoadBalancers, className: "loadbalancers" }, { title: Rules, className: "rules" }, { title: Age, className: "age", sortBy: sortBy.age }, ]} renderTableContents={(ingress: Ingress) => [ ingress.getName(), ingress.getNs(), + ingress.getLoadBalancers().map(lb =>

{lb}

), ingress.getRoutes().map(route =>

{route}

), ingress.getAge(), ]}