Skip to content

docs(troubleshoot): cmpd/cmpv version compat declaration mismatch#239

Draft
weicao wants to merge 2 commits into
mainfrom
weicao/sediment-cmpd-cmpv-version-compat-mismatch
Draft

docs(troubleshoot): cmpd/cmpv version compat declaration mismatch#239
weicao wants to merge 2 commits into
mainfrom
weicao/sediment-cmpd-cmpv-version-compat-mismatch

Conversation

@weicao
Copy link
Copy Markdown
Contributor

@weicao weicao commented May 19, 2026

Summary

  • Adds docs/troubleshoot/cmpd-cmpv-version-compat-declaration-mismatch.md, an engine-neutral troubleshooting guide for the failure mode where a chart helm upgrade replaces the singleton ComponentVersion (cmpv) but the new compatibilityRules block stops listing older ComponentDefinition (cmpd) names that KubeBlocks retains for live clusters.
  • Symptom: Cluster stuck phase=Creating, ITS containers rendered with empty image: strings, kube-apiserver rejects the Pod template, no Pod is ever created, Console "view logs" spins to timeout. Easy to misclassify as a Console / API server / PVC scheduling problem.
  • Covers 30-second diagnosis, wrong first-reactions, runtime patch (N=1 scope) including the Component-generation poke required because KB controllers do not auto-rerender existing ITS on cmpv change, and the chart-side permanent fix via a previousCompDefNameSuffixes list with full name-tail semantics (so non-empty compDefinitionVersionSuffix and suffix-discontinuity transitions stay correct).
  • Sediment from Skyworth Oracle 19c PoC incident 2026-05-19 (cluster ora19-7d549fc5bc); engine-specific case appendix planned under docs/cases/oracle/cmpd-cmpv-19c-1.0.7-compat-gap.md.

Why this matters for other addon teams

The mechanism is engine-neutral — any KubeBlocks addon chart that bumps Chart.Version while leaving live clusters at older cmpds and renders cmpv with only the current chart-version compDef will hit the same symptom. Documenting it once in kubeblocks-addon-docs saves the next addon team a debug round.

Test plan

  • Doc is engine-neutral in the body; engine-specific commands/results stay in case appendix path
  • Cross-links to related guides (addon-chart-vs-kb-schema-skew-diagnosis-guide.md, addon-helm-reinstall-ssa-field-manager-conflict-guide.md)
  • Diagnosis steps reproducible from the symptom side (no engine assumption)
  • Runtime-patch section flags the Component-generation poke (otherwise patched cmpv won't re-render existing ITS)
  • Permanent-fix section uses the locked key shape previousCompDefNameSuffixes (full name tail, not bare Chart.Version) to match apecloud-addons PR #1331

This PR is draft pending Emma's W1-close batch review.

🤖 Generated with Claude Code

Ava added 2 commits May 19, 2026 15:08
… guide

Engine-neutral troubleshooting guide for the failure mode where a chart
upgrade replaces the singleton cmpv with compatibilityRules that no
longer list older cmpd names retained by KubeBlocks for live clusters.
Documents the symptom (Cluster stuck Creating, ITS containers with empty
image:, Pod rejected by kube-apiserver), 30-second diagnosis, wrong
first-reactions, runtime patch (N=1) including the Component-generation
poke needed for already-rendered ITS, and the chart-side permanent fix
via a previousCompDefNameSuffixes list with full name-tail semantics.

Sediment from Skyworth Oracle 19c PoC incident 2026-05-19; engine-specific
case appendix lives under docs/cases/oracle/.
Per Emma review on PR #239 — the engine-neutral guide body must not be
bound to one specific incident. Replace the case-appendix link line's
mention of Skyworth PoC, the date, and cluster ID ora19-7d549fc5bc with
a generic pointer to docs/cases/<engine>/. Oracle 19c-specific case
content (ITS literal, cmpv before/after, runtime patch sequence) moves
entirely under the case appendix file.

Engine name-shape examples like oracle-19c-1.0.7 are retained as
illustrative naming examples (marked example:) because they document
the chart convention, not a specific incident.
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