Repository navigation
Description
🤖 Generated by the Daily AI Engineer (Codex instance)
Summary
Expose the selectable Coroot profiles at observability.${domain} through the
template's existing oauth2-proxy boundary. The explicit Coroot profiles already
render and validate, but they have no supported Gateway route for an operator to
open and evaluate the UI.
Motivation and evidence
Current main renders no HTTPRoute in the observability namespace for either
clusters/local-coroot or clusters/prod-coroot. It also renders no Coroot entry
in the auth-proxy configuration, no cross-namespace ReferenceGrant, and no
auth-proxy-to-Coroot network path. Coroot Community Edition has no native OIDC,
so exposing it directly or enabling anonymous Admin without a complete SSO gate
would weaken the scaffold's security posture.
The affected audience is an operator who opts into Coroot and needs a supported,
authenticated way to evaluate its UI. The hypothesis is that coupling the route,
proxy, grant, and network path in one profile-only slice makes the option usable
without changing any default scaffold or exposing Coroot directly.
Proposed solution
- Add an
observability.${domain}HTTPRouteto both explicit Coroot profiles.
Its only backend is the existingoauth2-proxyservice. - Replace the retired OpenCost auth-proxy slot with a Coroot router and service
that forwards tocoroot-coroot.observability.svc.cluster.local:8080. - Add the exact cross-namespace
ReferenceGrantand least-privilege Cilium
ingress/egress legs needed for that path. - Enable Coroot's anonymous Admin role only in the explicit Coroot profiles and
only when the complete oauth2-proxy boundary is present. - Document the URL, the Community Edition SSO boundary, and how to opt out by
returning to the default profile.
Acceptance criteria
-
clusters/local-corootandclusters/prod-corooteach render exactly one
Coroot route atobservability.${domain}with HSTS and generic Homepage
metadata. - The Gateway backend targets only
oauth2-proxy; no route targets Coroot
directly. - Each opt-in render contains exactly one Coroot auth-proxy router/service,
one matchingReferenceGrant, and matching least-privilege Cilium paths. - The Coroot custom resource grants anonymous Admin only when every SSO gate
element is present; validation fails for a direct route, a missing gate
leg, or an uncoupled Admin role. - OpenCost route, proxy, grant, and network references remain absent from the
explicit Coroot profiles. - Default clusters, default provider payloads,
ksail.yaml, and
ksail.prod.yamlremain byte-for-byte unchanged. - Docker remains free of the Hetzner-only audit forwarder; Hetzner retains
exactly one. - The observability-option guard, both KSail workload validations, naming
validation, and CI scaffold test pass.
Success signal and guardrail
The delivery signal is a complete rendered SSO path from Gateway to Coroot in
both opt-in profiles, exercised through the documented URL. The guardrail is zero
change to every default render and zero unauthenticated Gateway path to Coroot.
Alternatives considered
- A direct Gateway backend to Coroot was rejected because it bypasses SSO.
- Enabling anonymous Admin in the reusable Coroot base was rejected because the
role would no longer be structurally coupled to the authentication boundary. - Switching the root KSail defaults now was rejected because legacy log and
metrics resources still need separate retirement slices.
Rough size
M
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Projects
- StatusShow more project fields✅ Done
Activity
coderabbitai commentedon Jul 18, 2026
🔗 Related PRs
#62 - feat(coredns): migrate docker-provider CoreDNS from Deployment to HelmRelease [merged]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:💬 Have feedback or questions? Drop into our discord!
feat(observability): expose Coroot UI through SSO (#93)