首页 > 其他分享 >Jenkins: Kubernetes Plugin

Jenkins: Kubernetes Plugin

时间:2023-04-15 22:00:28浏览次数:33  
标签:busybox name Kubernetes Plugin agent maven sh kubernetes Jenkins

 

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
                '''
            }
        }
    }
}

 

 

标签:busybox,name,Kubernetes,Plugin,agent,maven,sh,kubernetes,Jenkins
From: https://www.cnblogs.com/dissipate/p/17322009.html

相关文章

  • kubernetes 1.25.0 安装部署
    1.环境说明主机IP地址备注k8s-master192.168.0.200控制节点k8s-node1192.168.0.200工作节点k8s-node2192.168.0.200工作节点2.准备工作(所有节点)分别设置主机名hostnamectlset-hostnamek8s-masterhostnamectlset-hostna......
  • Kubernetes API相关知识
    Kubernetes集群中,所有组件需要操作集群资源时都通过调用kube-apiserver提供的RESTful接口来实现。kube-apiserver进一步和etcd交互,完成资源信息的更新。Kubernetes中的资源本质上是一个API对象,这个对象的期望状态被APIServer保存在etcd中,然后提供RESTful接口用于更新这些对象。......
  • java maven-plugin-shade插件 Maven生成的jar运行出现“没有主清单属性”
    命令窗口运行jar,提示“没有主清单属性”  2.1分析问题在打包构建的jar目录内,可以看到有一个MANIFEST.MF文件,如图所示:该文件就是jar运行时要查找的清单目录,其中主清单数据,就是我们要运行的主类(函数入口main所在的类);提示缺少主清单属性,就是文件中少了主清单属性如下所示:正......
  • kubernetes-nfs共享存储
    搭建nfs服务端#修改权限chmod-R777/nfs/data#编辑export文件vim/etc/exports/nfs/data*(rw,no_root_squash,sync)(“*“代表所有人都能连接,建议换成具体ip或ip段,如192.168.20.0/24)#配置生效exportfs-r#查看生效exportfs#启动rpcbind、nfs服务systemctlresta......
  • Dynamics 365 安装插件注册工具 PluginRegistration
    1.创建文件夹,例:D:\Dynamics_365_Development_Tools\pluginsTool2.powershell进入D:\Dynamics_365_Development_Tools\pluginsTool3.运行下面指令(直接复制粘贴到PowerShell即可),运行完成后按回车[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::T......
  • Plugin 'maven-surefire-plugin:2.12.4' not found(已解决)
    今天按照视频教程配置maven插件(maven-surefire-plugin)时,老师说这是maven内部的插件,可以不用写<groupId></groupId>标签,然后就报红:Plugin'maven-surefire-plugin:2.12.4'notfound也就是说这个插件找不到,于是添加<groupId>org.apache.maven.plugins</groupId>,刷新maven即可解决,......
  • Kubernetes security context capability
    注:以下内容基于经验主义,不一定对。LinuxcapabilityLinux中,root作为特权用户,具有执行所有应用的能力。而普通用户只能执行普通应用。如果普通用户需要执行特权应用,需要进行SUID提权,使得普通用户在执行具有SUID的应用时短暂获得特权用户的身份。这一设计容易出现漏洞,漏洞......
  • Jenkins 备份配置
    1、插件https://plugins.jenkins.io/thinBackup/2、系统管理--ThinBackup--Settings#创建备份目录并授权mkdir-p/data/backupchown-Rjenkins./data/backup ......
  • jenkins清理jobs中不存在的workspace,可能job已被删除,workspace还在占用存储空间
    #!/bin/bash##jenkins-workspace-clean-by-jobs.sh##循环寻找jobs任务文件夹forfilein/var/lib/jenkins/workspace/*doif[-d"$file"];thenjob_name=`basename$file`if[[!-d"/var/lib/jenkins/jobs/$job_......
  • kubernetes安装
    初始化kubeadminit的时候要指定cidr,安装CNI网络插件Flannel的时候也要设置对应的CIDR配置文件工作目录/etc/kubernetes总体过程kubectl官方命令使用帮助:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commandshelm官方命令使用帮助:https://helm.sh/docs/......