Advanced v2.0

Advanced v2.0
Advanced v1.0
Express v1.0
  1. Release Notes
  1. 产品介绍
  1. 安装指南
  1. 快速入门
  1. 管理员指南
    1. 多租户管理
    1. 平台管理
    1. 基础设施
    1. 监控中心
    1. 平台设置
    1. 工具箱
    1. 通用配置
    1. FAQ
  1. 用户指南
    1. 应用
    1. 工作负载
    1. 存储
    1. 网络与服务
    1. 监控告警
    1. 配置中心
    1. 项目设置
    1. DevOps 工程
  1. API 文档
  1. 常见问题
  1. 附录
KubeSphere®️ 2019 All Rights Reserved.

Jenkins Agent 说明

简介

Agent 部分指定了整个流水线或特定的部分, 将会在 Jenkins 环境中执行的位置,这取决于 Agent 区域的位置,该部分必须在 Pipeline 的顶层 或 Stage 中被定义。

内置的 podTemplate

在使用过程当中,每个 Pod 至少包含 jnlp 容器用于 Jenkins Master 与 Jenkins Agent 的通信。除此之外用户可以自行添加 podTemplate 当中的容器,以满足自己的需求。用户可以选择使用自己传入 Pod yaml 的形式来灵活的控制构建的运行环境,通过 container 指令可以进行容器的切换。

pipeline {
  agent {
    kubernetes {
      //cloud 'kubernetes'
      label 'mypod'
      yaml """
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: maven
    image: maven:3.3.9-jdk-8-alpine
    command: ['cat']
    tty: true
"""
    }
  }
  stages {
    stage('Run maven') {
      steps {
        container('maven') {
          sh 'mvn -version'
        }
      }
    }
  }
}

同时为了减少降低用户的使用成本,我们内置了一些 podTemplate,使用户可以避免 yaml 文件的编写。

在目前版本当中我们内置了 4 种类型的 podTemplate,basenodejsmavengo,并且在 Pod 中提供了隔离的 Docker 环境。

可以通过指定 Agent 的 label 使用内置的 podTempalte,例如要使用 nodejs 的 podTemplate,可以在创建 Pipeline 时指定 label 为 nodejs,如下给出示例。

nodejs-podtemplate

pipeline {
  agent {
    node {
      label 'nodejs'
    }
  }
  
  stages {
    stage('nodejs hello') {
      steps {
        container('nodejs') {
          sh 'yarn -v'
          sh 'node -v'
          sh 'docker version'
          sh 'docker images'
        }
      }
     }
   }
}

podTemplate base

名称 类型 / 版本
Jenkins Agent Label base
Container Name base
操作系统 centos-7
Docker 18.06.0
Helm 2.11.0
Kubectl Stable release
内置工具 unzip、which、make、wget、zip、bzip2、git

podTemplate nodejs

名称 类型 / 版本
Jenkins Agent Label nodejs
Container Name nodejs
操作系统 centos-7
Node 9.11.2
Yarn 1.3.2
Docker 18.06.0
Helm 2.11.0
Kubectl stable release
内置工具 unzip、which、make、wget、zip、bzip2、git

podTemplate maven

名称 类型 / 版本
Jenkins Agent Label maven
Container Name maven
操作系统 centos-7
Jdk openjdk-1.8.0
Maven 3.5.3
Docker 18.06.0
Helm 2.11.0
Kubectl stable release
内置工具 unzip、which、make、wget、zip、bzip2、git

podTemplate go

名称 类型 / 版本
Jenkins Agent Label go
Container Name go
操作系统 centos-7
Go 1.11
GOPATH /home/jenkins/go
GOROOT /usr/local/go
Docker 18.06.0
Helm 2.11.0
Kubectl stable release
内置工具 unzip、which、make、wget、zip、bzip2、git
Jenkins Agent 说明
简介
内置的 podTemplate
podTemplate base
podTemplate nodejs
podTemplate maven
podTemplate go