创建部署问题时,请参考下面模板,你提供的信息越多,越容易及时获得解答。如果未按模板创建问题,管理员有权关闭问题。
确保帖子格式清晰易读,用 markdown code block 语法格式化代码块。
你只花一分钟创建的问题,不能指望别人花上半个小时给你解答。
操作系统信息
例如:3台虚拟机,Centos7.5,4C/8G
Kubernetes版本信息
将 kubectl version
命令执行结果贴在下方
Client Version: version.Info{Major:“1”, Minor:“21”, GitVersion:“v1.21.5”, GitCommit:“aea7bbadd2fc0cd689de94a54e5b7b758869d691”, GitTreeState:“clean”, BuildDate:“2021-09-15T21:10:45Z”, GoVersion:“go1.16.8”, Compiler:“gc”, Platform:“linux/amd64”}
Server Version: version.Info{Major:“1”, Minor:“21”, GitVersion:“v1.21.10”, GitCommit:“a7a32748b5c60445c4c7ee904caf01b91f2dbb71”, GitTreeState:“clean”, BuildDate:“2022-02-16T11:18:16Z”, GoVersion:“go1.16.14”, Compiler:“gc”, Platform:“linux/amd64”}
容器运行时
将 docker version
/ crictl version
/ nerdctl version
结果贴在下方
KubeSphere版本信息
例如:v3.2.1。离线安装。
问题是什么
通过devops生成流水线,编辑自定jenkinsfile,可参考以下附件。可以成功保存,但点击运行后 devops-controller 不断重启(错误日志如下图)。最后需要通过执行删除流水线命令之后恢复。期待补丁。
kubectl delete pipeline –all -n {devops命名空间名称}
devops-controller报错日志:

==================
附件:自定义jenkinsfiles
pipeline {
agent any
parameters {
string(name:'BRANCH_NAME',description:'选择分支')
}
stages {
stage('拉取代码') {
agent none
steps {
git(url: 'https://git/app.server.git', credentialsId: 'gitea-token', branch: "$BRANCH_NAME", changelog: true, poll: false)
}
}
stage('编译信息') {
agent none
steps {
sh '''echo "当前分支:${BRANCH_NAME}"
echo "代码版本号:${VERSION_NUMBER}"
echo "镜像版本号:${VERSION_NUMBER}.${BUILD_NUMBER}"
echo "===env begin==="
env
echo "===env end==="'''
}
}
stage('编译构建') {
agent none
steps {
container('maven') {
sh '''sed -i "s/VERSION/${VERSION_NUMBER}/g" Dockerfile
sed -i "0,/<version>.*<\\/version>/s//<version>${VERSION_NUMBER}<\\/version>/" pom.xml
mvn clean package -Dmaven.test.failure.ignore=true -DskipTests=true -U'''
}
}
}
stage('打包镜像') {
agent none
steps {
container('maven') {
withCredentials([usernamePassword(credentialsId : 'harbor-ripples' ,passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,)]) {
sh '''echo "$DOCKER_PASSWORD" | docker login ${HARBOR_REGISTRY} -u "$DOCKER_USERNAME" --password-stdin
docker build -f Dockerfile -t ${HARBOR_REGISTRY}/${HARBOR_NAMESPACE}/${APP_NAME}:${VERSION_NUMBER}.${BUILD_NUMBER} .
docker push ${HARBOR_REGISTRY}/${HARBOR_NAMESPACE}/${APP_NAME}:${VERSION_NUMBER}.${BUILD_NUMBER}'''
}
}
}
}
stage('部署UAT环境') {
agent none
steps {
container('maven') {
withCredentials([kubeconfigContent(credentialsId : 'k8s-kubeconfig' ,variable : 'KUBECONFIG' ,)]) {
sh 'envsubst < deploy/deployment-uat.yaml | kubectl apply -f -'
}
}
}
}
}
environment {
VERSION_NUMBER = sh(returnStdout: true, script: 'echo ${BRANCH_NAME#*-}').trim()
}
}