Как объединить триггеры в конвейере Concourse: git и ресурс времени?

Я пытаюсь настроить конвейер Concourse, который вызовет новое развертывание. Цель состоит в том, чтобы позволить конвейеру работать только тогда, когда новые значения были отправлены в репозиторий git И когда время находится в пределах определенного временного окна.

В настоящее время триггеры работают по принципу ИЛИ. Когда будет отправлена ​​новая версия, конвейер будет запущен. Когда время находится в пределах окна, конвейер будет работать.
Похоже, единственное исключение - это когда оба триггера не сработали хотя бы один раз, например, в первый день, когда время еще не прошло. Это заставляло конвейер ждать первого успеха триггера временного окна перед запуском. Однако после этого нежелательное поведение при каждом обновлении репозитория git продолжалось.

Ниже представлена ​​минимальная версия моего конвейера. Цель состоит в том, чтобы запустить конвейер только с 9:00 до 21:10, и желательно только после обновления репозитория 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. Заранее спасибо!


person FF_Zairo    schedule 21.05.2019    source источник
comment
привет ты проверил мой ответ?   -  person marco.m    schedule 24.05.2019
comment
К вашему сведению, URL-адрес ресурса ворот был неправильным; фиксированный.   -  person marco.m    schedule 20.06.2019


Ответы (1)


Для такого точного расписания времени ресурс времени не адаптирован. Хорошо работает https://github.com/pivotal-cf-experimental/cron-resource. Это решит одну часть вашей проблемы.

Что касается запуска с И, это не семантика разветвления. Как вы заметили, семантика - ИЛИ. Вы можете попробовать ресурс шлюза https://github.com/Meshcloud/gate-resource, хотя я не уверен, что это сработает в вашем случае.

РЕДАКТИРОВАТЬ: исправлен URL-адрес закрытого ресурса

person marco.m    schedule 21.05.2019