Skip to content

docs(kb-schema-preflight): three-layer KB version preflight guide v1#70

Open
weicao wants to merge 1 commit intomainfrom
james/kb-schema-version-preflight-v1
Open

docs(kb-schema-preflight): three-layer KB version preflight guide v1#70
weicao wants to merge 1 commit intomainfrom
james/kb-schema-version-preflight-v1

Conversation

@weicao
Copy link
Copy Markdown
Contributor

@weicao weicao commented May 5, 2026

Summary

  • Adds addon-kb-schema-version-preflight-guide.md (154 lines) — proactive 5-min preflight counterpart to existing addon-chart-vs-kb-schema-skew-diagnosis-guide.md (reactive 30-min diagnosis)
  • Three-layer doctrine for KB version skew: image / chart / live CRD (each can drift independently)
  • Three typical skew patterns: Accidental / Engineered / Unverified-cross-line
  • 4-step preflight: image digest → chart render → CRD storage version keys → server-side dry-run
  • Cross-engine 4-pillar 取证 table for "we're on the same KB version" claims

Source evidence

2026-05-05 Oracle BLOCKER #2 final framing:

  • Cross-vcluster digest matrix on idc4 proved Oracle pre-upgrade KB:1.0.2 == OB Noah KB:1.0.2 (digest sha256:89f0b726...) — image is NOT the discriminator
  • helm pull kubeblocks/kubeblocks --version 1.0.2 --untar shows chart 1.0.2 carries NO CRDs (no crds/ dir, no CRD in templates)
  • Conclusion: live CRD is owned by a separate ApplySet bundle (kubectl apply, not chart) — three-layer model validated

Evidence file: phase2-12c-smoke-20260505-113300/01-BLOCKER-2-VERIFICATION-FINAL.txt (Oracle workspace)

Joint-authored v2 extension incoming

SQL Server TL plans v2 extension as follow-up commits in this PR (will NOT open separate PR):

  • §3.5 — cross-engine archetype "chart spec doesn't declare a runtime requirement"
  • §6 — runtime contract drift evidence pack (per-layer 6-section schema: Symptom / Trigger / Root cause / Reproduction / Fix path / Cross-engine impact + Owner)
    • §6.1 Layer 1 schema dimension — KB 1.0.2 isExclusive PoC reject (Tom + Jerry)
    • §6.2 Layer 5 runtime env contract — Oracle W7 ActionSet env drift commit 345bfef9 (James)
    • §6.3 Layer 2 substrate bootstrap — vcluster CoreDNS docker.io ImagePullBackOff on idc4 (James + Helen co-author)
  • §7 — archetype principle + ORA-12154 "double root cause same surface symptom" hook
  • §8 — cross-layer decision tree (mermaid)

Existing §6/§7/§8 in v1 (保护边界 / 与其他文档关系 / 案例附录) renumber → §9/§10/§11. Case appendix §11 will gain Oracle isExclusive case (existing placeholder filled by Tom) + Oracle W7 ActionSet env drift case + Oracle CoreDNS Layer 2 case.

Curator placement check is requested before drafting v2. Topic boundary remains "addon × KB version-skew + runtime-contract preflight" (no overflow into chaos / dataprotection topical).

Test plan

  • markdown lint clean (no broken links, headings sequential)
  • cross-ref to addon-chart-vs-kb-schema-skew-diagnosis-guide.md verified (file exists in docs/)
  • cross-ref to addon-componentdefinition-upgrade-guide.md verified
  • cross-ref to addon-idc-vcluster-migration-checklist-guide.md verified
  • case appendix Oracle isExclusive placeholder created (Tom v2 will fill)
  • Tom v2 extension commits (§3.5 / §6 / §7 / §8) joint-author push to this branch
  • Helen co-author §6.3 Layer 2 inline (idc bastion vcluster substrate view)
  • Allen final placement / curator pass before merge

Three-layer doctrine for KB version skew (image / chart / live CRD), three
typical skew patterns (accidental / engineered / unverified cross-line), and
4-step preflight flow (image digest -> chart render -> CRD storage version
keys -> server-side dry-run).

Source: 2026-05-05 Oracle BLOCKER #2 final framing - cross-vcluster digest
matrix + helm pull chart 1.0.2 inspection proved chart=image=digest 一致 but
live CRD differs (separate ApplySet bundle), validating the three-layer model.

Companion to existing addon-chart-vs-kb-schema-skew-diagnosis-guide.md
(reactive 30-min diagnosis); this doc is the proactive 5-min preflight
counterpart.

Tom (SQL Server TL) plans v2 extension (§3.5 / §6 / §7 / §8) folding W7
ActionSet env contract drift + KB 1.0.2 isExclusive PoC + cross-engine
archetype "chart spec doesn't declare a runtime requirement". v2 will land
in this PR as follow-up commits (joint-authored).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
weicao pushed a commit that referenced this pull request May 5, 2026
7-section preflight for KB addon smoke runs covering: (1) BackupRepo precondition,
(2) StorageClass per-vcluster setup, (3) ImagePullPolicy / sideload audit,
(4) autopatcher daemon pattern (alpine compatibility), (5) kubeconfig isolation
SOP, (6) test-runner artifact directory ready check, (7) vcluster CoreDNS image
preflight — newly added based on 2026-05-05 idc4 incident.

Section 7 doctrine: if dataprotection / cross-pod-network test cases fail at
first run but cluster Running and smoke T01-T07 PASS, check coredns BEFORE
addon code. Symptom is pod-level DNS resolution failure but cluster surface
looks healthy because exec-based smoke tests do not need DNS.

Case study appendix: Oracle 19c T08 ORA-12154 to CoreDNS root cause
investigation, image swap fix on idc4 (docker.io/coredns/coredns:1.10.1
ImagePullBackOff swapped to registry.aliyuncs.com/google_containers/coredns:1.10.1
Running 1/1 in 9s). Backup o19-i4-8854-rman19c-w7verify2 Status=Completed,
553MB, 2m32s after fix.

One-shot preflight script updated: 7-item check covering all sections + coredns
Running validation as item 7.

This guide is the proactive "before-smoke" counterpart to first-blocker / smoke
result classification doctrine (PR #69). Cross-refs to:
- addon-vanilla-vcluster-bootstrap-guide.md (autopatcher + dual-image setup)
- addon-idc-vcluster-migration-checklist-guide.md (Alice IDC checklist owner)
- addon-kb-schema-version-preflight-guide.md (schema-side preflight, PR #70)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@weicao
Copy link
Copy Markdown
Contributor Author

weicao commented May 5, 2026

Curator sweep note (2026-05-06): I scrubbed the PR body hygiene markers through the GitHub API because gh pr edit hit the Projects classic deprecation path.

Remaining merge blocker: commit 6eb2b72 still has a tool-attribution co-author trailer in the commit body. Before this PR is ready to merge, please amend or squash with a clean commit body.

I am not merging this PR in this sweep because the PR body still lists the v2 extension and co-author tasks as pending.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant