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
                '''
            }
        }
    }
}
复制代码

 

 

posted @   ascertain  阅读(135)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!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插件相关
点击右上角即可分享
微信分享提示