Kubernetes
- Version: 1.27 or newer. We test against 1.29 + 1.30.
- Resources reserved for the control plane:
radar-hub(Go API + tunnel terminator): 100m CPU / 256Mi memory request, 1 CPU / 1Gi limit. Single replica is fine for hundreds of clusters.radar-hub-web(nginx + web app bundle): 50m / 64Mi request.- Migration initContainer: shares the
radar-hubimage and runs to completion in the same Pod before the main hub container starts, so it doesn’t need its own resource budget.
- Storage: the control plane is stateless; durable state lives in your Postgres. No PVC claims from the chart.
- Ingress class: any (nginx, contour, traefik, gateway-api). Sample annotations in the install doc target nginx.
Postgres
The chart does NOT install Postgres. You must provide one of:| Option | Best for |
|---|---|
| Managed Postgres (RDS, Cloud SQL, Azure Flexible Server) | Production. Zero ops impact on your cluster. |
CloudNativePG Cluster in the same / nearby namespace | If you already operate CNPG. Chart reads its connection Secret directly. |
| Crunchy / Zalando operator | Same shape as CNPG - point at the operator-generated Secret. |
Hand-rolled postgres:17 Pod or external VM | Evaluation only. Not recommended past pilot. |
RADAR_HUB_AUDIT_RETENTION_DAYS * average events/day.
Connection string: any standard postgres://user:pass@host:5432/db?sslmode=require URL. We recommend sslmode=require or stricter for managed databases.
Network
The control plane needs:- Inbound: browsers (your team) and customer in-cluster Radars reach
<hub.publicURL>over HTTPS. - Outbound:
api.radarhq.iofor the license heartbeat (on by default; disable via chart values if outbound HTTPS is forbidden).- Your IdP discovery endpoint for OIDC.
ghcr.io(or your private mirror) for image pulls.
Browser
- Same matrix as the hosted Cloud: latest Chrome / Edge / Firefox / Safari. No IE.
DNS + TLS
- One DNS record (e.g.
radar.acme.example) pointing at your Ingress. This URL must be set ashub.publicURLin the Helm values - the control plane fails fast at boot if it’s not configured. Used for sign-in redirects, agent tunnel registration, OAuth-MCP resource publishing, and any other canonical-URL surface. - A TLS cert via cert-manager / your existing wildcard / a manually-provisioned Secret. The chart’s Ingress template accepts a pre-provisioned
tls.secretNameand is unopinionated about the cert source.
Auth provider (one of)
- OIDC IdP with client credentials registered for
<hub.publicURL>/api/auth/oidc/callbackas a redirect URI. Tested against Okta, Auth0, Google Workspace, Azure AD. - Break-glass admin only for evaluation pilots; configurable via env vars. Permanent escape hatch even when OIDC is enabled.