构建超时,无法增加超时

Build times out, can't increase time out

我正在通过 Cloud Build 部署到 Kubernettes。时不时地构建超时,因为它超过了十分钟的构建时间。我不知道如何增加这个时间。我在我的触发器中使用内联构建配置。看起来像这样

    steps:
  - name: gcr.io/cloud-builders/docker
    args:
      - build
      - '-t'
      - '$_IMAGE_NAME:$COMMIT_SHA'
      - .
      - '-f'
      - $_DOCKERFILE_NAME
    dir: $_DOCKERFILE_DIR
    id: Build
  - name: gcr.io/cloud-builders/docker
    args:
      - push
      - '$_IMAGE_NAME:$COMMIT_SHA'
    id: Push
  - name: gcr.io/cloud-builders/gke-deploy
    args:
      - prepare
      - '--filename=$_K8S_YAML_PATH'
      - '--image=$_IMAGE_NAME:$COMMIT_SHA'
      - '--app=$_K8S_APP_NAME'
      - '--version=$COMMIT_SHA'
      - '--namespace=$_K8S_NAMESPACE'
      - '--label=$_K8S_LABELS'
      - '--annotation=$_K8S_ANNOTATIONS,gcb-build-id=$BUILD_ID'
      - '--create-application-cr'
      - >-
        --links="Build
        details=https://console.cloud.google.com/cloud-build/builds/$BUILD_ID?project=$PROJECT_ID"
      - '--output=output'
    id: Prepare deploy
  - name: gcr.io/cloud-builders/gsutil
    args:
      - '-c'
      - |-
        if [ "$_OUTPUT_BUCKET_PATH" != "" ]
        then
          gsutil cp -r output/suggested gs://$_OUTPUT_BUCKET_PATH/config/$_K8S_APP_NAME/$BUILD_ID/suggested
          gsutil cp -r output/expanded gs://$_OUTPUT_BUCKET_PATH/config/$_K8S_APP_NAME/$BUILD_ID/expanded
        fi
    id: Save configs
    entrypoint: sh
  - name: gcr.io/cloud-builders/gke-deploy
    args:
      - apply
      - '--filename=output/expanded'
      - '--cluster=$_GKE_CLUSTER'
      - '--location=$_GKE_LOCATION'
      - '--namespace=$_K8S_NAMESPACE'
    id: Apply deploy
    timeout: 900s
images:
  - '$_IMAGE_NAME:$COMMIT_SHA'
options:
  substitutionOption: ALLOW_LOOSE
substitutions:
  _K8S_NAMESPACE: default
  _OUTPUT_BUCKET_PATH: xxxxx-xxxxx-xxxxx_cloudbuild/deploy
  _K8S_YAML_PATH: kubernetes/
  _DOCKERFILE_DIR: ''
  _IMAGE_NAME: xxxxxxxxxxx
  _K8S_ANNOTATIONS: gcb-trigger-id=xxxxxxxx-xxxxxxx
  _GKE_CLUSTER: xxxxx
  _K8S_APP_NAME: xxxxx
  _DOCKERFILE_NAME: Dockerfile
  _K8S_LABELS: ''
  _GKE_LOCATION: xxxxxxxx
tags:
  - gcp-cloud-build-deploy
  - $_K8S_APP_NAME

我试过将 timeout: 900 arg 粘贴到不同的地方,但没有成功。

10 分钟的超时是 whole build, therefore if you add the timeout: 900s option in any of the steps 的默认设置,它将仅应用于已添加到的步骤。您可以使一个步骤的超时时间大于整个构建超时时间,但如果所有步骤的总和超过构建超时时间,整个构建过程将失败。此示例显示此行为:

steps:
- name: 'ubuntu'
  args: ['sleep', '600']
  timeout: 800s # Step timeout -> Allows the step to run up to 800s, but as the overall timeout is 600s, it will fail after that time has been passed, so the effective timeout value is 600s.
timeout: 600s # Overall build timeout

也就是说,解决方案是通过将其添加到任何步骤之外来扩展整体构建超时,然后您最多可以在 24 小时内完成构建,然后再因超时错误而失败。

类似以下示例的内容应该适合您:

steps:
- name: 'ubuntu'
  args: ['sleep', '600']
timeout: 3600s