jenkins - 如何使用 Jenkins kubernetes 插件模板化我的 Pod 定义?
问题描述
我正在使用 Jenkins kubernetes 插件来运行管道构建:
pipeline {
agent {
kubernetes {
label 'kind'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
name: dind
...
我想用 0 到 5 之间的整数对 yaml 的特定字段进行模板化,该整数以循环方式旋转(即第一个构建模板为 0,第二个构建模板为 1 等,并在 4 后再次返回到 0) .
我怎样才能做到这一点?
解决方案
您可以使用 podTemplates 下一个代码来自https://github.com/jenkinsci/kubernetes-plugin,您可以使用变量来准备您需要的任何类型的 pod。如果这不是您所需要的,您能否提供一个示例来说明您正在尝试做的事情?
def label = "mypod-${UUID.randomUUID().toString()}"
podTemplate(label: label, containers: [
containerTemplate(name: 'maven', image: 'maven:3.3.9-jdk-8-alpine', ttyEnabled: true, command: 'cat'),
containerTemplate(name: 'golang', image: 'golang:1.8.0', ttyEnabled: true, command: 'cat')
]) {
node(label) {
stage('Get a Maven project') {
git 'https://github.com/jenkinsci/kubernetes-plugin.git'
container('maven') {
stage('Build a Maven project') {
sh 'mvn -B clean install'
}
}
}
stage('Get a Golang project') {
git url: 'https://github.com/hashicorp/terraform.git'
container('golang') {
stage('Build a Go project') {
sh """
mkdir -p /go/src/github.com/hashicorp
ln -s `pwd` /go/src/github.com/hashicorp/terraform
cd /go/src/github.com/hashicorp/terraform && make core-dev
"""
}
}
}
}
}
推荐阅读
- ms-access - 计算特定帐户的分类帐查询中的余额?
- python - 日志文件中的 MySQL 连接失败错误
- asp.net - 如何将 asp.net 核心身份验证迁移到新的 Google SignIn 服务?
- kubernetes - Kubernetes客户子域动态绑定
- swift - Alamofire JSON .GET 编码到数组
- powershell - 对于每个对象获取文件大小
- postgresql - 我应该在 citus 部署中选择哪种架构
- javascript - 如何访问元素的cssText?
- docker - Docker 注册表映像 - 持久性
- javascript - 为什么服务器发送的事件每 3 秒启动一次?