因为kubesphere 的 jenkins 大部分用了 hostpath 挂载方式, 所以,我们最好固定一个节点进行打包:
KubeSphere 如何调整Devops中的编译打包的节点?
KubeSphere 如何调整Devops中的编译打包的节点?-阿里云开发者社区 (aliyun.com)
怎么操作呢?
(1)
kubesphere的casc 配置
用admin 登录
用admin 登录
找到图中红框中的配置项,jenkins-casc-config项,点击后面的三个 ... 点,找到“修改配置”的菜单
三、reload jenkins的configuration,让配置生效
kubesphere更新jenkins 配置文件: 连接
上面是配置了kubesphere中有关jeninks的casc-config的全局配置,但是要在jenkins中重新reload才能生效,一般情况下,默认是主master的ip + 30180 ,就是jenkins的访问地址。
admin
P@88w0rd
为了让每一个容器都固定跑在这个节点上,我们需要对自定义的容器配置主机挂载目录
4-配置 hostpath
使用 HostPath 卷将主机文件系统中的文件或目录挂载到容器中。
在contaner 层级下添加:
既然用到maven 模板,遂将master 节点的kubectl 命令通过hostpath挂载到maven的 pod模板里面。问题解决。
agent模板cm配置【jenkins-casc-config】在【kubesphere-devops-system】的namespace下,在节点data.jenkins_user.yml下添加自定义的agent模板配置,
kubesphere已内置了一些模板(base、nodejs、maven、go、python)等,根据需要选择是否使用。每个模板需要有“jnlp”jenkins的agent来实现与jenkins通信,,jenkins-cacs-config 该配置文件详细如下,在maven模板里面增加kubectl 的 hostpath挂载。
然后检查我们的宿主机:
参考:
kubesphere 的 流水线maven 模板缺少 kubectl解决 - beawh - 博客园 (cnblogs.com)
gradle 配置:
[root@harbor jdk17gradle74]# cat Dockerfile
#FROM kubespheredev/builder-base:v3.1.0
FROM registry.cn-hangzhou.aliyuncs.com/baimeidashu/kubespheredev-builder-base:v3.1.0
MAINTAINER zhaozhiyong "715740383@qq.com"
WORKDIR /jdk
ADD jdk-17_linux-x64_bin.tar.gz /jdk/
ADD gradle-7.4-bin.tar.gz /gradle/
COPY init.gradle /gradle/gradle-7.4/init.d/
ENV JAVA_HOME=/jdk/jdk-17.0.9
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV GRADLE_HOME=/gradle/gradle-7.4
ENV PATH=$JAVA_HOME/bin:$PATH:$GRADLE_HOME/bin
CMD ["java","-version"]
#CMD ["gradle","-version"]
cat init.gradle
allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter/'
def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google/'
def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
remove repo
}
if (url.startsWith('https://plugins.gradle.org/m2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL."
remove repo
}
}
}
maven { url ALIYUN_REPOSITORY_URL }
maven { url ALIYUN_JCENTER_URL }
maven { url ALIYUN_GOOGLE_URL }
maven { url ALIYUN_GRADLE_PLUGIN_URL }
}
}
欢迎来撩 : 汇总all