Jenkins: Kubernetes Plugin
env in jenkins controller
Jenkins dynamic slave agent
Pod Template in Jenkins UI
Example
from git
pipeline { agent { kubernetes { cloud 'kubernetes' defaultContainer 'maven' instanceCap 1 namespace 'devops' podRetention onFailure() retries 2 yamlFile 'cicd/pod-template.yaml' } } stages { stage('maven & busybox') { steps { container('maven') { sh 'mvn -version' } container('busybox') { sh '/bin/busybox' } } } } }
Inherit from Kubernetes Plugin Template
pipeline { agent { kubernetes { cloud 'kubernetes' defaultContainer 'maven' inheritFrom 'maven' instanceCap 1 namespace 'devops' podRetention onFailure() retries 2 // need to specify command, args yaml ''' spec: containers: - name: maven image: maven:3.8.1-jdk-11 command: - sleep args: - infinity ''' } } stages { stage('maven & golang') { steps { container('maven') { sh 'mvn --version' } sh 'ls -al' } } } }
Multiple Kubernetes Agents
pipeline { agent { kubernetes { cloud 'kubernetes' customWorkspace 'aa/bb' // relative to workingDir, don't use absolute directory, it will lead to java.nio.file.AccessDeniedException defaultContainer 'maven' instanceCap 1 namespace 'devops' podRetention onFailure() retries 2 workingDir '/home/jenkins/agent' yaml ''' apiVersion: v1 kind: Pod metadata: labels: some-label: some-label-value spec: imagePullSecrets: - name: secret-docker-artifactory securityContext: runAsUser: 1000 # default UID of jenkins user in agent image containers: - name: maven image: artifactory.cloud.ingka-system.cn/ccoecn-docker-virtual/aa/maven:3-openjdk-18-slim command: - cat tty: true - name: busybox image: artifactory.cloud.ingka-system.cn/ccoecn-docker-virtual/aa/busybox command: - cat tty: true ''' } } stages { stage('maven & busybox') { steps { sh ''' pwd -P ls -al ''' container(name: 'maven', shell: '/bin/bash') { sh '''#!/bin/sh for v in {0..9};do echo $v; done mvn -version pwd -P ''' } container('busybox') { sh '/bin/busybox' } } } stage('Custom Agent') { agent { kubernetes { defaultContainer 'golang' // ! yaml ''' apiVersion: v1 kind: Pod metadata: labels: some-label: some-label-value spec: imagePullSecrets: - name: secret-docker-artifactory securityContext: runAsUser: 1000 containers: - name: golang image: artifactory.cloud.ingka-system.cn/ccoecn-docker-virtual/aa/golang:latest command: - cat tty: true ''' } } steps { sh '''#!/bin/bash go version ''' } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-04-15 前端登陆案例php
2021-04-15 MySQL alter操作
2021-04-15 MySQL 配置ssl主从同步
2021-04-15 MySQL插件相关