kubesphere-gateway-api

Install, manage, and troubleshoot Traefik-based Kubernetes Gateway API gateways on KubeSphere clusters.

17.0k|2.8k|Updated Apr 21, 2018
One-click install
npx skills add https://github.com/kubesphere/kubesphere --skill kubesphere-gateway-api
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: kubesphere-gateway-api
Source: https://github.com/kubesphere/kubesphere/tree/main/skills/kubesphere-gateway-api
Command: npx skills add https://github.com/kubesphere/kubesphere --skill kubesphere-gateway-api

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Managing external access gateways across multi-cluster KubeSphere environments requires coordinating InstallPlans, GatewayProxy CRDs, and Traefik deployments, which is error-prone when done manually.

Core Features & Use Cases

  • Extension Lifecycle Management: Install, upgrade, and uninstall the Gateway API extension across one or multiple KubeSphere clusters using generated InstallPlans.
  • GatewayProxy Inspection: List and inspect cluster-, workspace-, and namespace-scoped GatewayProxy resources, their associated GatewayClasses, Gateways, pods, and logs.
  • Guided Troubleshooting: Diagnose stuck Progressing states, Ready=False conditions, CrashLoopBackOff pods, and controller reconciliation failures with targeted kubectl commands.
  • Use Case: A platform engineer needs to expose services externally on a multi-cluster KubeSphere setup. They use this Skill to select a version, target the host and member clusters, apply the InstallPlan, poll installation status, and verify the Traefik-backed GatewayProxy is Ready.

Quick Start

Install the KubeSphere Gateway API extension on my host cluster and check the status of the resulting GatewayProxy.

Frequently Asked Questions about kubesphere-gateway-api

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I install the KubeSphere Gateway API extension on multiple clusters?

Detect available versions via extensionversions.kubesphere.io, list Ready clusters from clusters.cluster.kubesphere.io, then generate an InstallPlan with the generate-installplan script and apply it with kubectl. The InstallPlan's clusterScheduling placement list controls which clusters receive the extension.

What is the difference between kubesphere-gateway and kubesphere-gateway-api?

kubesphere-gateway uses ingress-nginx with a custom Gateway CRD (gateway.kubesphere.io/v2alpha2), while kubesphere-gateway-api uses Traefik with the standard Kubernetes Gateway API plus a GatewayProxy CRD (gatewayapi.kubesphere.io/v1alpha1). GatewayProxy auto-creates a GatewayClass for standard Gateway and HTTPRoute resources.

How do I check GatewayProxy status in KubeSphere?

List GatewayProxies with kubectl using the scope-type label, then describe the target resource in the kubesphere-controls-system namespace. Check status.conditions for Ready, Progressing, and NewVersionDetected, and inspect pods via the app.kubernetes.io/instance label.

Why is my GatewayProxy stuck in Progressing state?

A stuck Progressing state usually means the Helm chart was not found, rawValues are invalid, the Traefik image failed to pull, or the Helm SDK timed out. Describe the GatewayProxy and check the gateway-api-controller-manager logs in the extension-gateway-api namespace for errors.

Can I uninstall the Gateway API extension from only some clusters?

Yes, patch the InstallPlan's spec.clusterScheduling.placement.clusters list to remove target clusters instead of deleting the InstallPlan. Removed clusters disappear from status.clusterSchedulingStatuses once cleanup completes.

Does GatewayProxy monitoring require other KubeSphere extensions?

Yes, Prometheus metrics for GatewayProxy require the optional whizard-monitoring extension, and log search requires whizard-logging. Observability requests proxy through the whizard-telemetry-apiserver in the extension-whizard-telemetry namespace.