跳转至

自定义 Jenkins Agent

如果需要使用特定环境的JenkinsAgent,如特殊版本的JDK,或者特定的工具,可以通过自定义Jenkins Agent来实现。 本文档描述了如何在DCE5中自定义Jenkins Agent,添加的Agent为全局范围,即所有的流水线都能使用此agent。

配置Jenkins

  1. 前往 容器管理 -> 集群列表, 选择您安装jenkins的集群和命名空间(默认集群名称为kpanda-global-cluster,命名空间为amamba-system)
  2. 选择 配置与密钥 -> 配置项,选择jenkins安装的命名空间,搜索配置项jenkins-casc-config
  3. 选择 编辑yaml, 搜索jenkins.clouds.kubernetes.templates,添加以下内容(以添加maven-jdk11为例)

    - name: "maven-jdk11" # 自定义 Jenkins Agent 的名称。
      label: "maven-jdk11" # 自定义 Jenkins Agent 的标签。若要指定多个标签,请用空格来分隔标签。
      inheritFrom: "maven" # 该自定义 Jenkins Agent 所继承的现有容器组模板的名称。
      containers:
      - name: "maven" # 该自定义 Jenkins Agent 所继承的现有容器组模板中指定的容器名称。
        image: "my-maven-image" # 使用自定义的镜像。
    

    Note

    您也可以在containers中添加其他与podTemplate相关的配置项,jenkins采用yaml merge的方式,未填字段则继承自父模板。

  4. 保存配置项,等待约一分钟后,jenkins会自动重新加载配置。

使用

  1. 通过DAG页面编排流水线

    在DAG的编排页面,点击 全局设置,类型选择 node,标签选择您自定义的标签即可。

  2. 通过JenkinsFile编排流水线

    在JenkinsFile的agent片段中引用自定义的标签:

    pipeline {
      agent {
        node {
          label 'maven-jdk11'  # 指定自定义的标签
        }
      }
      stages {
        stage('print jdk version') {
          steps {
            container('maven') {
              sh '''
              java -version
              '''
            }
          }
        }
      }
    }
    

评论