前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jenkins-3:使用jenkinsfile在kubernetes中创建jnlp完成一个简单构建

jenkins-3:使用jenkinsfile在kubernetes中创建jnlp完成一个简单构建

作者头像
千里行走
发布2022-04-28 16:24:42
4.3K0
发布2022-04-28 16:24:42
举报
文章被收录于专栏:千里行走千里行走

目录:

(1).准备jenkinsfile

(2).创建测试任务完成构建

(3).参考资料

(1).准备jenkinsfile

先要开一个git工程存放jenkinsfile,我在码云上建了个工程:

https://gitee.com/future-cicd/jenkinsfile

jenkinsfile在这个工程下的目录是:

kubernetesfile/fist-simple-jenkinsfile.file

语法解释:

#这个label是定义podTemplate的label,node要和这个匹配,才能正确对应。

def label = "jenkinsfile-pod-template"

#cloud:是之前文章中在jenkins中配置的k8s-cloud的名称。

#nodeSelector:是声明这个jnlp-pod必须在有这个label的node上分布。

podTemplate(label: label, cloud: 'kubernetes',nodeSelector: 'jenkins-jnlp=yes',

containers: [

containerTemplate(

name: 'jnlp',

image: 'jenkins/inbound-agent:4.11-1-jdk11',

ttyEnabled: true,

alwaysPullImage: false,

#覆盖默认jnlp必须写这个args

args: '{computer.jnlpmac} {computer.name}'),

containerTemplate(

name: 'just-test',

image: 'jenkins/inbound-agent:4.11.2-4',

ttyEnabled: true,

alwaysPullImage: false,

command: 'cat')

]

)

{

node (label) {

stage('test-jnlp'){

container('jnlp'){

echo 'hello, I am jnlp container.'

}

}

stage('test-just-test'){

container('just-test'){

echo 'hello, I am just-test container.'

}

}

}

}

(2).创建测试任务完成构建

新建jenkins流水线任务test1:

因为这个是公有仓库,所以不需要添加凭据。

脚本路径是jenkinsfile在git中的路径。

然后执行构建:发现报错。

因为没有给node打标签,podTemplate中的nodeSelector找不到可以执行的节点。

kubectl label nodes future jenkins-jnlp=yes

再次执行构建,OK。

(3).参考资料

1.Cannot start jenkins agent pod from podTemplate in a separate yaml file

https://issues.jenkins.io/browse/JENKINS-66058

2.Kubernetes plugin for Jenkins

https://plugins.jenkins.io/kubernetes/#documentations

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 千里行走 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档