openova/products
e3mrah ddbe44918f
feat(continuum): K-Cont-1 — Continuum product skeleton (chart + binary + GHA workflow, no reconcile yet) (#1101) (#1151)
Slice K-Cont-1 of EPIC-6 (#1101) ships the Continuum product skeleton:

- core/controllers/continuum/{cmd,internal/{controller,events}}
  - cmd/main.go — controller-runtime Manager bootstrap; leader election;
    /healthz, /readyz, /metrics endpoints; env-only config per
    INVIOLABLE-PRINCIPLES #4
  - internal/controller — ContinuumReconciler with no-op Reconcile()
    (K-Cont-2 fills the body); SetupWithManager() watches Continuum CRs
    via unstructured.Unstructured per ADR-0001 §2.7 (no controller-gen)
  - internal/events — placeholder package documenting K-Cont-2's NATS
    audit-event-type list
  - Containerfile — multi-stage Go build → alpine:3.20 runtime, UID 65534
- products/continuum/chart/ — full Helm chart shape (default-OFF):
  - Chart.yaml + values.yaml (continuum.enabled: false; image.tag empty;
    fail-fast on empty tag at render time)
  - templates/{_helpers.tpl, deployment, service, serviceaccount, rbac,
    networkpolicy}.yaml
  - blueprint.yaml — OpenOva Blueprint manifest with configSchema +
    placementSchema (single-region: management cluster) + depends:
    bp-cnpg-pair + bp-powerdns
  - crds/README.md — pointer to the canonical Continuum CRD shipped in
    products/catalyst/chart/crds/continuum.yaml (B8 #1110); not duplicated
- products/continuum/DESIGN.md — chart-vs-binary split decision (Option A:
  binary in shared core/controllers/ module per CC1 #1135), K-Cont-2 fill
  list, K-Cont-3 lease witness API contract sketch
- .github/workflows/build-continuum-controller.yaml — event-driven CI
  (NO cron) with go vet + go test -race + helm template ON/OFF resource
  count gates + fail-fast verification + GHCR build & push (cosign
  keyless signed) + repository_dispatch for chart-bump fan-out

helm template verification:
- continuum.enabled=false → 0 resources (default OFF)
- continuum.enabled=true + image.tag=ci-test → 6 resources
  (ServiceAccount, ClusterRole, ClusterRoleBinding, Deployment, Service,
  NetworkPolicy)
- continuum.enabled=true + empty image.tag → render fails per #4a

go vet ./continuum/... → clean. go test -count=1 -race → all green.

Out of scope (per the K-Cont-1 brief):
- Reconcile body — K-Cont-2
- Lease witness implementations — K-Cont-3
- Cloudflare Worker source — K-Cont-4
- bp-cnpg-pair Blueprint — C-DB-1

Co-authored-by: hatiyildiz <hati.yildiz@openova.io>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 04:45:00 +04:00
..
axon feat(axon): make qwen3-coder thinking mode toggleable via request parameter 2026-04-26 09:20:33 +02:00
catalyst deploy: update catalyst images to 82ec096 2026-05-09 00:28:20 +00:00
continuum feat(continuum): K-Cont-1 — Continuum product skeleton (chart + binary + GHA workflow, no reconcile yet) (#1101) (#1151) 2026-05-09 04:45:00 +04:00
cortex docs(pass-52): bundled date-sweep + cross-component namespace clean; knative clean 2026-04-28 00:37:21 +02:00
fabric docs(seaweedfs+guacamole): replace MinIO with SeaweedFS as unified S3 encapsulation; add Guacamole to bp-relay 2026-04-28 10:23:46 +02:00
fingate docs(pass-52): bundled date-sweep + cross-component namespace clean; knative clean 2026-04-28 00:37:21 +02:00
relay docs(seaweedfs+guacamole): replace MinIO with SeaweedFS as unified S3 encapsulation; add Guacamole to bp-relay 2026-04-28 10:23:46 +02:00