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.

7 stars

Best use case

k8s-compat-matrix is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Manages the Kubernetes compatibility matrix data and React component. Use when adding/removing K8s versions, updating conformance test results, or documenting known issues.

Teams using k8s-compat-matrix should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/k8s-compat-matrix/SKILL.md --create-dirs "https://raw.githubusercontent.com/loft-sh/vcluster-docs/main/.claude/skills/k8s-compat-matrix/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/k8s-compat-matrix/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How k8s-compat-matrix Compares

Feature / Agentk8s-compat-matrixStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Manages the Kubernetes compatibility matrix data and React component. Use when adding/removing K8s versions, updating conformance test results, or documenting known issues.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Kubernetes Compatibility Matrix Skill

## Overview

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.

## When to Use This Skill

Trigger this skill when:
- User says "add K8s version", "new kubernetes version", "update compatibility matrix"
- User says "prune", "remove EOL version" for the K8s matrix
- User provides conformance test results to update cell statuses
- User says "mark known issue" or provides a partial failure to document
- Linear issue references updating the K8s compatibility matrix

## Files

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

## Statuses

| Status | Emoji | When to use |
|--------|-------|-------------|
| `tested` | checkmark | Conformance tests passed |
| `compatible` | OK | Not tested, expected to work |
| `known-issue` | warning | Works with documented limitations |

## Workflow: Add New Kubernetes Version

1. Run the CLI tool:
   ```bash
   node scripts/generate-compatibility-matrix.js --add <version>
   ```
   This adds a row and column. Diagonal cell = `tested`, all others = `compatible`.

2. Adjust cells based on conformance test results. Change cell values in `static/api/k8s-compatibility.json`:
   - Pass → leave as `"compatible"` or change to `"tested"`
   - Fail → change to `{"status": "known-issue", "note": N}` (see known issues below)

3. Validate:
   ```bash
   node scripts/generate-compatibility-matrix.js
   ```

4. Build to verify rendering:
   ```bash
   npm run build
   ```

5. Commit, push, open PR.

## Workflow: Prune EOL Version

```bash
node scripts/generate-compatibility-matrix.js --prune <version>
```

Removes row, column, and all references. Validate and commit.

## Workflow: Document Known Issue

When a conformance test reveals a partial failure (specific API broken, not full incompatibility):

1. In `static/api/k8s-compatibility.json`, find the `notes` array. Add a new entry:
   ```json
   {
     "id": <next_integer>,
     "text": "Description of the limitation. See [relevant docs](/docs/vcluster/path/to/page) for details."
   }
   ```

2. Change affected cell(s) from a string to an object:
   ```json
   {"status": "known-issue", "note": <matching_id>}
   ```

3. Multiple cells can reference the same note ID.

4. Validate:
   ```bash
   node scripts/generate-compatibility-matrix.js
   ```

## JSON Schema

```
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>}`.

## Validation

The CLI validates:
- `kubernetesVersions` count matches `matrix` row count
- Every row has entries for all versions
- All status strings exist in `statuses` object
- All note references point to existing note IDs
- `statuses` has at least `tested` and `compatible`

CI runs this automatically on any PR that touches the JSON.

## Testing

Playwright tests in `tests/specs/k8s-compatibility-matrix.spec.js` verify:
- Table renders with correct structure (header rows, data rows, version labels)
- Legend displays all three statuses
- Known-issue cells have superscript footnote markers
- Footnote text appears below the table
- Table accessible on mobile viewport

Run locally:
```bash
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.

## Troubleshooting

**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:
```bash
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.

## Do Not

- Edit the component JSX unless the rendering logic needs to change
- Add statuses without updating both the `statuses` object and the component
- Mark cells as `tested` without evidence from conformance tests
- Modify versioned docs copies of the matrix page (they use the old HTML table)

Related Skills

vcluster-docs-writer

7
from loft-sh/vcluster-docs

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.

vcluster-docs-releaser

7
from loft-sh/vcluster-docs

vCluster Documentation Release Skill

vcluster-docs-archiver

7
from loft-sh/vcluster-docs

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.

platform-docs-releaser

7
from loft-sh/vcluster-docs

Platform Documentation Release Skill

docusaurus-upgrader

7
from loft-sh/vcluster-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.

config-partials-generator

7
from loft-sh/vcluster-docs

Generate MDX config reference partials from vCluster JSON schema. Use when automation is skipped for alpha releases or when manually refreshing config docs.

robius-matrix-integration

31392
from sickn33/antigravity-awesome-skills

CRITICAL: Use for Matrix SDK integration with Makepad. Triggers on: Matrix SDK, sliding sync, MatrixRequest, timeline, matrix-sdk, matrix client, robrix, matrix room, Matrix 集成, 聊天客户端

react18-dep-compatibility

28865
from github/awesome-copilot

React 18.3.1 and React 19 dependency compatibility matrix.

competitive-matrix

9958
from alirezarezvani/claude-skills

Build competitive analysis matrices with scoring and gap analysis. Usage: /competitive-matrix <analyze> [options]

building-soc-escalation-matrix

4032
from mukul975/Anthropic-Cybersecurity-Skills

Build a structured SOC escalation matrix defining severity tiers, response SLAs, escalation paths, and notification procedures for security incidents.

xhs-matrix-api

3891
from openclaw/skills

小红书矩阵系统 API 调用工具,集成红薯矩阵平台(hongshujuzhen.com)。支持:搜索小红书笔记、获取笔记详情、发布图文笔记、查询账号列表、查询 API 使用统计、批量管理小红书账号。触发词:小红书、xhs、笔记搜索、发布小红书、API 调用、红薯矩阵。

hk-cn-content-matrix

3891
from openclaw/skills

香港/中文内容运营指南 - 小红书、抖音、微信公众号内容创作模板和策略。香港本地化,生活/理财/旅行/美妆赛道。