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 |
|