mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Use spec.serviceName as an externalIP if nothing else (#4188)
* Use spec.serviceName as an externalIP if nothing else Signed-off-by: Sebastian Malton <sebastian@malton.name> * Move using externalName to display logic Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
c7e38052fc
commit
4d63ef2878
@ -53,7 +53,7 @@ export interface Service {
|
|||||||
clusterIP: string;
|
clusterIP: string;
|
||||||
clusterIPs?: string[];
|
clusterIPs?: string[];
|
||||||
externalTrafficPolicy?: string;
|
externalTrafficPolicy?: string;
|
||||||
externalName: string;
|
externalName?: string;
|
||||||
loadBalancerIP?: string;
|
loadBalancerIP?: string;
|
||||||
loadBalancerSourceRanges?: string[];
|
loadBalancerSourceRanges?: string[];
|
||||||
sessionAffinity: string;
|
sessionAffinity: string;
|
||||||
@ -100,11 +100,15 @@ export class Service extends KubeObject {
|
|||||||
getExternalIps() {
|
getExternalIps() {
|
||||||
const lb = this.getLoadBalancer();
|
const lb = this.getLoadBalancer();
|
||||||
|
|
||||||
if (lb && lb.ingress) {
|
if (lb?.ingress) {
|
||||||
return lb.ingress.map(val => val.ip || val.hostname);
|
return lb.ingress.map(val => val.ip || val.hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.spec.externalIPs || [];
|
if (Array.isArray(this.spec?.externalIPs)) {
|
||||||
|
return this.spec.externalIPs;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
getType() {
|
getType() {
|
||||||
|
|||||||
@ -67,6 +67,11 @@ export class ServiceDetails extends React.Component<Props> {
|
|||||||
|
|
||||||
const { spec } = service;
|
const { spec } = service;
|
||||||
const endpoint = endpointStore.getByName(service.getName(), service.getNs());
|
const endpoint = endpointStore.getByName(service.getName(), service.getNs());
|
||||||
|
const externalIps = service.getExternalIps();
|
||||||
|
|
||||||
|
if (externalIps.length === 0 && spec?.externalName) {
|
||||||
|
externalIps.push(spec.externalName);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="ServicesDetails">
|
<div className="ServicesDetails">
|
||||||
@ -106,9 +111,9 @@ export class ServiceDetails extends React.Component<Props> {
|
|||||||
{service.getIpFamilyPolicy()}
|
{service.getIpFamilyPolicy()}
|
||||||
</DrawerItem>
|
</DrawerItem>
|
||||||
|
|
||||||
{service.getExternalIps().length > 0 && (
|
{externalIps.length > 0 && (
|
||||||
<DrawerItem name="External IPs">
|
<DrawerItem name="External IPs">
|
||||||
{service.getExternalIps().map(ip => <div key={ip}>{ip}</div>)}
|
{externalIps.map(ip => <div key={ip}>{ip}</div>)}
|
||||||
</DrawerItem>
|
</DrawerItem>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
@ -81,18 +81,26 @@ export class Services extends React.Component<Props> {
|
|||||||
{ title: "Age", className: "age", sortBy: columnId.age, id: columnId.age },
|
{ title: "Age", className: "age", sortBy: columnId.age, id: columnId.age },
|
||||||
{ title: "Status", className: "status", sortBy: columnId.status, id: columnId.status },
|
{ title: "Status", className: "status", sortBy: columnId.status, id: columnId.status },
|
||||||
]}
|
]}
|
||||||
renderTableContents={service => [
|
renderTableContents={service => {
|
||||||
service.getName(),
|
const externalIps = service.getExternalIps();
|
||||||
<KubeObjectStatusIcon key="icon" object={service} />,
|
|
||||||
service.getNs(),
|
if (externalIps.length === 0 && service.spec?.externalName) {
|
||||||
service.getType(),
|
externalIps.push(service.spec.externalName);
|
||||||
service.getClusterIp(),
|
}
|
||||||
service.getPorts().join(", "),
|
|
||||||
service.getExternalIps().join(", ") || "-",
|
return [
|
||||||
service.getSelector().map(label => <Badge key={label} label={label}/>),
|
service.getName(),
|
||||||
service.getAge(),
|
<KubeObjectStatusIcon key="icon" object={service} />,
|
||||||
{ title: service.getStatus(), className: service.getStatus().toLowerCase() },
|
service.getNs(),
|
||||||
]}
|
service.getType(),
|
||||||
|
service.getClusterIp(),
|
||||||
|
service.getPorts().join(", "),
|
||||||
|
externalIps.join(", ") || "-",
|
||||||
|
service.getSelector().map(label => <Badge key={label} label={label} />),
|
||||||
|
service.getAge(),
|
||||||
|
{ title: service.getStatus(), className: service.getStatus().toLowerCase() },
|
||||||
|
];
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user