我正在设置Jenkins管道以在OpenShift中运行,并且我想包括一个安装了Skopeo的Maven代理吊舱。
我正在使用.yaml文件将此座席吊舱和Jenkins管道定义为构建配置,但无法启动已定义的管道构建配置。
当我在Jenkins Pipeline BC上调用start-build命令时,我的管道进程无法运行oc start-build命令。
我尝试在相同的项目/吊舱设置中手动运行相同的命令,并且看到相同的错误返回,表明我的.yaml文件中可能存在问题。
这也许是由于缺乏对.yaml文件的经验而引起的,但是尽管官方文档很有用,但似乎没有任何示例描述如何以这种方式合并代理pod。
我当前正在OpenShift 3.11中运行,并且在创建Maven Agent Pod之前实例化了Jenkins。
要定义Maven Agent Pod BC:
apiVersion: v1
kind: 'BuildConfig'
metadata:
name: 'agent-pod-name'
spec:
source:
dockerfile: |
FROM openshift/jenkins-agent-maven-35-centos7
USER root
RUN yum -y install skopeo apb && yum clean all
USER 1001
strategy:
type: 'Docker'
dockerStrategy:
env:
- name: 'VAR1'
value: 'VAR1Value'
- name: 'VAR2'
value: 'VAR2Value'
- name: 'VAR3'
value: 'VAR3Value'
output:
to:
kind: 'ImageStreamTag'
name: 'agent-pod-name:latest'
要定义Jenkins Pipeline BC:
apiVersion: v1
items:
- kind: 'BuildConfig'
apiVersion: 'v1'
metadata:
name: 'my-jenkins-pipeline'
spec:
source:
type: 'Git'
git:
uri: '<GIT URL GOES HERE>'
contextDir: 'contextDirFileNameHere'
strategy:
type: 'JenkinsPipeline'
jenkinsPipelineStrategy:
jenkinsfilePath: Jenkinsfile
env:
- name: 'VAR1'
value: 'VAR1Value'
- name: 'VAR2'
value: 'VAR2Value'
- name: 'VAR3'
value: 'VAR3Value'
kind: List
metadata: []
要手动运行BC:
oc start-build my-jenkins-pipeline -n ${Namespace}
要在一个步骤中通过Groovy在Jenkins中运行BC:
script {
openshift.withCluster() {
openshift.withProject("${Namespace}") {
openshift.selector("bc", "my-jenkins-pipeline").startBuild("--wait=true")
}
}
}
我遇到的主要错误是:
ERROR: Error running start-build on at least one item: [buildconfig/my-jenkins-pipeline]"
关于从何处开始故障排除的建议或我可以检查以解决此故障的任何资源?
答案 0 :(得分:0)
我没有足够的声誉来发表评论,所以我会问我的问题作为答案。