feat(ql3): compose cluster copilot diagnosis

This commit is contained in:
whyour
2026-08-15 21:59:59 +08:00
parent c3bd6d40bb
commit 5fc70010f2
27 changed files with 2378 additions and 24 deletions
@@ -0,0 +1,25 @@
# Optional Cluster Copilot component
Compose this component only with `../cluster-ai`. It enables the caller-driven
failure-diagnosis capability inside the existing Cluster AI process; it does
not add an HTTP route, queue, watcher, timer, PostgreSQL pool, provider, or
Model Gateway.
Before production use:
1. Replace the example provider, model and egress policy revision in
`copilot-configmap.yaml`. Keep `config.json` canonical, one-line JSON with
one trailing newline.
2. Provision these three Secrets out of band, each containing a canonical
`keyring.json`: `ql3-cluster-ai-copilot-invocation-keyring`,
`ql3-cluster-ai-copilot-result-keyring`, and
`ql3-cluster-ai-copilot-output-keyring`.
3. Keep old decryptable keys during rotation. Invocation, Tool result and
Copilot output keys are independent authorities and must never reuse
material.
4. Keep Worker ingress and its bounded S3 log-range reader enabled. Startup
fails closed if the log capability, canonical config, any keyring, or the
shared successful-completion sink is unavailable.
All projections are read-only mode `0440`. The component adds no Kubernetes
API permission and does not change the default AI-free deployment.