QA-loop iter-2 cluster: be-handler-errors-5xx-4xx. After Fix #15 (SPA route guard) + Fix #16 (whoami) shipped, the largest remaining matrix-FAIL cluster is BE handler errors: - ITEMS-ENVELOPE FAILs (TC-070..075, TC-184/192/194/227): the generic /api/v1/sovereigns/{id}/k8s/{kind} surface returned "unknown kind" for helmreleases/applications/blueprints/ useraccesses/organizations/environments. The kinds were reachable via per-CRD handlers but the k8scache.Factory's dynamic informer pool didn't know about them. Added six entries to DefaultKinds with matching ClusterRole verbs per feedback_chroot_in_cluster_fallback.md. - TC-261 (HTTP 404 on /api/v1/version): the endpoint didn't exist. Added handler/version.go returning git SHA + chart version + Go runtime, with env override for chart-injected truth and ldflag fallback for CI-baked-in values. Public route, no auth gate. - TC-089 (HTTP 503 on /blueprints/curatable when Gitea unwired): changed to return 200 + empty list envelope so the UI's empty-state renders instead of "Failed to fetch". Categorisation of the rest of the cluster: - HTTP 500 cluster (TC-061..068, TC-149): already 200 — Fix #15+#16 cleared the underlying auth context. - HTTP 503/200 (TC-088, TC-090, TC-244, TC-235, TC-236) and TC-078: matrix-drift; the executor calls POST endpoints with GET, or the matrix targets a hard-coded pod name that doesn't exist on omantel. Listed in fix-author report for the Test-Plan Author to fix in iter-3. - HTTP 502 (TC-210, TC-211): keycloak proxy SA misconfig in chroot Sovereign — separate cluster (out of scope for this fix; the catalyst client/role members lookups need a Sovereign-side SA the chroot doesn't currently provision). Tests: - TestDefaultKinds_GraphAndDashboardSurface pinned to assert the six new CRDs stay registered. - TestHandleVersion_AlwaysJSON / EnvOverride / TrimsWhitespace cover the wire shape + truth resolution. - TestHandleBlueprintListCuratable_GiteaUnwiredReturnsEmptyList pins the 200 + empty envelope graceful path. Chart: bp-catalyst-platform 1.4.93 -> 1.4.94 (ClusterRole change needs a chart bump; Helm reconciles RBAC on every release). Refs qa-loop iter-2 cluster be-handler-errors-5xx-4xx. Co-authored-by: hatiyildiz <hati.yildiz@openova.io> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| bootstrap | ||
| chart | ||
| README.md | ||
OpenOva Catalyst (composite Blueprint)
The umbrella Blueprint bp-catalyst-platform — composes the Catalyst control plane.
Status: Deployed. Updated: 2026-04-28.
This product directory contains:
chart/— the Helm chart that deploys Catalyst-Zero on a Kubernetes cluster (and every franchised Sovereign).chart/templates/{ui,api}-deployment.yaml+ service + ingress — the catalyst-ui (React SPA wizard scaffold) and catalyst-api (Go bootstrap API) workloads.chart/templates/sme-services/— 11 manifests for the legacy SME backend services + the consolidatedconsole,admin,marketplaceUI workloads (sourced fromcore/{console,admin,marketplace}/).chart/templates/marketplace-api/— manifests for the Go marketplace-api backend (sourced fromcore/marketplace-api/).bootstrap/{ui,api}/— the source code for catalyst-ui and catalyst-api (deployed via the catalyst-build CI workflow).
For the unified architecture and the wizard's target shape, see docs/PROVISIONING-PLAN.md, docs/ARCHITECTURE.md, and docs/SOVEREIGN-PROVISIONING.md.
How Catalyst-Zero is deployed today
A Flux Kustomization on the Catalyst-Zero cluster (Contabo k3s) reconciles products/catalyst/chart/templates/ from this public repo. CI workflows (.github/workflows/{catalyst,console,admin,marketplace,marketplace-api}-build.yaml) build and push images on every push to main, then the deploy step pins the image SHA into the corresponding manifest in this directory and commits back. Flux picks up the commit and rolls the deployment.
Image registry: ghcr.io/openova-io/openova/{catalyst-ui,catalyst-api,console,admin,marketplace,marketplace-api}:<sha>.
Migration status (per docs/PROVISIONING-PLAN.md)
| Component | Source location | Image | Status |
|---|---|---|---|
| catalyst-ui | products/catalyst/bootstrap/ui/ |
ghcr.io/openova-io/openova/catalyst-ui |
✅ public repo |
| catalyst-api | products/catalyst/bootstrap/api/ |
ghcr.io/openova-io/openova/catalyst-api |
✅ public repo |
| console | core/console/ |
ghcr.io/openova-io/openova/console |
✅ public repo (Phase 1) |
| admin | core/admin/ |
ghcr.io/openova-io/openova/admin |
✅ public repo (Phase 1) |
| marketplace | core/marketplace/ |
ghcr.io/openova-io/openova/marketplace |
✅ public repo (Phase 1) |
| marketplace-api | core/marketplace-api/ |
ghcr.io/openova-io/openova/marketplace-api |
✅ public repo (Phase 1) |
| sme-{auth,billing,catalog,domain,gateway,notification,provisioning,tenant} | (still in openova-private/services/) | ghcr.io/openova-io/openova-private/sme-* |
⏳ follow-up phase — source not yet moved |