{"id":"8f859983-46e6-4dd8-8cc8-84898df6ba81","shortId":"bsBH8S","kind":"skill","title":"kubesphere-devops-jenkins","tagline":"Use when configuring Jenkins in KubeSphere DevOps, including agent customization, LDAP/OIDC integration, build artifact retrieval, or troubleshooting Jenkins issues","description":"# KubeSphere DevOps Jenkins Configuration\n\n## Overview\n\nKubeSphere DevOps embeds Jenkins as the CI engine. Jenkins is configured via Configuration as Code (CasC) and provides the underlying pipeline execution environment. Understanding Jenkins configuration is essential for customizing agents, authentication, and resource management.\n\n## When to Use\n\n- Accessing Jenkins console directly\n- Configuring LDAP or OIDC authentication\n- Customizing Jenkins agent images\n- Configuring GitLab or other SCM servers\n- Troubleshooting Jenkins startup issues\n- Updating Jenkins after DevOps upgrade\n- Triggering builds via API\n- Downloading build artifacts\n- Viewing build logs and status\n\n## Accessing Jenkins Console\n\n### Get Admin Credentials\n\n```bash\n# Get Jenkins admin user and password\nkubectl -n kubesphere-devops-system get secret devops-jenkins -o yaml\n\n# Decode values\necho \"<jenkins-admin-password-base64>\" | base64 -d\necho \"<jenkins-admin-user-base64>\" | base64 -d\n```\n\n### Get Jenkins NodePort\n\n```bash\nkubectl -n kubesphere-devops-system get svc devops-jenkins\n# Default NodePort: 30180\n```\n\nAccess via: `http://<master-node-ip>:30180`\n\n## Configuration As Code (CasC)\n\nJenkins configuration is managed through the `jenkins-casc-config` ConfigMap:\n\n```bash\n# View current CasC\nkubectl -n kubesphere-devops-system get cm jenkins-casc-config -o yaml\n```\n\n### Key Configuration Sections\n\n```yaml\nagent:\n  jenkins:\n    Master:\n      NodeSelector: {}\n      Tolerations: []\n    Agent:\n      Image: \"jenkins/inbound-agent\"\n      Tag: \"3309.v27b_9314fd1a_4-1-jdk21\"\n      Privileged: false\n      NodeSelector: {}\n```\n\n## Authentication Configuration\n\n### LDAP Integration\n\n```yaml\nagent:\n  jenkins:\n    exactSecurityRealm:\n      ldap:\n        configurations:\n        - displayNameAttributeName: \"uid\"\n          mailAddressAttributeName: \"mail\"\n          inhibitInferRootDN: false\n          managerDN: \"cn=admin,dc=kubesphere,dc=io\"\n          managerPasswordSecret: \"admin\"\n          rootDN: \"dc=kubesphere,dc=io\"\n          userSearchBase: \"ou=Users\"\n          userSearch: \"(&(objectClass=inetOrgPerson)(|(uid={0})(mail={0})))\"\n          groupSearchBase: \"ou=Groups\"\n          groupSearchFilter: \"(&(objectClass=posixGroup)(cn={0}))\"\n          server: \"ldap://openldap.kubesphere-system.svc:389\"\n        disableMailAddressResolver: false\n        disableRolePrefixing: true\n```\n\n### OpenID Connect (OIDC) Integration\n\n```yaml\nagent:\n  jenkins:\n    exactSecurityRealm:\n      oic:\n        clientId: \"jenkins\"\n        clientSecret: \"jenkins\"\n        tokenServerUrl: \"http://192.168.1.20:30880/oauth/token\"\n        authorizationServerUrl: \"http://192.168.1.20:30880/oauth/authorize\"\n        userInfoServerUrl: \"http://192.168.1.20:30880/oauth/userinfo\"\n        endSessionEndpoint: \"http://192.168.1.20:30880/oauth/logout\"\n        logoutFromOpenidProvider: true\n        scopes: openid profile email\n        fullNameFieldName: url\n        userNameField: preferred_username\n    redirectURIs:\n    - http://192.168.1.20:30180/securityRealm/finishLogin\n```\n\n## GitLab Integration\n\nConfigure GitLab servers for pipeline integration:\n\n```yaml\nagent:\n  jenkins:\n    unclassified:\n      gitLabServers:\n        - name: \"gitlab-a\"\n          serverUrl: \"https://gitlab.a.com\"\n        - name: \"gitlab-b\"\n          serverUrl: \"https://gitlab.b.com\"\n```\n\nAfter updating ConfigMap, create credentials in Jenkins Console:\n1. Manage Jenkins > System\n2. Find GitLab section\n3. Add credentials (GitLab Personal Access Token)\n4. Test connection\n5. Save\n\n## Agent Customization\n\n### Update JNLP Image (v1.2.x)\n\n```bash\n# Get current config\nkubectl -n kubesphere-devops-system get cm jenkins-casc-config -o yaml > /tmp/casc-old.yaml\n\n# Update image version\nsed 's/inbound-agent:4.10-2/inbound-agent:3309.v27b_9314fd1a_4-1-jdk21/g' /tmp/casc-old.yaml > /tmp/casc.yaml\n\n# Apply new config\nkubectl apply -f /tmp/casc.yaml\n\n# Restart Jenkins\nkubectl -n kubesphere-devops-system rollout restart deployment devops-jenkins\n```\n\n### Enable Podman for Non-Docker Environments\n\nFor hosts running containerd instead of Docker:\n\n```yaml\nagent:\n  jenkins:\n    Agent:\n      Privileged: true  # Required for podman\n```\n\nUse agent images with `-podman` suffix. These alias `docker` command to `podman`.\n\n### Custom Agent PodTemplate\n\n```yaml\nagent:\n  jenkins:\n    Agent:\n      PodTemplate:\n        Name: \"default\"\n        Label: \"jenkins-agent\"\n        Containers:\n        - Name: \"jnlp\"\n          Image: \"jenkins/inbound-agent:3309.v27b_9314fd1a_4-1-jdk21\"\n          Args: \"^${computer.jnlpmac} ^${computer.name}\"\n          Resource:\n            Request:\n              Cpu: \"100m\"\n              Memory: \"256Mi\"\n            Limit:\n              Cpu: \"500m\"\n              Memory: \"512Mi\"\n```\n\n## Backup and Restore\n\n### Backup Jenkins Data\n\n```bash\n# Find Jenkins PVC\nkubectl -n kubesphere-devops-system get pvc\n\n# Create backup inside Jenkins pod\nkubectl -n kubesphere-devops-system exec deployment/devops-jenkins -- bash -c \\\n  'cd /tmp && tar czvf jenkins_home.backup.tar /var/jenkins_home && mv jenkins_home.backup.tar /var/jenkins_home'\n\n# Copy to local\nkubectl -n kubesphere-devops-system cp \\\n  deployment/devops-jenkins:/var/jenkins_home/jenkins_home.backup.tar \\\n  ./jenkins_home.backup.tar\n```\n\n### Reset Jenkins Components\n\n```yaml\nagent:\n  jenkins:\n    Master:\n      resetPlugins: true    # Reset all plugins to default\n      resetRBACRoles: true  # Reset RBAC roles\n      resetAdminPassword: true  # Reset admin password\n      resetAdminToken: true     # Reset admin API token\n```\n\nApply and restart Jenkins to reset.\n\n## Troubleshooting\n\n### Jenkins Won't Start\n\n```bash\n# Check pod status\nkubectl -n kubesphere-devops-system get pods -l app=devops-jenkins\n\n# View logs\nkubectl -n kubesphere-devops-system logs -l app=devops-jenkins --tail=100\n\n# Check events\nkubectl -n kubesphere-devops-system get events --sort-by='.lastTimestamp'\n```\n\n### Common Issues\n\n| Issue | Cause | Fix |\n|-------|-------|-----|\n| OOMKilled | Memory limit too low | Increase resource limits |\n| CrashLoopBackOff | Bad CasC config | Check ConfigMap syntax |\n| Agent connection failed | Wrong JNLP image | Update to compatible version |\n| Pipeline hangs | No available agents | Check agent resource quotas |\n\n### Check Jenkins Health\n\n```bash\n# Check crumb issuer (CSRF protection)\ncurl http://<jenkins-url>/crumbIssuer/api/json\n\n# Check plugin list\ncurl http://<jenkins-url>/pluginManager/api/json?depth=1\n```\n\n## Plugin Management\n\n### v1.2.x Removed Plugins\n\nThese plugins were removed in v1.2.0:\n- `ace-editor`\n- `async-http-client`\n- `blueocean-executor-info`\n- `handlebars`\n- `kubernetes-cd` (major impact)\n- `momentjs`\n- `windows-slaves`\n\n**Action Required:** Update pipeline scripts if they depend on these plugins.\n\n## Working with Builds via API\n\n### Trigger a Pipeline Build\n\n```bash\n# Get Jenkins admin token\nTOKEN=$(kubectl -n kubesphere-devops-system get secret devops-jenkins -o jsonpath='{.data.jenkins-admin-token}' | base64 -d)\n\n# Trigger build for a pipeline\nkubectl run curl-trigger --rm -i --restart=Never --image=curlimages/curl \\\n  -- \"http://admin:${TOKEN}@devops-jenkins.kubesphere-devops-system:80/job/demo-project/job/my-pipeline/build\" \\\n  -X POST -w \"\\nHTTP Status: %{http_code}\\n\"\n\n# Expected: HTTP Status: 201 (Created)\n```\n\n**Multi-branch Pipeline:**\n```bash\n# Trigger specific branch build\nkubectl run curl-trigger-branch --rm -i --restart=Never --image=curlimages/curl \\\n  -- \"http://admin:${TOKEN}@devops-jenkins.kubesphere-devops-system:80/job/demo-project/job/my-multibranch/job/main/build\" \\\n  -X POST\n```\n\n### View Build Console Log\n\n```bash\n# Get console log for build #3\nkubectl run curl-log --rm -i --restart=Never --image=curlimages/curl \\\n  -- \"http://admin:${TOKEN}@devops-jenkins.kubesphere-devops-system:80/job/demo-project/job/my-pipeline/job/main/3/consoleText\"\n```\n\n### Check Build Status\n\n```bash\n# Get build info as JSON\nkubectl run curl-status --rm -i --restart=Never --image=curlimages/curl \\\n  -- \"http://admin:${TOKEN}@devops-jenkins.kubesphere-devops-system:80/job/demo-project/job/my-pipeline/job/main/3/api/json\" \\\n  | grep -E '\"result\"|\"building\"|\"duration\"'\n\n# Example output:\n# \"building\":false\n# \"duration\":53917\n# \"result\":\"SUCCESS\"\n```\n\n### Download Build Artifacts\n\n**Method: Pod-based Download (Recommended for Binaries)**\n\nFor binary artifacts, use a pod to download and then copy out:\n\n```bash\n# 1. Create a download pod\nkubectl apply -f - <<EOF\napiVersion: v1\nkind: Pod\nmetadata:\n  name: artifact-downloader\nspec:\n  containers:\n  - name: downloader\n    image: curlimages/curl\n    command: ['sh', '-c', 'sleep 300']\nEOF\n\n# 2. Wait for pod ready\nkubectl wait --for=condition=Ready pod/artifact-downloader --timeout=60s\n\n# 3. Get Jenkins token and download artifact\nTOKEN=$(kubectl -n kubesphere-devops-system get secret devops-jenkins -o jsonpath='{.data.jenkins-admin-token}' | base64 -d)\nkubectl exec artifact-downloader -- sh -c \\\n  \"curl -s -o /tmp/service 'http://admin:${TOKEN}@devops-jenkins.kubesphere-devops-system:80/job/demo-project/job/my-pipeline/job/main/3/artifact/service'\"\n\n# 4. Copy artifact from pod to local\nkubectl cp artifact-downloader:/tmp/service /tmp/service\n\n# 5. Clean up\nkubectl delete pod artifact-downloader --force\n```\n\n**Verify Downloaded Artifact:**\n```bash\n# Check file\nls -lh /tmp/service\nfile /tmp/service\n\n# Example output:\n# /tmp/service: ELF 64-bit LSB executable, x86-64...\n\n# Make executable and test\nchmod +x /tmp/service\n/tmp/service --help\n```\n\n### Working with PipelineRuns\n\nPipelineRuns track Jenkins build execution in Kubernetes:\n\n```bash\n# List recent pipeline runs\nkubectl get pipelineruns -n <devops-project-namespace> --sort-by=.metadata.creationTimestamp\n\n# Example output:\n# NAME                             COMPLETIONS   STATUS      AGE\n# my-pipeline-vf8p5                1             Succeeded   2m\n\n# Get detailed status\nkubectl get pipelinerun my-pipeline-vf8p5 -n demo-project -o yaml\n```\n\n### Common API Patterns\n\n| Task | API Endpoint |\n|------|--------------|\n| Trigger build | `/job/{folder}/job/{pipeline}/build` |\n| Get build status | `/job/{folder}/job/{pipeline}/job/{branch}/{number}/api/json` |\n| Get console log | `/job/{folder}/job/{pipeline}/job/{branch}/{number}/consoleText` |\n| Get artifact | `/job/{folder}/job/{pipeline}/job/{branch}/{number}/artifact/{filename}` |\n| List builds | `/job/{folder}/job/{pipeline}/job/{branch}/api/json` |\n\n**Folder Structure:**\n- DevOps Project → Folder in Jenkins (e.g., `demo-project`)\n- Pipeline → Job in folder (e.g., `my-pipeline`)\n- Branch → Sub-job for multi-branch (e.g., `main`)\n- Build Number → Individual run (e.g., `3`)\n\n## API Proxy Endpoints\n\nKubeSphere proxies Jenkins API for authentication:\n\n| Endpoint | Description |\n|----------|-------------|\n| `/kapis/devops.kubesphere.io/v1alpha2/jenkins/{path}` | Generic Jenkins API proxy |\n| `/kapis/devops.kubesphere.io/v1alpha2/namespaces/{devops}/jenkins/{path}` | Project-scoped proxy |\n| `/kapis/devops.kubesphere.io/v1alpha3/ci/nodelabels` | Get Jenkins node labels |\n\n## References\n\n- [DevOps README - Configuration](/root/go/src/github.com/kubesphere/kse-extensions/devops/README.md)\n- [Jenkins CasC Documentation](https://github.com/jenkinsci/configuration-as-code-plugin)\n- [Jenkins Pipeline Syntax](https://www.jenkins.io/doc/book/pipeline/syntax/)","tags":["kubesphere","devops","jenkins","agent-skills","cloud-native","cncf","ebpf","hacktoberfest","kubernetes","llm","multi-cluster","multi-tenancy"],"capabilities":["skill","source-kubesphere","skill-kubesphere-devops-jenkins","topic-agent-skills","topic-cloud-native","topic-cncf","topic-devops","topic-ebpf","topic-hacktoberfest","topic-kubernetes","topic-kubesphere","topic-llm","topic-multi-cluster","topic-multi-tenancy","topic-observability"],"categories":["kubesphere"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/kubesphere/kubesphere/kubesphere-devops-jenkins","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add kubesphere/kubesphere","source_repo":"https://github.com/kubesphere/kubesphere","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 16920 github stars · SKILL.md body (11,337 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-03T00:52:29.563Z","embedding":null,"createdAt":"2026-04-18T21:53:13.720Z","updatedAt":"2026-05-03T00:52:29.563Z","lastSeenAt":"2026-05-03T00:52:29.563Z","tsv":"'-1':212,400,483 '-2':394 '-64':1067 '/api/json':1152,1183 '/artifact':1173 '/build':1141 '/consoletext':1163 '/crumbissuer/api/json':691 '/doc/book/pipeline/syntax/)':1265 '/inbound-agent':395 '/jenkins':1238 '/jenkins_home.backup.tar':553 '/jenkinsci/configuration-as-code-plugin)':1259 '/job':1137,1139,1145,1147,1149,1156,1158,1160,1166,1168,1170,1177,1179,1181 '/kapis/devops.kubesphere.io/v1alpha2/jenkins':1230 '/kapis/devops.kubesphere.io/v1alpha2/namespaces':1236 '/kapis/devops.kubesphere.io/v1alpha3/ci/nodelabels':1244 '/pluginmanager/api/json':696 '/root/go/src/github.com/kubesphere/kse-extensions/devops/readme.md':1253 '/tmp':533 '/tmp/casc-old.yaml':387,402 '/tmp/casc.yaml':403,410 '/tmp/service':1015,1035,1036,1055,1057,1060,1074,1075 '/var/jenkins_home':537,540 '/var/jenkins_home/jenkins_home.backup.tar':552 '0':254,256,264 '1':343,698,935,1110 '100':627 '100m':491 '192.168.1.20':285,288,291,294,308 '2':347,965 '201':810 '256mi':493 '2m':1112 '3':351,852,978,1218 '300':963 '30180':158,161 '30180/securityrealm/finishlogin':309 '30880/oauth/authorize':289 '30880/oauth/logout':295 '30880/oauth/token':286 '30880/oauth/userinfo':292 '3309':208,396,479 '4':211,358,399,482,1023 '4.10':393 '5':361,1037 '500m':496 '512mi':498 '53917':908 '60s':977 '64':1062 '80/job/demo-project/job/my-multibranch/job/main/build':839 '80/job/demo-project/job/my-pipeline/build':798 '80/job/demo-project/job/my-pipeline/job/main/3/api/json':897 '80/job/demo-project/job/my-pipeline/job/main/3/artifact/service':1022 '80/job/demo-project/job/my-pipeline/job/main/3/consoletext':870 '9314fd1a':210,398,481 'access':67,107,159,356 'ace':711 'ace-editor':710 'action':731 'add':352 'admin':111,116,235,241,576,581,754,772,792,833,864,891,1001,1016 'admin-token':771,1000 'age':1105 'agent':13,59,78,199,204,222,276,319,363,440,442,449,461,464,466,473,558,662,676,678 'alia':455 'api':98,582,746,1130,1133,1219,1225,1234 'apivers':944 'app':608,622 'appli':404,408,584,941 'arg':485 'artifact':18,101,913,924,951,984,1008,1025,1033,1044,1049,1165 'artifact-download':950,1007,1032,1043 'async':714 'async-http-cli':713 'authent':60,75,217,1227 'authorizationserverurl':287 'avail':675 'b':332 'backup':499,502,518 'bad':656 'base':917 'base64':136,139,774,1003 'bash':113,144,177,369,505,530,595,684,751,816,846,874,934,1050,1087 'binari':921,923 'bit':1063 'blueocean':718 'blueocean-executor-info':717 'branch':814,819,826,1150,1161,1171,1182,1203,1210 'build':17,96,100,103,744,750,777,820,843,851,872,876,901,905,912,1083,1136,1143,1176,1213 'c':531,961,1011 'casc':44,165,174,180,191,383,657,1255 'caus':645 'cd':532,724 'check':596,628,659,677,681,685,692,871,1051 'chmod':1072 'ci':35 'clean':1038 'client':716 'clientid':280 'clientsecret':282 'cm':188,380 'cn':234,263 'code':43,164,805 'command':457,959 'common':642,1129 'compat':670 'complet':1103 'compon':556 'computer.jnlpmac':486 'computer.name':487 'condit':973 'config':175,192,372,384,406,658 'configmap':176,337,660 'configur':7,27,39,41,54,71,80,162,167,196,218,226,312,1252 'connect':272,360,663 'consol':69,109,342,844,848,1154 'contain':474,954 'containerd':435 'copi':541,932,1024 'cp':550,1031 'cpu':490,495 'crashloopbackoff':655 'creat':338,517,811,936 'credenti':112,339,353 'crumb':686 'csrf':688 'curl':690,695,784,824,856,883,1012 'curl-log':855 'curl-status':882 'curl-trigg':783 'curl-trigger-branch':823 'curlimages/curl':791,832,863,890,958 'current':179,371 'custom':14,58,76,364,460 'czvf':535 'd':137,140,775,1004 'data':504 'data.jenkins':770,999 'dc':236,238,243,245 'decod':133 'default':156,469,567 'delet':1041 'demo':1125,1193 'demo-project':1124,1192 'depend':738 'deploy':421 'deployment/devops-jenkins':529,551 'depth':697 'descript':1229 'detail':1114 'devop':3,11,25,30,93,124,129,149,154,185,377,417,423,513,526,548,603,610,618,624,634,761,766,796,837,868,895,990,995,1020,1186,1237,1250 'devops-jenkin':128,153,422,609,623,765,994 'devops-jenkins.kubesphere':794,835,866,893,1018 'devops-system':795,836,867,894,1019 'direct':70 'disablemailaddressresolv':267 'disableroleprefix':269 'displaynameattributenam':227 'docker':430,438,456 'document':1256 'download':99,911,918,929,938,952,956,983,1009,1034,1045,1048 'durat':902,907 'e':899 'e.g':1191,1199,1211,1217 'echo':135,138 'editor':712 'elf':1061 'email':301 'emb':31 'enabl':425 'endpoint':1134,1221,1228 'endsessionendpoint':293 'engin':36 'environ':51,431 'eof':943,964 'essenti':56 'event':629,637 'exactsecurityrealm':224,278 'exampl':903,1058,1100 'exec':528,1006 'execut':50,1065,1069,1084 'executor':719 'expect':807 'f':409,942 'fail':664 'fals':215,232,268,906 'file':1052,1056 'filenam':1174 'find':348,506 'fix':646 'folder':1138,1146,1157,1167,1178,1184,1188,1198 'forc':1046 'fullnamefieldnam':302 'generic':1232 'get':110,114,126,141,151,187,370,379,515,605,636,752,763,847,875,979,992,1093,1113,1117,1142,1153,1164,1245 'github.com':1258 'github.com/jenkinsci/configuration-as-code-plugin)':1257 'gitlab':81,310,313,325,331,349,354 'gitlab-a':324 'gitlab-b':330 'gitlab.a.com':328 'gitlab.b.com':334 'gitlabserv':322 'grep':898 'group':259 'groupsearchbas':257 'groupsearchfilt':260 'handlebar':721 'hang':673 'health':683 'help':1076 'host':433 'http':715,804,808 'imag':79,205,367,389,450,477,667,790,831,862,889,957 'impact':726 'includ':12 'increas':652 'individu':1215 'inetorgperson':252 'info':720,877 'inhibitinferrootdn':231 'insid':519 'instead':436 'integr':16,220,274,311,317 'io':239,246 'issu':23,89,643,644 'issuer':687 'jdk21':213,484 'jdk21/g':401 'jenkin':4,8,22,26,32,37,53,68,77,87,91,108,115,130,142,155,166,173,190,200,223,277,281,283,320,341,345,382,412,424,441,465,472,503,507,520,555,559,587,591,611,625,682,753,767,980,996,1082,1190,1224,1233,1246,1254,1260 'jenkins-ag':471 'jenkins-casc-config':172,189,381 'jenkins/inbound-agent':206,478 'jenkins_home.backup.tar':536,539 'jnlp':366,476,666 'job':1196,1206 'json':879 'jsonpath':769,998 'key':195 'kind':946 'kubectl':120,145,181,373,407,413,509,522,544,599,614,630,757,781,821,853,880,940,970,986,1005,1030,1040,1092,1116 'kubernet':723,1086 'kubernetes-cd':722 'kubespher':2,10,24,29,123,148,184,237,244,376,416,512,525,547,602,617,633,760,989,1222 'kubesphere-devops-jenkin':1 'kubesphere-devops-system':122,147,183,375,415,511,524,546,601,616,632,759,988 'l':607,621 'label':470,1248 'lasttimestamp':641 'ldap':72,219,225 'ldap/oidc':15 'lh':1054 'limit':494,649,654 'list':694,1088,1175 'local':543,1029 'log':104,613,620,845,849,857,1155 'logoutfromopenidprovid':296 'low':651 'ls':1053 'lsb':1064 'mail':230,255 'mailaddressattributenam':229 'main':1212 'major':725 'make':1068 'manag':63,169,344,700 'managerdn':233 'managerpasswordsecret':240 'master':201,560 'memori':492,497,648 'metadata':948 'metadata.creationtimestamp':1099 'method':914 'momentj':727 'multi':813,1209 'multi-branch':812,1208 'mv':538 'my-pipelin':1200 'my-pipeline-vf8p5':1106,1119 'n':121,146,182,374,414,510,523,545,600,615,631,758,806,987,1095,1123 'name':323,329,468,475,949,955,1102 'never':789,830,861,888 'new':405 'nhttp':802 'node':1247 'nodeport':143,157 'nodeselector':202,216 'non':429 'non-dock':428 'number':1151,1162,1172,1214 'o':131,193,385,768,997,1014,1127 'objectclass':251,261 'oic':279 'oidc':74,273 'oomkil':647 'openid':271,299 'openldap.kubesphere-system.svc:389':266 'ou':248,258 'output':904,1059,1101 'overview':28 'password':119,577 'path':1231,1239 'pattern':1131 'person':355 'pipelin':49,316,672,734,749,780,815,1090,1108,1121,1140,1148,1159,1169,1180,1195,1202,1261 'pipelinerun':1079,1080,1094,1118 'plugin':565,693,699,703,705,741 'pod':521,597,606,916,927,939,947,968,1027,1042 'pod-bas':915 'pod/artifact-downloader':975 'podman':426,447,452,459 'podtempl':462,467 'posixgroup':262 'post':800,841 'prefer':305 'privileg':214,443 'profil':300 'project':1126,1187,1194,1241 'project-scop':1240 'protect':689 'provid':46 'proxi':1220,1223,1235,1243 'pvc':508,516 'quota':680 'rbac':571 'readi':969,974 'readm':1251 'recent':1089 'recommend':919 'redirecturi':307 'refer':1249 'remov':702,707 'request':489 'requir':445,732 'reset':554,563,570,575,580,589 'resetadminpassword':573 'resetadmintoken':578 'resetplugin':561 'resetrbacrol':568 'resourc':62,488,653,679 'restart':411,420,586,788,829,860,887 'restor':501 'result':900,909 'retriev':19 'rm':786,827,858,885 'role':572 'rollout':419 'rootdn':242 'run':434,782,822,854,881,1091,1216 's/inbound-agent':392 'save':362 'scm':84 'scope':298,1242 'script':735 'secret':127,764,993 'section':197,350 'sed':391 'server':85,265,314 'serverurl':327,333 'sh':960,1010 'skill' 'skill-kubesphere-devops-jenkins' 'slave':730 'sleep':962 'sort':639,1097 'sort-bi':638,1096 'source-kubesphere' 'spec':953 'specif':818 'start':594 'startup':88 'status':106,598,803,809,873,884,1104,1115,1144 'structur':1185 'sub':1205 'sub-job':1204 'succeed':1111 'success':910 'suffix':453 'svc':152 'syntax':661,1262 'system':125,150,186,346,378,418,514,527,549,604,619,635,762,797,838,869,896,991,1021 'tag':207 'tail':626 'tar':534 'task':1132 'test':359,1071 'timeout':976 'token':357,583,755,756,773,793,834,865,892,981,985,1002,1017 'tokenserverurl':284 'toler':203 'topic-agent-skills' 'topic-cloud-native' 'topic-cncf' 'topic-devops' 'topic-ebpf' 'topic-hacktoberfest' 'topic-kubernetes' 'topic-kubesphere' 'topic-llm' 'topic-multi-cluster' 'topic-multi-tenancy' 'topic-observability' 'track':1081 'trigger':95,747,776,785,817,825,1135 'troubleshoot':21,86,590 'true':270,297,444,562,569,574,579 'uid':228,253 'unclassifi':321 'under':48 'understand':52 'updat':90,336,365,388,668,733 'upgrad':94 'url':303 'use':5,66,448,925 'user':117,249 'userinfoserverurl':290 'usernam':306 'usernamefield':304 'usersearch':250 'usersearchbas':247 'v1':945 'v1.2.0':709 'v1.2.x':368,701 'v27b':209,397,480 'valu':134 'verifi':1047 'version':390,671 'vf8p5':1109,1122 'via':40,97,160,745 'view':102,178,612,842 'w':801 'wait':966,971 'window':729 'windows-slav':728 'won':592 'work':742,1077 'wrong':665 'www.jenkins.io':1264 'www.jenkins.io/doc/book/pipeline/syntax/)':1263 'x':799,840,1073 'x86':1066 'yaml':132,194,198,221,275,318,386,439,463,557,1128","prices":[{"id":"e78bda0c-ef79-4a27-84b9-6941f97f5cf5","listingId":"8f859983-46e6-4dd8-8cc8-84898df6ba81","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"kubesphere","category":"kubesphere","install_from":"skills.sh"},"createdAt":"2026-04-18T21:53:13.720Z"}],"sources":[{"listingId":"8f859983-46e6-4dd8-8cc8-84898df6ba81","source":"github","sourceId":"kubesphere/kubesphere/kubesphere-devops-jenkins","sourceUrl":"https://github.com/kubesphere/kubesphere/tree/master/skills/kubesphere-devops-jenkins","isPrimary":false,"firstSeenAt":"2026-04-18T21:53:13.720Z","lastSeenAt":"2026-05-03T00:52:29.563Z"}],"details":{"listingId":"8f859983-46e6-4dd8-8cc8-84898df6ba81","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"kubesphere","slug":"kubesphere-devops-jenkins","github":{"repo":"kubesphere/kubesphere","stars":16920,"topics":["agent-skills","ai","cloud-native","cncf","devops","ebpf","hacktoberfest","kubernetes","kubesphere","llm","multi-cluster","multi-tenancy","observability","servicemesh","skills","skills-sh","skillsmp"],"license":"other","html_url":"https://github.com/kubesphere/kubesphere","pushed_at":"2026-04-27T06:10:27Z","description":"The container platform tailored for Kubernetes multi-cloud, datacenter, and edge management ⎈ 🖥 ☁️","skill_md_sha":"73068e01303b97d68a6cde2081a6adad17aaf8a6","skill_md_path":"skills/kubesphere-devops-jenkins/SKILL.md","default_branch":"master","skill_tree_url":"https://github.com/kubesphere/kubesphere/tree/master/skills/kubesphere-devops-jenkins"},"layout":"multi","source":"github","category":"kubesphere","frontmatter":{"name":"kubesphere-devops-jenkins","description":"Use when configuring Jenkins in KubeSphere DevOps, including agent customization, LDAP/OIDC integration, build artifact retrieval, or troubleshooting Jenkins issues"},"skills_sh_url":"https://skills.sh/kubesphere/kubesphere/kubesphere-devops-jenkins"},"updatedAt":"2026-05-03T00:52:29.563Z"}}