如何将触发器组合在Concourse管道中:GIT和时间资源



我正在尝试设置会触发新部署的大厅管道。目的是仅在将新值推到git存储库以及时间在定义的时间窗口内时,才能让管道运行。

目前,这些触发因素似乎以一种或方式工作。推动新版本时,管道将运行。当时间在窗口内时,管道将运行。
似乎唯一的例外是,两个触发器至少没有成功一次,例如在时间尚未过去的第一天。这导致管道在运行前等待时窗扳机的第一个成功。但是,此之后,每次更新到GIT存储库的不必要行为继续。

以下是我的管道的最小版本。目的是仅在9:00至9:10 PM之间运行管道,最好仅在更新GIT存储库时才运行。

resource_types:
  - name: helm
    type: docker-image
    source:
      repository: linkyard/concourse-helm-resource
resources:
  - name: cicd-helm-values_my-service
    type: git
    source:
      branch: master
      username: <redacted>
      password: <redacted>
      uri: https://bitbucket.org/myorg/cicd-helm-values.git
      paths:
        - dev-env/my-service/values.yaml
  - name: helm-deployment
    type: helm
    source:
      cluster_url: '<redacted>'
      cluster_ca: <redacted>
      admin_cert: <redacted>
      admin_key: <redacted>
      repos:
        - name: chartmuseum
          url: '<redacted>'
          username: <redacted>
          password: <redacted>
  - name: time-window
    type: time
    source:
      start: 9:00 PM
      stop: 9:10 PM
jobs:
  - name: deploy-my-service
    plan:
    - get: time-window
      trigger: true
    - get: cicd-helm-values_my-service
      trigger: true
    - put: helm-deployment
      params:
        release: my-service
        namespace: dev-env
        chart: chartmuseum/application-template
        values: ./cicd-helm-values_my-service/dev-env/my-service/values.yaml

关于如何结合时间窗口和CICD-Helm-Values_my-Service的任何想法将不胜感激。预先感谢!

对于此类精确时间调度,时间资源未适应。效果很好的是https://github.com/pivotal-cf-experiment/cron-resource。这将解决您问题的一部分。

关于触发和,这不是粉丝的语义。语义是或正如您所注意到的。您可以尝试gate资源https://github.com/meshcloud/gate-resource,尽管我不确定它是否适用于您的情况。

编辑:修复了门控资源的URL

最新更新