kubesphere 3.4.0版本,默认支持的jav版本是8和11,不支持17 。需要我们自己定义JenKins Agent 。方法如下:
一、构建镜像
1、我们需要从Jenkins Agent的github仓库拉取master最新源码,最新源码里已经支持jdk17了。
git clone https://github.com/kubesphere/devops-agent
2、将maven目录拷贝到可以docker build的服务器上。并且cd到maven目录。
3、构建maven-jdk17,命令如下:
docker build --build-arg JDK_VERSION=17 -t builder-maven:v3.2.1-jdk17 .
4、将该镜像打tag,并且推送到指定的harbor仓库。
docker tag builder-maven:v3.2.1-jdk17 192.168.0.100:5000/library/builder-maven:v3.2.1-jdk17
#推送到仓库
docker push 192.168.0.100:5000/library/builder-maven:v3.2.1-jdk17
docker镜像到此完成,接下来需要配置kubesphere了。
二、配置kubesphere
5、平台管理-配置--配置字典,找到jenkins-casc-config,点击进去,这里字典里包含2个yaml文件,点击“更多操作---》编辑设置”---》打开编辑jenkins_user.yaml 。
6、编辑jenkins_user.yaml
在mavenjdk11后面加个同级节点。
- name: "mavenjdk17"
label: "mavenjdk17"
inheritFrom: "maven"
containers:
- name: "maven"
image: "192.168.0.100:5000/library/builder-maven:v3.2.1-jdk17"
7、我看了下jenkins.yaml 里也有类似的节点,我也加上了。(不确定是否有用,至少不会报错)
三、测试DevOps
pipeline {
agent {
node {
label 'mavenjdk17'
}
}
stages {
stage('Print Maven and JDK version') {
agent none
steps {
container('maven') {
sh 'docker version'
sh ''' java -version
mvn -v
cd /opt
ls -a
cd /opt/apache-maven-3.5.3/
ls -a
cd conf
ls -a
pwd
cat settings.xml'''
}
}
}
}
}
参考文章:https://blog.csdn.net/qq_40674583/article/details/127839554
https://ask.kubesphere.io/forum/d/9047-kubesphere-devops-jdk17maven