Skip to content

App detail Services tab does not show the external LoadBalancer IP #38

@lexfrei

Description

Summary

For an application exposed with external: true (which creates a type: LoadBalancer Service), the app detail → Services tab shows the service Type and Cluster IP but not the external IP assigned by MetalLB. There is no way to learn the connection address from the per-app view. The pre-1.4.0 dashboard showed this, so it reads as a regression — reported as a blocker in cozystack/cozystack#2789.

Mechanism

apps/console/src/routes/detail/ServicesTab.tsx lists Services with useK8sList<K8sResource<ServiceSpec>>, where ServiceSpec = { type, clusterIP, ports } — no status. The rendered columns are Name / Type / Cluster IP / Ports / Age. The tab never reads status.loadBalancer.ingress[].ip, so a LoadBalancer service shows only its cluster-internal IP.

The data is already reachable in the same codebase: apps/console/src/routes/ExternalIpsPage.tsx (Administration → External IPs) queries K8sResource<ServiceSpec, ServiceStatus> and renders status.loadBalancer.ingress[0].ip ?? hostname ?? "Pending". So this is a wiring gap in the per-app tab, not missing data.

Suggested fix

Add a ServiceStatus type to the ServicesTab query and surface an "External IP" column (ip / hostname / Pending) for LoadBalancer services, mirroring what ExternalIpsPage already does.

Workaround

Administration → External IPs lists the external IP for the current tenant.

Reference

User report: cozystack/cozystack#2789. The FQDN/connection-string half of that report is tracked separately as it needs design.

Sibling: #39 (FQDN / connection string).

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/consoleIssues or PRs related to apps/console — routes, detail pages, marketplace, command palettekind/bugCategorizes issue or PR as related to a bugpriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions