Summary
Before 1.4.0 the dashboard could show an FQDN to connect to a provisioned service, with a configurable domain suffix (via the old kube-service-details factory) — handy when CoreDNS was tuned to expose external IPs under a separate zone. The new cozystack-ui has no equivalent: no hostname or connection string is shown for LoadBalancer services anywhere. Requested as part of cozystack/cozystack#2789.
Current state
apps/console/src/routes/detail/ServicesTab.tsx shows only cluster-internal fields. A repo search for fqdn / svc.cluster.local / domain-suffix handling finds nothing — there is no FQDN/endpoint mechanism in the new UI. IngressesTab.tsx renders spec.rules[].host for Ingress objects, but that does not cover externally-exposed LoadBalancer services.
Design questions
- Where does the domain suffix come from — a platform-level setting, per-tenant config, or user-supplied? The old behaviour was operator-configurable, so the new one needs a source of truth before implementation.
- Should the FQDN be derived from the external IP's reverse zone, from a per-service annotation, or composed from a configured suffix + service name?
This is distinct from surfacing the raw LoadBalancer IP (sibling issue), which is a straight wiring fix; the FQDN needs the domain-source decision first.
Reference
User report: cozystack/cozystack#2789.
Sibling: #38 (raw LoadBalancer IP wiring).
Summary
Before 1.4.0 the dashboard could show an FQDN to connect to a provisioned service, with a configurable domain suffix (via the old kube-service-details factory) — handy when CoreDNS was tuned to expose external IPs under a separate zone. The new cozystack-ui has no equivalent: no hostname or connection string is shown for
LoadBalancerservices anywhere. Requested as part of cozystack/cozystack#2789.Current state
apps/console/src/routes/detail/ServicesTab.tsxshows only cluster-internal fields. A repo search forfqdn/svc.cluster.local/ domain-suffix handling finds nothing — there is no FQDN/endpoint mechanism in the new UI.IngressesTab.tsxrendersspec.rules[].hostfor Ingress objects, but that does not cover externally-exposedLoadBalancerservices.Design questions
This is distinct from surfacing the raw LoadBalancer IP (sibling issue), which is a straight wiring fix; the FQDN needs the domain-source decision first.
Reference
User report: cozystack/cozystack#2789.
Sibling: #38 (raw LoadBalancer IP wiring).