com um clique
k8s-compat-matrix
// Manages the Kubernetes compatibility matrix data and React component. Use when adding/removing K8s versions, updating conformance test results, or documenting known issues.
// Manages the Kubernetes compatibility matrix data and React component. Use when adding/removing K8s versions, updating conformance test results, or documenting known issues.
| name | k8s-compat-matrix |
| description | Manages the Kubernetes compatibility matrix data and React component. Use when adding/removing K8s versions, updating conformance test results, or documenting known issues. |
Manages the Kubernetes compatibility matrix — a data-driven React component backed by static/api/k8s-compatibility.json. This skill handles adding/removing K8s versions, updating cell statuses based on conformance test results, and documenting known issues with footnotes.
Trigger this skill when:
| File | Purpose |
|---|---|
static/api/k8s-compatibility.json | Source of truth for matrix data |
src/components/KubernetesCompatibilityMatrix/index.jsx | React component |
src/components/KubernetesCompatibilityMatrix/styles.module.css | Component styling |
scripts/generate-compatibility-matrix.js | CLI: add/prune/validate |
.github/workflows/update-compatibility-matrix.yml | CI validation on PR |
tests/specs/k8s-compatibility-matrix.spec.js | Playwright/BrowserStack browser tests |
vcluster/manage/upgrade/supported_versions.mdx | Page that imports the component |
| Status | Emoji | When to use |
|---|---|---|
tested | checkmark | Conformance tests passed |
compatible | OK | Not tested, expected to work |
known-issue | warning | Works with documented limitations |
Run the CLI tool:
node scripts/generate-compatibility-matrix.js --add <version>
This adds a row and column. Diagonal cell = tested, all others = compatible.
Adjust cells based on conformance test results. Change cell values in static/api/k8s-compatibility.json:
"compatible" or change to "tested"{"status": "known-issue", "note": N} (see known issues below)Validate:
node scripts/generate-compatibility-matrix.js
Build to verify rendering:
npm run build
Commit, push, open PR.
node scripts/generate-compatibility-matrix.js --prune <version>
Removes row, column, and all references. Validate and commit.
When a conformance test reveals a partial failure (specific API broken, not full incompatibility):
In static/api/k8s-compatibility.json, find the notes array. Add a new entry:
{
"id": <next_integer>,
"text": "Description of the limitation. See [relevant docs](/docs/vcluster/path/to/page) for details."
}
Change affected cell(s) from a string to an object:
{"status": "known-issue", "note": <matching_id>}
Multiple cells can reference the same note ID.
Validate:
node scripts/generate-compatibility-matrix.js
static/api/k8s-compatibility.json
├── lastUpdated: "YYYY-MM-DD" (auto-set by CLI on --add/--prune)
├── kubernetesVersions: ["1.35", "1.34", ...] (descending order)
├── matrix: [
│ { host: "1.35", vcluster: {
│ "1.35": "tested",
│ "1.34": "compatible",
│ "1.31": {"status": "known-issue", "note": 1}
│ }}
│ ]
├── notes: [{ id: 1, text: "description with link" }]
└── statuses: {
tested: { emoji, label, description },
compatible: { emoji, label, description },
known-issue: { emoji, label, description }
}
Cell values: either a status string or {"status": "<name>", "note": <id>}.
The CLI validates:
kubernetesVersions count matches matrix row countstatuses objectstatuses has at least tested and compatibleCI runs this automatically on any PR that touches the JSON.
Playwright tests in tests/specs/k8s-compatibility-matrix.spec.js verify:
Run locally:
cd tests && npm install
TEST_BASE_URL=http://localhost:3000 npx playwright test specs/k8s-compatibility-matrix.spec.js --project=local
Note: tests target /docs/vcluster/next/ path. After a version is cut, update MATRIX_PATH in the test spec.
Validation fails: Run node scripts/generate-compatibility-matrix.js locally to see exact errors. Common causes: missing cell entry, invalid status name, dangling note reference.
Table shows stale data in dev server: Clear caches and restart:
npx docusaurus clear && npm run start
Known-issue footnotes don't render: Verify cell is an object {"status": "known-issue", "note": N} not just the string "known-issue". Check notes array has matching id.
Wrong matrix shape after --add: Versions sort numerically (1.9 < 1.10 < 1.35). Check kubernetesVersions ordering.
statuses object and the componenttested without evidence from conformance testsPlatform Documentation Release Skill
vCluster Documentation Release Skill
Write and edit vCluster Docusaurus documentation. Use this skill when working with .mdx or .md files in the vcluster-docs repository. Handles vale linting, partials discovery, link validation, versioned docs, and release processes.
Archive End-of-Life vCluster documentation versions. Use this skill when creating EOL documentation branches for vCluster or Platform versions. Handles branch creation, Docusaurus configuration, link fixing, Netlify deployment, and main branch updates.
Generate MDX config reference partials from vCluster JSON schema. Use when automation is skipped for alpha releases or when manually refreshing config docs.
Upgrades Docusaurus to latest version in vCluster documentation. Use when upgrading Docusaurus packages from older to newer versions. Handles package updates, compatibility fixes, testing, and rollback procedures.