SkillAgentSearch skills...

kubesphere-extension-management

KubeSphere extension management Skill

Install / Use

npx skills add kubesphere/kubesphere --skill kubesphere-extension-management

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

90/100

Supported Platforms

Universal

Tags

Our assessment of kubesphere-extension-management

kubesphere-extension-management scores 90/100 on our quality scale, 1391st of 4,588 Development & Engineering skills we index (top 31%).

Its SKILL.md is 11 KB long, well organised into 42 sections with 10 code examples: a thorough specification that gives an agent plenty to work with.

With 17,059 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
29/30
Structure
20/20
Description
8/15
Adoption
18/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated about 3 months ago, so kubesphere-extension-management is actively maintained.
  • Our last check on 2026-10-06 found the source still online.
  • No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
  • Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.

AI review by kimi-k2.7-code on 2026-09-27. Automated pattern scan on 2026-09-27. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

kubesphere-extension-management compared with similar skills

All 4 of these similar skills score higher than kubesphere-extension-management; compare them before choosing.

SkillScoreStarsUpdatedFormat
kubesphere-extension-management (this skill)by kubesphere9017.1k3mo agoSKILL.md
ai-job-searchby MadsLorentzen10045.4ktodayCLAUDE.md
claude-howtoby luongnv8910041.8k9d agoCLAUDE.md
algorithmic-artby anthropics100177.9k16d agoSKILL.md
pptxby anthropics100177.9k16d agoSKILL.md

Frequently asked questions

How do I install kubesphere-extension-management?
Run npx skills add kubesphere/kubesphere --skill kubesphere-extension-management. The install tabs above show the steps for each supported agent.
Which AI agents does kubesphere-extension-management work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is kubesphere-extension-management safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is kubesphere-extension-management still maintained?
The repository was last updated about 3 months ago, so kubesphere-extension-management is actively maintained.

name: kubesphere-extension-management description: KubeSphere extension management Skill. Use when user requests to install, configure, upgrade, uninstall extensions, or query extension info/troubleshoot issues. Includes extension discovery, dependency management, install configuration, version management.

KubeSphere Extension Management


Architecture

┌──────────────────────┐        ┌─────────────────────────────┐        ┌──────────────────────┐        ┌──────────────────────┐
│  Extension Museum    │        │  Extension                  │        │  InstallPlan         │        │  Deployed Extension  │
│  (Local Chart Repo)  │───────▶│  - description              │───────▶│  - extension         │───────▶│                      │
│                      │ (sync) │  - status                   │        │  - config            │        │  Namespace: <target> │
└──────────────────────┘        │  ExtensionVersion           │        │  - clusterScheduling │        │  └── Pods, Services   │
                                │  - version                  │        └──────────────────────┘        └──────────────────────┘
                                │  - chartURL                 │              │ (reconcile)
                                │  - externalDependencies     │              |
                                │  - installationMode         │              |
                                └─────────────────────────────┘              ▼
                                                                    ┌──────────────────────┐
                                                                    │  Job                 │
                                                                    │  helm-upgrade-<name> │
                                                                    │  - helm install/     │
                                                                    │    upgrade/uninstall │
                                                                    └──────────┬───────────┘
                                                                               │
                                                                               ▼
                                                                    ┌──────────────────────┐
                                                                    │  Pod                 │
                                                                    │  (Helm execution)    │
                                                                    └──────────────────────┘

Core Concepts

Extension

Metadata and status for available/installed extensions.

| Field | Description | Example | |-------|-------------|---------| | metadata.name | Extension name | whizard-monitoring | | spec.versions[] | Available versions | [1.2.0, 1.2.1] | | status.state | Current state | Installed/Upgrading/Failed | | status.enabled | Enabled status | true/false | | status.installedVersion | Installed version | 1.2.1 |


ExtensionVersion

Version-specific details: Helm chart location, dependencies, requirements.

| Field | Description | Example | |-------|-------------|---------| | metadata.name | Version resource name | whizard-monitoring-1.2.1 | | spec.version | Version number | 1.2.1 | | spec.chartURL | Helm chart URL | https://extensions-museum.../whizard-monitoring-1.2.1.tgz | | spec.namespace | Target namespace | kubesphere-monitoring-system | | spec.installationMode | Install mode | Multicluster/HostOnly | | spec.ksVersion | Required KS version | >=4.2.0-0 | | spec.externalDependencies[] | Required extensions | [name: whizard-telemetry] |


InstallPlan

Trigger for install/upgrade/uninstall. Creates Helm Job to deploy components.

Spec: | Field | Type | Required | Description | |-------|------|----------|-------------| | metadata.name | string | ✅ | Must match spec.extension.name | | spec.extension.name | string | ✅ | Extension name | | spec.extension.version | string | ✅ | Exact version to install | | spec.enabled | bool | ✅ | Enable extension | | spec.upgradeStrategy | string | ✅ | Use Manual for production | | spec.config | string | ❌ | Custom YAML config | | spec.clusterScheduling | object | ❌ | Multi-cluster config (Multicluster mode only) |

Status: | Field | Description | |-------|-------------| | status.state | Installed/Installing/Upgrading/Failed | | status.jobName | Helm upgrade Job name | | status.targetNamespace | Target namespace | | status.conditions[] | Status conditions with messages |

⚠️ CRITICAL:

  • metadata.name = spec.extension.name
  • Use EXACT version from user request
  • Set enabled: true and upgradeStrategy: Manual

Step-by-Step Workflow

1. List and Inspect Extensions

# List all extensions
kubectl get extensions

# List by category
for c in $(kubectl get categories.kubesphere.io -o jsonpath='{.items[*].metadata.name}'); do
 exts=$(kubectl get extensions.kubesphere.io -l kubesphere.io/category="$c" -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}')
 [ -n "$exts" ] && echo -e "$c:\n$exts"
done

# List extension available versions
kubectl get extensionversions.kubesphere.io -l kubesphere.io/extension-ref=<extension-name>

# View extension details
kubectl describe extension <extension-name>
kubectl describe extensionversion.kubesphere.io <extension-name>-<version>

2. Install Extension

⚠️ CRITICAL:

  • InstallPlan metadata.name MUST match spec.extension.name
  • Use EXACT version from user request (not recommendedVersion or latest)

2.1 Verify Version Exists

# Verify the extension and version exist before creating InstallPlan
kubectl get extension <extension-name>
kubectl get extensionversion <extension-name>-<version>

# Get version details (check installationMode, namespace, dependencies, etc.)
kubectl describe extension <extension-name>
kubectl describe extensionversion <extension-name>-<version>

2.2 Create InstallPlan

Based on the extension details above:

  • config: Omit if user didn't request custom configuration
  • clusterScheduling: Only include if installationMode=Multicluster, specify clusters in placement.clusters
apiVersion: kubesphere.io/v1alpha1
kind: InstallPlan
metadata:
  name: <extension-name>
spec:
  # clusterScheduling:    # Only for Multicluster extensions.
  #   placement:
  #     clusters:
  #     - <cluster-name>
  #   overrides:
  #     host: |-
  #       # Extension agent configuration: custom settings for the extension agent in the current cluster, with higher priority than the global extension configuration.
  # 
  #       custom:
  #         key: override-value
  # config: |  ## Omit if user didn't request custom config
  #   # Custom configuration for the extension, serving as a global extension configuration that can override default settings.
  # 
  #   custom:
  #     key: override-value
  enabled: true
  extension:
    name: <extension-name>     # CRITICAL: MUST match metadata.name
    version: <version>         # CRITICAL: Use EXACT version requested
  upgradeStrategy: Manual
kubectl apply -f installplan-<extension-name>.yaml

3. Track & Verify Installation

# Watch status
kubectl get installplan <extension-name> -w

# Get details
kubectl describe installplan <extension-name>

# Verify extension status
kubectl describe extension <extension-name>

# Check deployed resources
NAMESPACE=$(kubectl get installplan <extension-name> -o jsonpath='{.status.targetNamespace}')
kubectl get pods,svc -n $NAMESPACE

4. Update & Upgrade Extension

⚠️ CRITICAL: InstallPlan metadata.name MUST match spec.extension.name

  • Update: Modify spec.config or spec.clusterScheduling (version unchanged)
  • Upgrade: Modify spec.extension.version to new version
# Get current InstallPlan as template
kubectl get installplan <extension-name> -o yaml > installplan-<extension-name>.yaml

# Edit and apply:
# - For Update: modify spec.config or spec.clusterScheduling
# - For Upgrade: change spec.extension.version to target version
kubectl apply -f installplan-<extension-name>.yaml
kubectl get installplan <extension-name> -w

5. Uninstall Extension

kubectl delete installplan <extension-name>

Best Practices

  • Use default config (omit spec.config) unless custom values are needed
  • Always use upgradeStrategy: Manual for production
  • Use exact version (not recommendedVersion or latest)
  • Test in staging before production
  • Review changelogs before upgrades
  • Document custom configurations

Troubleshooting

Issue 1: InstallPlan Failed (Job Execution Failed)

Symptoms: InstallPlan stuck in "Installing"/"Upgrading", Job pod shows Error/Failed

Diagnosis:

# Step 1: Check InstallPlan status
kubectl describe installplan <extension-name>
# Check status.state and status.conditions

# Step 2: Check Job pod logs
NAMESPACE=$(kubectl get installplan <extension-name> -o jsonpath='{.status.targetNamespace}')
JOB_NAME=$(kubectl get installplan <extension-name> -o jsonpath='{.status.jobName}')
kubectl logs -n $NAMESPACE -l job-name=$JOB_NAME --tail=100

# Step 3: For Multicluster - check cluster scheduling status
kubectl get installplan <extension-name> -o jsonpath='{.status.clusterSchedulingStatuses}' | jq .
# Check each cluster's state and conditions, then get job name and logs

Solutions:

  • Verify extension version exists
  • Check dependencies are installed
  • Check config syntax

Issue 2: InstallPlan Status Not Updated (Job Completed)

Symptoms: Job pod completed successfully, but InstallPlan stays in "Installing"/"Upgrading"

Diagnosis:

# Check if job completed
NAMESPACE=$(kubectl get installplan <extension-name> -o jsonpath='{.status.targetNamespace}')
JOB_NAME=$(kubectl get installplan <extension-name> -o jsonpath='{.status.jobName}')
kubectl get pods -n $NAMESPACE -l job-name=$JOB_NAME

# Check job completion time vs current time
kubectl get job $JOB_NAME -n $NAMESPACE -o jsonpath='{.status.completionTime}'

Cause: Clock skew between nodes (NTP not synchronized)

Solution: Check and synchronize NTP across all cluster nodes

Quick Reference

| Action | Command | |--------|---------| | List all extensions | kubectl get extensions | | List extension versions | kubectl get extensionversions.kubesphere.io -l kubesphere.io/extension-ref=<name> | | View extension details | kubectl describe extension <name> | | View version details | kubectl describe extensionversion <name>-<version> | | Install extension | kubectl apply -f installplan-<name>.yaml | | Track installation | kubectl get installplan <name> -w | | Upgrade extension | Modify version in InstallPlan, then kubectl apply | | Uninstall extension | kubectl delete installplan <name> |

References

Related Skills

  • kubesphere-core - Core platform architecture
  • kubesphere-cluster-management - Cluster operations

Related Skills

View on GitHub
GitHub Stars17.1k
CategoryDevelopment
Updated2mo ago
Forks2.8k

Languages

Go

Trust signals

88/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 medium