集群信息如下:


Jenkinsfile如下:
pipeline {
agent {
node {
label 'maven'
}
}
parameters {
string(name:'TAG_NAME',defaultValue: '',description:'')
}
environment {
HARBOR_CREDENTIAL_ID = 'harbor-id'
GITLAB_CREDENTIAL_ID = 'gitlab-id'
KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
REGISTRY = 'registry.crrcdtdl.com'
HARBOR_NAMESPACE = 'devops-java-sample'
GITLAB_ACCOUNT = 'peihongbing'
APP_NAME = 'devops-java-sample'
}
stages {
stage ('checkout scm') {
steps {
checkout(scm)
}
}
stage ('unit test') {
steps {
container ('maven') {
sh 'mvn clean -o -gs `pwd`/configuration/settings.xml test'
}
}
}
stage ('package') {
steps {
container ('maven') {
sh 'git remote set-url origin https://xxx/devops-java-sample.git'
sh 'git fetch && git checkout $TAG_NAME'
sh 'mvn -o -Dmaven.test.skip=true -gs `pwd`/configuration/settings.xml clean package'
}
}
}
stage ('image build and publish') {
steps {
container ('kaniko') {
sh "kaniko -f `pwd`/Dockerfile-on-prem -c `pwd` --destination=$REGISTRY/$HARBOR_NAMESPACE/$APP_NAME:${params.TAG_NAME} --skip-tls-verify"
}
}
}
stage('deploy to test') {
steps {
input(id: 'deploy-to-test', message: 'deploy to test?')
container ('maven') {
withCredentials([
kubeconfigFile(
credentialsId: env.KUBECONFIG_CREDENTIAL_ID,
variable: 'KUBECONFIG')
]) {
sh 'envsubst < deploy/test/devops-sample.yaml | kubectl apply -f -'
sh 'envsubst < deploy/test/devops-sample-svc.yaml | kubectl apply -f -'
}
}
}
}
}
}
执行如下操作运行流水线:

流水线状态显示如下:

但是直接登录Jenkins进行构建时不会出现如上问题,操作如下:

用admin账户登录KubeSphere,传入TAG_NAME参数构建也正常,如下:
