config-partials-generator

star 8

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

loft-sh By loft-sh schedule Updated 2/27/2026

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

Config Partials Generator Skill

Overview

Generates MDX config reference partials from vCluster JSON schema. The CI automation (sync-config-schema.yaml in vcluster repo) skips alpha releases, so manual generation is needed during alpha/early development phases.

When to Use This Skill

Trigger this skill when:

  • User asks to "generate config partials", "update config reference", or "regenerate config docs"
  • Linear issue mentions config generation or automation being down
  • A new vCluster pre-release (alpha/beta) has schema changes not yet reflected in docs
  • The vcluster/_partials/config/ files are stale compared to the vcluster schema

Prerequisites

  • Local clone of vcluster repo (default: ~/loft/vcluster, adjust if different)
  • Go toolchain installed (for running the generator)

Source Files

File Purpose
<VCLUSTER_REPO>/chart/values.schema.json vCluster JSON schema (source of truth)
<VCLUSTER_REPO>/chart/values.yaml Default values
<VCLUSTER_REPO>/.github/workflows/sync-config-schema.yaml CI automation (reference for manual steps)
hack/vcluster/partials/main.go vCluster MDX partials generator
hack/platform/partials/main.go Platform MDX partials generator
configsrc/vcluster/ Per-version schema source directories
configsrc/platform/ Platform schema source directory

<VCLUSTER_REPO> defaults to ~/loft/vcluster. Confirm path before starting.

Automation Gap

The sync-config-schema.yaml workflow in the vcluster repo:

  • Fires on release events
  • Skips alpha and next releases (exits early)
  • For beta releases: targets configsrc/vcluster/main/ and vcluster/_partials/config/
  • For RC releases: targets versioned folder (e.g., configsrc/vcluster/0.33.0/)
  • For stable releases: triggers config sync in vcluster-config repo

Manual generation fills the gap for alpha releases.

Workflow: Generate vCluster Partials

Step 1: Update vcluster repo

cd <VCLUSTER_REPO>
git fetch --tags
git checkout main && git pull origin main

Verify the latest tag: git tag --sort=-v:refname | head -5

Step 2: Copy schema files to configsrc

From the vcluster-docs repo root:

cp <VCLUSTER_REPO>/chart/values.yaml configsrc/vcluster/main/default_values.yaml
cp <VCLUSTER_REPO>/chart/values.schema.json configsrc/vcluster/main/vcluster.schema.json

For versioned docs (RC releases), replace main with X.Y.0:

mkdir -p configsrc/vcluster/X.Y.0/
cp <VCLUSTER_REPO>/chart/values.yaml configsrc/vcluster/X.Y.0/default_values.yaml
cp <VCLUSTER_REPO>/chart/values.schema.json configsrc/vcluster/X.Y.0/vcluster.schema.json

Step 3: Vendor Go modules

From the vcluster-docs repo root:

go mod tidy && go mod vendor

Step 4: Run the generator

For main/next docs:

go run hack/vcluster/partials/main.go configsrc/vcluster/main vcluster/_partials/config

For versioned docs:

go run hack/vcluster/partials/main.go configsrc/vcluster/X.Y.0 vcluster_versioned_docs/version-X.Y.0/_partials/config

Step 5: Review output

git diff --stat vcluster/_partials/config/

Expected warnings (safe to ignore):

  • Skipping path "experimental/isolatedControlPlane" — deprecated path
  • Skipping path "experimental/genericSync" — deprecated path
  • Skipping path "controlPlane/distro/k3s" — removed in v0.33+
  • Skipping path "controlPlane/distro/k0s" — removed in v0.33+

Step 6: Platform configsrc

Update the platform schema reference:

cp <VCLUSTER_REPO>/chart/values.schema.json configsrc/platform/main/vcluster.schema.json

Platform partials generator: Before running, check whether it preserves manual content:

gh pr view 1663 --json state --jq '.state'

If MERGED, safe to run:

go run hack/platform/partials/main.go configsrc/platform/main/vcluster.schema.json

If OPEN, do NOT run — the generator overwrites manually-added sections in API reference docs.

Step 7: Commit and open PR

git checkout -b chore/update-config-partials-vX.Y.Z
git add configsrc/ vcluster/_partials/config/
git commit -m "chore: generate vcluster config partials for X.Y alpha"
git push -u origin HEAD
gh pr create --title "chore: generate vcluster config partials for X.Y alpha" --body "..."

Output Files

The generator produces/updates MDX files under vcluster/_partials/config/:

  • controlPlane.mdx — control plane top-level config
  • controlPlane/distro.mdx — distro configuration (k8s, k3s, k0s, eks)
  • controlPlane/backingStore.mdx — etcd/database backing store
  • controlPlane/backingStore/database/embedded.mdx
  • controlPlane/backingStore/database/external.mdx
  • And many more nested partials matching the schema structure

Never Do

  • Modify generated partials by hand — they get overwritten on next generation
  • Run the platform generator without checking its manual-content-preservation status
  • Modify files under vcluster_versioned_docs/ unless explicitly targeting a released version
Install via CLI
npx skills add https://github.com/loft-sh/vcluster-docs --skill config-partials-generator
Repository Details
star Stars 8
call_split Forks 57
navigation Branch main
article Path SKILL.md
More from Creator