You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2026-07-13 rewrite. This OP originally diagnosed a stalled/frozen NSO solver. Live investigation from the prod hub + a reproduction of NSO's own federated client disproved that. NSO's solver is live and reconciling correctly; the block is elsewhere. The two earlier investigation comments are minimized as outdated. Verified current picture below.
Summary
Edge gateway custom-hostname certificates are not issuing. But the GatewayDownstreamCertificateSolver is not the cause — it is running, holds leadership, and reconciles the Challenges it can see, creating the expected HTTP01 solver HTTPRoute/HTTPRouteFilter. The Challenges are stuck at cert-manager's ACME HTTP-01 self-check, which is failing for heterogeneous reasons (DNS resolution failures, HTTP 404/500/503). Separately, the control-plane Challenge set NSO watches has no object newer than 2026-06-18, while edge member clusters carry fresh Challenges — a topology split that needs explaining.
Verified topology (reproduced NSO's client)
The solver watches the Karmada control-plane apiserver (karmada-apiserver.karmada-system.svc.cluster.local:5443), reached via the pod's federated-kubeconfig + a projected SA token (network-services-operator-controller-manager, audience = that apiserver). Reproduced this exact client from the hub and queried it directly.
That apiserver currently serves 16 gateway acme.cert-manager.io/v1 Challenges (issuerRef=ClusterIssuer/datum-gateway-http, type: HTTP-01), all created ≤ 2026-06-18 (two older, from March/May), all pending, and actively updated by cert-manager today (managedFields: cert-manager-challenges@2026-07-13T05:23Z).
The solver's surviving http01-solverHTTPRoute/HTTPRouteFilter set on the edge maps 1:1 to these 16 control-plane Challenges.
What is actually happening
The solver is live, not stalled. Leader pod network-services-operator-controller-manager-849f57c79d-xwp54 (fresh, restartCount 0) logs the full happy path with 0 errors, and re-reconciles on cert-manager's live status updates:
Reconciling ACME challenge solver
Processing challenge for Gateway-owned certificate
Successfully retrieved key and token from cert-manager Challenge
HTTPRouteFilter reconciled
HTTPRoute reconciled
The Challenges are stuck at the HTTP-01 self-check, for mixed reasons (live status on the 16):
Failure reason (from status.reason)
Notes
dial tcp: lookup <domain> on 10.2.0.10:53: server misbehaving
cluster-DNS resolution failing for the self-check (e.g. app.datum.design)
wrong status code '404', expected '200'
e.g. javalords-ink…, swirls-k8s…
wrong status code '500'
e.g. pcep-lol…, tunnel-dmsrd…
wrong status code '503'
seen intermittently on the same objects
failed to perform self check
generic self-check failure
So even objects for which the solver has created a route still fail the self-check (404/500/503), and some never get that far (DNS). This is a data-path / self-check problem, not a "solver isn't creating routes" problem.
The real open question — control-plane vs member Challenge split
The control-plane apiserver NSO watches has no Challenge newer than 2026-06-18. That, not a dead watch, is why no new solver routes appear after 06-18 — NSO faithfully serves what's there, and there's nothing newer.
Meanwhile the edge memberus-central-1-alice (a registered Karmada member) has 96 Challenges created 2026-07-13 02:43, which do not appear in the control-plane view. The 06-18 control-plane object javalords-ink-https-hostname-0-1-2137251722-2111718441 is even NotFound on that member.
So there appear to be two Challenge populations (control-plane vs member) that don't reconcile. Where are new tenant gateway Challenges being created, and why don't they land in the apiserver NSO watches?
What to investigate next (owner)
Why the HTTP-01 self-check fails per-domain: cluster-DNS server misbehaving for control-plane cert-manager, and edge Envoy returning 404/500/503 on /.well-known/acme-challenge/<token> even where a solver route exists.
The control-plane ↔ member Challenge topology: is new tenant cert issuance supposed to create Challenges in the control-plane apiserver (where NSO + datum-gateway-http live), and if so why has nothing appeared since 06-18?
Summary
Edge gateway custom-hostname certificates are not issuing. But the
GatewayDownstreamCertificateSolveris not the cause — it is running, holds leadership, and reconciles the Challenges it can see, creating the expected HTTP01 solverHTTPRoute/HTTPRouteFilter. The Challenges are stuck at cert-manager's ACME HTTP-01 self-check, which is failing for heterogeneous reasons (DNS resolution failures, HTTP 404/500/503). Separately, the control-plane Challenge set NSO watches has no object newer than 2026-06-18, while edge member clusters carry fresh Challenges — a topology split that needs explaining.Verified topology (reproduced NSO's client)
karmada-apiserver.karmada-system.svc.cluster.local:5443), reached via the pod'sfederated-kubeconfig+ a projected SA token (network-services-operator-controller-manager, audience = that apiserver). Reproduced this exact client from the hub and queried it directly.acme.cert-manager.io/v1Challenges (issuerRef=ClusterIssuer/datum-gateway-http,type: HTTP-01), all created ≤ 2026-06-18 (two older, from March/May), allpending, and actively updated by cert-manager today (managedFields: cert-manager-challenges@2026-07-13T05:23Z).http01-solverHTTPRoute/HTTPRouteFilterset on the edge maps 1:1 to these 16 control-plane Challenges.What is actually happening
The solver is live, not stalled. Leader pod
network-services-operator-controller-manager-849f57c79d-xwp54(fresh,restartCount 0) logs the full happy path with 0 errors, and re-reconciles on cert-manager's live status updates:The Challenges are stuck at the HTTP-01 self-check, for mixed reasons (live status on the 16):
status.reason)dial tcp: lookup <domain> on 10.2.0.10:53: server misbehavingapp.datum.design)wrong status code '404', expected '200'javalords-ink…,swirls-k8s…wrong status code '500'pcep-lol…,tunnel-dmsrd…wrong status code '503'failed to perform self checkSo even objects for which the solver has created a route still fail the self-check (404/500/503), and some never get that far (DNS). This is a data-path / self-check problem, not a "solver isn't creating routes" problem.
The real open question — control-plane vs member Challenge split
us-central-1-alice(a registered Karmada member) has 96 Challenges created 2026-07-13 02:43, which do not appear in the control-plane view. The 06-18 control-plane objectjavalords-ink-https-hostname-0-1-2137251722-2111718441is evenNotFoundon that member.What to investigate next (owner)
server misbehavingfor control-plane cert-manager, and edge Envoy returning 404/500/503 on/.well-known/acme-challenge/<token>even where a solver route exists.datum-gateway-httplive), and if so why has nothing appeared since 06-18?Refs