本文へ移動
cccskills
無料GitHub で公開

kubesphere-devops-overview

Use when working with KubeSphere DevOps extension, CI/CD pipelines, Jenkins integration, or pipeline troubleshooting

インストール方法を見る

含まれるファイル(1)

  • SKILL.md13.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

KubeSphere DevOps Overview

Overview

KubeSphere DevOps provides CI/CD capabilities through Jenkins integration, supporting both graphical pipeline editing and Jenkinsfile-based pipelines. It enables automated builds, testing, and deployments across multi-cluster environments with ArgoCD integration for GitOps continuous deployment.

When to Use

  • Setting up CI/CD pipelines in KubeSphere
  • Configuring Jenkins integration
  • Managing DevOps projects and pipelines
  • Troubleshooting pipeline execution issues
  • Integrating with GitHub, GitLab, or SVN repositories
  • Configuring SonarQube for code quality

Core Concepts

Resource Mapping

KubeSphere DevOps maps resources across three layers:

KubeSphere          Kubernetes                    Jenkins
─────────────────────────────────────────────────────────────
Workspace           Workspace CR                  (authorization)
└── DevOpsProject   ├── DevOpsProject CR          └── Folder
    (Namespace)     └── Namespace (with label)
    └── Pipeline    ├── Pipeline CR               └── WorkflowJob
        └── Run     ├── PipelineRun CR            └── Build #N

Key Concept: A "DevOps Project" in KubeSphere is fundamentally a Kubernetes namespace with the devops.kubesphere.io/managed=true label. The DevOpsProject CR exists as a wrapper resource, but when querying for accessible DevOps projects, you interact with namespaces, not the DevOpsProject CRs directly.

For tenants: Use the /kapis/devops.kubesphere.io/v1alpha3/workspaces/{workspace}/namespaces endpoint to list accessible DevOps projects (returns namespace resources). The /apis/devops.kubesphere.io/v1alpha3/devopsprojects endpoint requires cluster-scoped permissions and returns 403 for tenants.

DevOps Project Naming Convention

DevOps projects have two forms of names:

Name TypeExampleSourceUsage
Shortnamedevopstest.metadata.generateName in DevOpsProject CRDisplay/user-friendly name
Fullnamedevopstestc2nj7.metadata.name in DevOpsProject CR and NamespaceActual resource identifier

Important:

  • The fullname is the actual Kubernetes namespace name (e.g., devopstestc2nj7)
  • When creating a DevOps project with shortname devopstest, KubeSphere generates a unique fullname by appending random characters
  • All API operations use the fullname (namespace name), not the shortname
  • When a user refers to a project by shortname and multiple projects match, ask for confirmation before proceeding

Workspace Association

DevOpsProjects belong to a Workspace via label:

apiVersion: devops.kubesphere.io/v1alpha3
kind: DevOpsProject
metadata:
  name: my-project
  labels:
    kubesphere.io/workspace: demo   # Associates with Workspace 'demo'

To create and associate:

# 1. Create Workspace
kubectl apply -f - <<EOF
apiVersion: tenant.kubesphere.io/v1beta1
kind: Workspace
metadata:
  name: demo
EOF

# 2. Create DevOpsProject with label
kubectl apply -f - <<EOF
apiVersion: devops.kubesphere.io/v1alpha3
kind: DevOpsProject
metadata:
  name: my-project
  labels:
    kubesphere.io/workspace: demo
EOF

Project Components

┌──────────────────────────────────────────────────────────────┐
│                     DevOps Project                            │
│  (Namespace with devops.kubesphere.io/managed=true label)    │
└──────────────────────┬───────────────────────────────────────┘
                       │
        ┌──────────────┼──────────────┐
        │              │              │
┌───────▼──────┐ ┌─────▼─────┐ ┌──────▼──────┐
│  Pipelines   │ │Credentials│ │   Webhooks  │
│              │ │           │ │             │
│ - Graphical  │ │ - SSH     │ │ - GitHub    │
│ - Jenkinsfile│ │ - Basic   │ │ - GitLab    │
│ - Multi-branch│ │ - Token  │ │ - Generic   │
└──────────────┘ └───────────┘ └─────────────┘

Installation

Using InstallPlan (Recommended for Production)

Minimal Installation (Default Config) - RECOMMENDED:

apiVersion: kubesphere.io/v1alpha1
kind: InstallPlan
metadata:
  name: devops
  namespace: kubesphere-system
spec:
  extension:
    name: devops
    version: 1.2.4
  enabled: true
  upgradeStrategy: Manual   # Required for production
  # Note: spec.config is omitted to use extension default values

When to use minimal installation:

  • First-time installation to test default configuration
  • Standard deployments without special resource requirements
  • When you want to use the extension's tested defaults

Custom Configuration (Only When Needed):

apiVersion: kubesphere.io/v1alpha1
kind: InstallPlan
metadata:
  name: devops
  namespace: kubesphere-system
spec:
  extension:
    name: devops
    version: 1.2.4
  enabled: true
  upgradeStrategy: Manual   # Required for production
  # config: leave empty to use default values

Custom Configuration (Override Defaults):

apiVersion: kubesphere.io/v1alpha1
kind: InstallPlan
metadata:
  name: devops
  namespace: kubesphere-system
spec:
  extension:
    name: devops
    version: 1.2.4
  enabled: true
  upgradeStrategy: Manual   # Required for production
  config: |
    # Overrides values from DevOps chart's values.yaml
    agent:
      jenkins:
        Master:
          NodeSelector: {}
          resources:
            requests:
              cpu: "500m"
              memory: "4Gi"
            limits:
              cpu: "2000m"
              memory: "8Gi"
        Agent:
          Image: "jenkins/inbound-agent"
          Tag: "3309.v27b_9314fd1a_4-1-jdk21"
          Privileged: false

Important:

  • Always use upgradeStrategy: Manual for production
  • config is optional - omit or leave empty to use extension defaults
  • Config values override the extension's values.yaml settings
  • DevOps is a critical infrastructure component - plan upgrades carefully

Multi-Cluster Installation

To install DevOps agent on member clusters, add clusterScheduling:

apiVersion: kubesphere.io/v1alpha1
kind: InstallPlan
metadata:
  name: devops
  namespace: kubesphere-system
spec:
  extension:
    name: devops
    version: 1.2.4
  enabled: true
  upgradeStrategy: Manual
  config: |
    # Base config for all clusters
    agent:
      jenkins:
        Master:
          resources:
            requests:
              cpu: "500m"
              memory: "4Gi"
  clusterScheduling:
    placement:
      clusters:
        - host      # Install on host cluster
        - member1   # Install on member1
        - member2   # Install on member2
    # Optional: per-cluster overrides
    overrides:
      member1: |
        agent:
          jenkins:
            Master:
              resources:
                limits:
                  memory: "8Gi"   # Larger master for member1
      member2: |
        agent:
          jenkins:
            Agent:
              NodeSelector:
                zone: west

Key Points:

  • clusterScheduling.placement.clusters: List clusters where DevOps agent runs
  • clusterScheduling.overrides: Cluster-specific config overrides
  • Without clusterScheduling, DevOps only runs on the host cluster
  • Overrides merge with base config, override values take precedence

Using Helm (Alternative)

helm upgrade --install devops kse-extensions/devops \
  -n kubesphere-devops-system \
  --create-namespace

Post-Installation Verification

Verify the DevOps installation:

# Check DevOps pods
kubectl get pods -n kubesphere-devops-system

# Check InstallPlan status
kubectl get installplan devops -n kubesphere-system

# For multi-cluster: check agent status on each cluster
kubectl get installplan devops -n kubesphere-system -o jsonpath='{.status.clusterSchedulingStatuses}'

Architecture

ComponentPurposeNamespace
devops-jenkinsJenkins masterkubesphere-devops-system
devops-apiserverDevOps API servicekubesphere-devops-system
devops-controllerResource controllerskubesphere-devops-system
devops-argocd-*ArgoCD (GitOps)argocd
Jenkins AgentPipeline executorsDynamic (per pipeline)
-------------------------------
devops-jenkinsJenkins masterkubesphere-devops-system
devops-apiserverDevOps API servicekubesphere-devops-system
devops-controllerResource controllerskubesphere-devops-system
Jenkins AgentPipeline executorsDynamic (per pipeline)

Jenkins Integration

KubeSphere DevOps integrates with Jenkins for CI/CD execution. The secret devops-jenkins contains the admin token for direct Jenkins access:

# Get Jenkins admin token
TOKEN=$(kubectl -n kubesphere-devops-system get secret devops-jenkins -o jsonpath='{.data.jenkins-admin-token}' | base64 -d)

# Access Jenkins API
kubectl run curl-jenkins --rm -i --restart=Never --image=curlimages/curl \
  -- "http://admin:${TOKEN}@devops-jenkins.kubesphere-devops-system:80/api/json"

Jenkins NodePort:

kubectl get svc devops-jenkins -n kubesphere-devops-system
# Default: 30180

Access Jenkins Console:

  • URL: http://<node-ip>:30180
  • Username: admin
  • Password: Get from secret above

ArgoCD Integration

KubeSphere DevOps includes ArgoCD v2.11.7 for GitOps continuous deployment:

ArgoCD Components:

ComponentPurpose
application-controllerManages Application state
applicationset-controllerManages ApplicationSet resources
dex-serverSSO authentication
notifications-controllerEvent notifications
repo-serverRepository operations
argocd-serverAPI/UI server
redisCache layer

Access ArgoCD:

# Get ArgoCD server URL
kubectl get svc devops-agent-argocd-server -n argocd

# Get admin password
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d

Key Features:

  • Declarative GitOps deployment
  • Multi-source application support
  • Automated sync policies
  • SSO integration via Dex
  • Notification webhooks

Key Resources

Key Resources

ResourceAPI VersionPurpose
Pipelinedevops.kubesphere.io/v1alpha3CI/CD pipeline definition
DevOpsProjectdevops.kubesphere.io/v1alpha3DevOps project (namespace wrapper)
Credentialv1/SecretRepository and deployment credentials

Quick Commands

# List DevOps projects
kubectl get devopsprojects

# List pipelines in a project
kubectl get pipelines -n <devops-project-namespace>

# Get pipeline runs
kubectl get pipelineruns -n <devops-project-namespace>

# Check Jenkins status
kubectl -n kubesphere-devops-system get pods -l app=devops-jenkins

# View Jenkins logs
kubectl -n kubesphere-devops-system logs -l app=devops-jenkins

# Get Jenkins admin password
kubectl -n kubesphere-devops-system get secret devops-jenkins -o jsonpath='{.data.jenkins-admin-password}' | base64 -d

Pipeline Types

TypeDescriptionUse Case
GraphicalVisual pipeline editorSimple pipelines, no code
Jenkinsfile (SCM)Pipeline defined in repositoryVersion-controlled pipelines
Jenkinsfile (Inline)Pipeline defined in KubeSphereQuick testing
Multi-branchAuto-discovers branchesGitFlow, feature branches

Common Mistakes

MistakeFix
Pipeline fails with "No agent"Check Jenkins agent configuration
Cannot access Git repositoryVerify credentials and webhook setup
kubeconfig credentials failUse string type instead of kubeconfigContent (v1.2+)
Jenkins out of memoryIncrease Jenkins master resources
Pipeline hangsCheck agent pod status and resource limits

Version Compatibility

DevOpsJenkinsNotes
v1.2.x2.504.1 LTSkubernetes-cd plugin removed
v1.1.x2.346.3 LTSLegacy kubeconfigContent supported

References

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

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.

日本語の概要は準備中です。原文の説明を表示しています。

kubesphere/kubesphere1.7万2026年7月15日 更新

Operate FrontendIntegration resources and the frontend-forge extension. Use when Codex needs to create a FrontendIntegration from FrontendIntegration YAML, update or patch FI lifecycle state, inspect or troubleshoot FI build output, or create, enable, disable, uninstall, and inspect the frontend-forge extension through its InstallPlan and extension resources.

日本語の概要は準備中です。原文の説明を表示しています。

kubesphere/kubesphere1.7万2026年7月15日 更新

Generate canonical FrontendIntegration YAML from a simplified single-menu authoring model for frontend-forge.

日本語の概要は準備中です。原文の説明を表示しています。

kubesphere/kubesphere1.7万2026年7月15日 更新

kubeeye

無料

Use when deploying KubeEye for cluster inspection, creating InspectRule/InspectPlan resources, or retrieving inspection results. Covers InstallPlan-based deployment, OPA/PromQL/FileChange/Sysctl/Systemd/NodeInfo/FileFilter/ServiceConnect/CustomCommand rule types, and report retrieval. Always consult this skill when the user mentions KubeEye, cluster inspection, InspectRule, InspectPlan, or inspection reports.

日本語の概要は準備中です。原文の説明を表示しています。

kubesphere/kubesphere1.7万2026年7月15日 更新

KubeSphere cluster query Skill (read-only). Use when user requests to view cluster list, cluster status, cluster details, or cluster version info. Do not perform any write operations (create, delete, update). Use KubeSphere Console for management operations.

日本語の概要は準備中です。原文の説明を表示しています。

kubesphere/kubesphere1.7万2026年7月15日 更新

KubeSphere central controller Skill. Routes to specific Skills based on user requests: multi-cluster management (kubesphere-cluster-management), multi-tenant management (kubesphere-multi-tenant-management), extension management (kubesphere-extension-management). Also provides core architecture, API routing, and API utilities.

日本語の概要は準備中です。原文の説明を表示しています。

kubesphere/kubesphere1.7万2026年7月15日 更新

kubesphere のスキルをすべて見る

このスキルの問題を報告する