如何解决Openshift构建配置“开始构建失败”错误

时间:2019-08-25 05:48:03

标签: jenkins yaml jenkins-pipeline openshift

我正在设置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]"

关于从何处开始故障排除的建议或我可以检查以解决此故障的任何资源?

1 个答案:

答案 0 :(得分:0)

我没有足够的声誉来发表评论,所以我会问我的问题作为答案。

  • 您的问题与构建Jenkins代理无关,而是使用它,对吗?
  • 您可以在存储库中发布您的Git Repo URL或至少Jenkinsfile吗? 该错误可能与该文件有关。
  • 是否在Jenkins中将管道实际配置为Job并被触发? 如果是,Jenkins Build中的控制台输出是什么?
  • 代理映像是否确实存在于正确的命名空间中?
  • 您的管道是否在正确的命名空间中?
  • OpenShift的监视部分是否还有其他警告?