# Frontend Extension Operations

Creates, publishes, and debugs KubeSphere frontend extension packages and their jobs.

- Repository: https://github.com/kubesphere/kubesphere (17074 stars)
- Category: DevOps
- License: see repository
- Last updated: 2026-07-15
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kubesphere/kubesphere --skill frontend-forge-fe-operations -g -a claude-code -y`
Codex: `npx skills add kubesphere/kubesphere --skill frontend-forge-fe-operations -g -a codex -y`
Cursor: `npx skills add kubesphere/kubesphere --skill frontend-forge-fe-operations -g -a cursor -y`
Gemini CLI: `npx skills add kubesphere/kubesphere --skill frontend-forge-fe-operations -g -a gemini-cli -y`

## Description

Operate FrontendExtension (FE) resources in frontend-forge: create, update, rebuild, inspect package artifacts, download packages, publish, unpublish, delete, and debug package/publish controller behavior. Use this skill whenever the user mentions FE operations, FrontendExtension lifecycle, extension package/download/publish/unpublish, artifact ConfigMaps, package Jobs, publisher Jobs, publish target ConfigMaps or Secrets, rebuild-token, package-state/publish-state labels, or troubleshooting FE status in a Kubernetes cluster.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Frontend Forge FE Operations

## When to use

Use this skill for operational work around `FrontendExtension` resources:

- Create or update an FE manifest
- Trigger or inspect package generation
- Force a rebuild with the rebuild-token annotation
- Download the generated package artifact
- Publish, unpublish, or delete an extension
- Inspect FE status, conditions, labels, Jobs, artifact ConfigMaps, and publish targets
- Debug FE package phases such as `Packaging`, `Ready`, and `Failed`, plus publish/unpublish phases such as `Pending`, `Running`, `Succeeded`, and `Failed`

If the task is about `FrontendIntegration` runtime `JSBundle` creation, use the FI operations skill instead. FE package/publish does not create a runtime `JSBundle` in the current cluster.

## Quick Entry

- Create or update FE -> read `references/lifecycle.md`
- Rebuild package -> read `references/lifecycle.md`
- Publish, unpublish, delete-with-unpublish, list through API, or download -> read `references/api.md`
- Inspect package Job, artifact ConfigMap, publish Job, labels, or conditions -> read `references/inspection.md`
- Debug stuck or failed state -> read `references/inspection.md`, then check controller logs

## Preconditions

- The current Kubernetes context is pointed at the target cluster.
- The FE CRD exists: `frontendextensions.frontend-forge.kubesphere.io`.
- The FE controller is installed, usually as the `extension-controller` component.
- The FE API is installed when using download, publish, unpublish, or delete-with-unpublish HTTP operations.
- The build service configured by `BUILD_SERVICE_BASE_URL` is reachable from package Jobs.
- Publish target data exists when publishing, normally `ConfigMap/ksbuilder-publish-config` in `extension-frontend-forge`.

## Source of truth

Prefer live cluster state for operations and repo docs for expected behavior:

The rest: https://github.com/kubesphere/kubesphere/blob/HEAD/skills/frontend-forge-fe-operations/SKILL.md
