【问题标题】:Openshift pipleline fails with error: # is already in progress (Running)Openshift 管道失败并出现错误:# is already in progress (Running)
【发布时间】:2018-08-31 09:33:15
【问题描述】:

我的 openshift jenkins 管道在推出时的最后一步失败。 Openshift 中的手动构建工作正常。它正在创建 Pod 并终止其他 Pod。就像使用管道时的接缝一样,它无法终止以前正在运行的 Pod。

当我手动终止正在运行的 pod 时,然后启动管道它工作正常。

然而,类似的管道在我们的测试环境中运行良好。

... previous stages

stage('PROD: Deploying image') {
              when {
                expression {
                  openshift.withCluster() {
                    openshift.withProject(PROD_PROJECTSPACE) {
                      return !openshift.selector('dc', "${APPLICATION_NAME}").exists()
                    }
                  }
                }
              }
              steps {
                script {
                  openshift.withCluster() {
                    openshift.withProject(PROD_PROJECTSPACE) {
                      openshift.newApp("${APPLICATION_NAME}:latest --allow-missing-imagestream-tags").narrow('svc').expose("--port=3013");
                      def dc = openshift.selector("dc", "${APPLICATION_NAME}");
                        while (dc.object().spec.replicas != dc.object().status.availableReplicas) {
                          sleep 10
                        }
                        openshift.set("triggers", "dc/${APPLICATION_NAME}", "--manual")
                      }
                    }
                }
              }
            }

Failing in this stage

stage('PROD: Rollout') {
              steps {
                script {
                  openshift.withCluster() {
                    openshift.withProject(PROD_PROJECTSPACE) {
                      openshift.selector("dc", "${APPLICATION_NAME}").rollout().latest();
                    }
                  }
                }
              }

这是错误

ERROR: rollout:latest returned an error;
{reference={}, err=error: #15 is already in progress (Running)., verb=rollout, cmd=oc --server=https://172.30.0.1:443 --certificate-authority=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt --namespace=global-prod --token=XXXXX rollout latest deploymentconfig/global-events , out=, status=1}

Finished: FAILURE  

你能指点我吗,任何帮助都会有帮助

【问题讨论】:

  • 使用 oc create -f myfile.yaml 创建了该管道
  • 您是否还有在 DeploymentConfig 中定义的 ImageChange 触发器?如果使用管道触发部署,则需要删除它。如果你不这样做,当镜像构建时,一个新的部署将自动触发,这意味着 Jenkins 将同时尝试并触发一个新的部署。
  • 你的意思是这个---触发器:-imageChangeParams:containerNames:-全局事件来自:种类:ImageStreamTag名称:'global-events:latest'命名空间:global-test lastTriggeredImage:>-docker -registry.default.svc:5000/global-test/global-events@sha256:39f46ecd98b212d9afca2150821994d0d1dde970cd0a5be1ce096a854e206b9d 类型:ImageChange
  • 是的,运行oc set triggers dc/yourappname --from-image --remove

标签: openshift jenkins-pipeline


【解决方案1】:

就像在您的 cmets 中一样。这可以工作,删除所有触发器:

oc set triggers dc/${APPLICATION_NAME} --remove-all

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2020-07-01
    • 1970-01-01
    • 2023-02-25
    相关资源
    最近更新 更多