0

我正在使用 Tekton Pipelines 实现 CI/CD,背后的逻辑是,一旦test获得批准,我应该从 docker 注册表中获取该图像并触发devImageStream,以便它可以触发 DeploymentConfig。

问题是,当dev使用test图像并且我test使用新功能进行更新(图像被部署并且 docker 注册表中的图像 SHA 更改)并且dev无法找到“新测试更新之前”test图像503 unreachable Route导致dev.

test即使在图像更改后,如何制作(我的猜测)ImageStream 以防止无法访问?根本原因是否在import-imagecmd中?或者当 BuildConfig 推送图像时如何防止图像覆盖(是否有额外的 BuildConfig 参数)?

我的设置:

因为test我运行 Tekton Pipeline,最后一个任务启动 BuildConfig,它将图像推送到 docker 注册表。

因为dev我有一个任务的 Tekton Pipeline:

apiVersion: tekton.dev/v1beta1
kind: Task
  name: get-dev-image
  namespace: xxx
  labels:
    deploymentconfig: dc-prod
spec:
  steps:
    - image: 'image-registry.openshift-image-registry.svc:5000/openshift/cli:latest'
      name: get-dev-image
      resources: {}
      script: |
        DOCKER_REPO=xxx.com/image_name
        TEST_IMAGE=$DOCKER_REPO:test
        oc import-image $DOCKER_REPO:dev --from=$TEST_IMAGE --confirm=true

图像流:

spec:
  lookupPolicy:
    local: true
  tags:
    - name: dev
      from:
        kind: ImageStreamImage
        name: >-
          image_name@sha256:latest_test_SHA_code
      importPolicy: {}
      referencePolicy:
        type: Source

DeploymentConfig 配置为由dev标签触发。

4

0 回答 0