Repository navigation
radar-hub: stage 1.9.0-rc.3 (Hub 1.9.0-rc.3) with cloudAppURL and a port-forward mode - #54
Conversation
Chart and Hub versions are aligned from this release on. Hub 1.9.0-rc.1
adds moving clusters from Radar Cloud to a self-hosted hub; its links
into Cloud ("Move it for me") use RADAR_HUB_CLOUD_APP_URL, now set by
hub.cloudAppURL. Empty keeps the Hub's default, https://app.radarhq.io.
PR Summary by QodoStage Radar Hub 1.9.0-rc.1 with configurable Cloud app URL
AI Description
Diagram
High-Level Assessment
Files changed (5)
|
Code Review by Qodo
1.
|
The pattern accepted https://:, non-numeric ports and ports above 65535. It now requires a host (DNS name or bracketed IPv6) and an optional port 1-65535, with no userinfo, path, query, fragment or backslash.
Hub 1.9.0-rc.2 adds host and port validation for the Cloud app URL and stops the web from falling back to production Cloud for an invalid one. rc.1 images exist but were never published as a chart.
- oneCluster.enabled: browser-only hub on https://localhost:8443. - localCluster.id/token/existingSecret: the hub registers the cluster it runs in. - web.tls.inCluster: keep the in-cluster https listener and RADAR_HUB_IN_CLUSTER_AGENT_URL behind Ingress or Gateway. - NOTES print the in-cluster agent address.
…cURL - Remove oneCluster. A localhost hub.publicURL (localhost, *.localhost, 127.x, [::1], 0.0.0.0, [::]) turns on the in-cluster https listener; with no Ingress, HTTPRoute or LoadBalancer it also sets RADAR_HUB_BROWSER_ONLY_URL, requires https and web.tls.selfSigned, and NOTES print the port-forward command (with --address where needed). - Strip IPv6 brackets from the self-signed certificate host. - NOTES list the web Service's https port when it exists.
Stages Hub 1.9.0-rc.3, which adds:
kubectl port-forward(skyhook-dev/radar-hub#275, skyhook-dev/radar-hub#277, skyhook-dev/radar-hub-web#330)Versions
version: 1.9.0-rc.3,appVersion: 1.9.0-rc.3. Chart and Hub versions match from this release on; the Hub skips 1.8.0 so they can. 1.9.0-rc.2 is not published from this PR.ghcr.io/skyhook-dev/radar-hub:1.9.0-rc.3andghcr.io/skyhook-dev/radar-hub-web:1.9.0-rc.3are published. Merging publishes the chart. As a pre-release it isn't the default forhelm install.New values
hub.cloudAppURLsetsRADAR_HUB_CLOUD_APP_URL: the Radar Cloud web app the hub's licence belongs to, used only to build links into Cloud. Empty keeps the Hub's default,https://app.radarhq.io. The schema accepts only a bare http(s) origin, the same rule the Hub enforces at startup. It stays set whenhub.airGappedis on, since it makes no calls.A localhost
hub.publicURL(localhost,*.localhost,127.x,[::1],0.0.0.0,[::], any port) means the hub has no address agents can use; the hub works that out itself too. With no Ingress, HTTPRoute or LoadBalancer in front it also means the hub is opened with port-forward: the chart setsRADAR_HUB_BROWSER_ONLY_URL, requireshttpsandweb.tls.selfSigned, and NOTES print the port-forward command for the URL's port (with--addressfor loopback IPs other than127.0.0.1and::1). There is no mode flag.localCluster.idwithlocalCluster.token, orlocalCluster.existingSecretandexistingSecretKey, has the hub register the cluster it runs in. An inline token lives in the chart Secret, whose checksum rolls the hub pod when the token changes.web.tls.inClusterkeeps the web Service's https port, the pod's 8443 listener andRADAR_HUB_IN_CLUSTER_AGENT_URLon behind an Ingress or Gateway. The same listener is on wheneverweb.tls.selfSigned, a localhosthub.publicURLorlocalClusteris set. Agents in the hub's own cluster dial it, so switching a trial to Ingress doesn't disconnect them. The readiness probe andRADAR_HUB_INSECURE_SKIP_VERIFYstill followweb.tls.selfSignedonly.NOTES print the exact in-cluster agent address, honouring
fullnameOverride,service.web.tlsPortandclusterDomain.Where to look hardest
templates/_helpers.tplradar-hub.inClusterTLS, and the Ingress renders with and without it. A plain Ingress install without the new values renders the same as before apart from the version.Also fixed
The self-signed certificate host drops IPv6 brackets, so
https://[::1]:8443and public IPv6 URLs get a valid certificate (OpenSSL rejectedIP:[::1]).Known side effect
With
service.web.type=LoadBalancerand any of the in-cluster triggers set, the self-signed 443 is also exposed on the load balancer, since it's the same Service.Testing
helm lintwith both CI values files: passhelm unittest charts/radar-hub: 19/19tests/render-matrix.sh: all 209 checks pass, including the cloudAppURL cases, every localhost form and lookalikes that must not match, the https and self-signed guards and their Ingress/Gateway/LoadBalancer exemption,localClusterinline and existing Secret,web.tls.inClusterbehind Ingress, and the NOTES port-forward and--addresslines.hub.publicURL=https://localhost:8443connected its own cluster with no DNS or load balancer. Afterhelm upgrade --reset-then-reuse-valuesto Ingress, agents on the in-cluster address stayed connected and port-forward mode ended by itself. Ahttps://[::1]:8443install came up with a valid certificate.